《Java虚拟机》必知必会——十四个问题总结(内存模型+GC)

一、Java概述1、Java相较于PHP、C#、Ruby等一样很优秀的编程语言的优势是什么?(1)体系结构中立,跨平台性能优越。Java程序依赖于JVM运行,javac编译器编译Java程序为平台通用的字节码文件(.class),再由JVM与不同操作系统匹配,装载字节码并解释(也有可能是编译,会在第三个问题中说到)为机器指令执行。(2)安全性优越。通过JVM与宿主环境隔离,且J …… 阅读全文

Java并发核心基础——线程池使用及底层实现机制详解

Java线程池概述:从使用入手:java.util.concurrent.Executosr是线程池的静态工厂,我们通常使用它方便地生产各种类型的线程池,主要的方法有三种:1、newSingleThreadExecutor()——创建一个单线程的线程池2、newFixedThreadPool(int n)——创建一个固定大小的线程池3、newCachedThreadPo …… 阅读全文

Java中如何正确而优雅的终止运行中的线程

Java中终止线程的方式主要有三种:1、使用stop()方法,已被弃用。原因是:stop()是立即终止,会导致一些数据被到处理一部分就会被终止,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的“残疾”数据,不符合完整性,所以被废弃。So, forget it!2、使用volatile标志位看一个简单的例子:首先,实现一个Runnable接口,在其中定义volatile标 …… 阅读全文

Java中断interrupt详解

interrupt简述interrupt() 方法只是改变中断状态而已,它不会中断一个正在运行的线程。这一方法实际完成的是,给受阻塞的线程发出一个中断信号,这样受阻线程就得以退出阻塞的状态。 更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,此时调用该线程的interrupt()方法,那么该线程将抛出一个 Interrupte …… 阅读全文

Java多线程必须掌握的十个问题

在此列举的只是Java多线程最基础的知识,也是面试官最常问到的,先打牢基础,再去探讨底层原理或者高级用法,除了这十个问题,在此再推荐一些其他的资料:JVM底层又是如何实现synchronized的:http://www.open-open.com/lib/view/open1352431526366.htmlJava线程池详解:http://blog.csdn.net/zhangliangzi/article/details/52389766Java线程池深度解析:http://www.cnblogs …… 阅读全文

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore(转载自海子的博客)  在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。  以下是本文目录大纲:  一.CountDownLatch用法 …… 阅读全文