虚拟机(系列三)
xinjing_wangtao
这个作者很懒,什么都没留下…
展开
-
深入理解JVM(一)——JVM内存模型
http://blog.csdn.net/u010425776/article/details/51170118JVM内存模型Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区。下面对这五个区域展开深入的介绍转载 2016-08-23 21:31:49 · 218 阅读 · 0 评论 -
深入理解JVM(二)——揭开HotSpot对象创建的奥秘
http://blog.csdn.net/u010425776/article/details/51190801对象的创建过程当虚拟机遇到一条含有new的指令时,会进行一系列对象创建的操作:检查常量池中是否有即将要创建的这个对象所属的类的符号引用;若常量池中没有这个类的符号引用,说明这个类还没有被定义!抛出ClassNotFoundException;若常量转载 2016-08-23 21:32:15 · 307 阅读 · 0 评论 -
深入理解JVM(三)——垃圾收集策略详解
Java虚拟机的内存模型分为五个部分,分别是:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。这五个区域既然是存储空间,那么为了避免Java虚拟机在运行期间内存存满的情况,就必须得有一个垃圾收集者的角色,不定期地回收一些无效内存,以保障Java虚拟机能够健康地持续运行。这个垃圾收集者就是平常我们所说的“垃圾收集器”,那么垃圾收集器在何时清扫内存?清扫哪些数据?这就是接下来我们转载 2016-08-23 21:32:37 · 194 阅读 · 0 评论 -
深入理解JVM(四)——对象内存的分配策略
Java所承诺的自动内存管理主要是针对对象内存的回收和对象内存的分配。在Java虚拟机的五块内存空间中,程序计数器、Java虚拟机栈、本地方法栈内存的分配和回收都具有确定性,一般在编译阶段就能确定需要分配的内存大小,并且由于都是线程私有,因此它们的内存空间都随着线程的创建而创建,线程的结束而回收。也就是这三个区域的内存分配和回收都具有确定性,垃圾回收器不需要在这里花费太大的精力。而转载 2016-08-23 21:33:02 · 273 阅读 · 0 评论 -
深入理解JVM(五)——HotSpot垃圾收集器详解
HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器。我们可以根据自己实际的应用需求选择最适合的垃圾收集器。根据新生代和老年代各自的特点,我们应该分别为它们选择不同的收集器,以提升垃圾回收效率。 新生代垃圾收集器1. Serial垃圾收集器单线程 只开启一条GC线程进行垃圾回收,并且在垃圾回转载 2016-08-23 21:33:35 · 247 阅读 · 0 评论 -
深入理解JVM(六)——JVM性能调优实战
如何在高性能服务器上进行JVM调优?为了充分利用高性能服务器的硬件资源,有两种JVM调优方案,它们都有各自的优缺点,需要根据具体的情况进行选择。1. 采用64位操作系统,并为JVM分配大内存我们知道,如果JVM中堆内存太小,那么就会频繁地发生垃圾回收,而垃圾回收都会伴随不同程度的程序停顿,因此,如果扩大堆内存的话可以减少垃圾回收的频率,从而避免程序的停顿。因此,人们转载 2016-08-23 21:34:03 · 379 阅读 · 0 评论 -
深入理解JVM(七)——Class文件结构
什么是JVM的“无关性”?Java具有平台无关性,也就是任何操作系统都能运行Java代码。之所以能实现这一点,是因为Java运行在虚拟机之上,不同的操作系统都拥有各自的Java虚拟机,因此Java能实现“一次编写,处处运行”。而JVM不仅具有平台无关性,还具有语言无关性。 平台无关性是指不同操作系统都有各自的JVM,而语言无关性是指Java虚拟机能运行除Java以外的代码!转载 2016-08-23 21:34:28 · 233 阅读 · 0 评论 -
深入理解JVM(八)——类加载的时机
类的生命周期一个类从加载进内存到卸载出内存为止,一共经历7个阶段: 加载——>验证——>准备——>解析——>初始化——>使用——>卸载其中,类加载包括5个阶段: 加载——>验证——>准备——>解析——>初始化在类加载的过程中,以下3个过程称为连接: 验证——>准备——>解析因此,JVM的类加载过程也可以概括为3个过程: 加载——>连接——>初始化转载 2016-08-23 21:34:56 · 328 阅读 · 0 评论 -
深入理解JVM(九)——类加载的过程
http://blog.csdn.net/u010425776/article/details/51254858 通过之前的介绍可知,类加载过程共有5个步骤,分别是:加载、验证、准备、解析、初始化。其中,验证、准备、解析称为连接。下面详细介绍这5个过程JVM所做的工作。加载注意:“加载”是“类加载”过程的第一步,千万不要混淆。1. 加载的过程在加载过程中转载 2016-08-23 21:35:49 · 301 阅读 · 0 评论