
JVM读书笔记
lucca_Hello
这个作者很懒,什么都没留下…
展开
-
<Java虚拟机>读书记录1-JVM运行时数据区域
运行时常量池: 用于存放编译时生成的各种字面量和符号引用.在类加载后存放到方法区的常量池中; 运行时也可以将常量放入常量池.如:String的intern()方法...原创 2017-07-12 14:48:17 · 304 阅读 · 0 评论 -
<Java虚拟机>读书记录2-对象的创建
虚拟机接收到new指令: 1.首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。 如果没有,那必须先执行相应的类加载过程。 2.在类加载检查通过后,接下来虚拟机将为新生对象分配内存。 对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。 ...原创 2017-07-12 17:06:05 · 294 阅读 · 0 评论 -
Java虚拟机-读书笔记3-OutOfMemoryError异常
除了程序计数器外,Java虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError异常的可能. 本节内容的目的: 1.通过代码验证各个运行时区域存储的内容; 2.希望读者在遇到实际的内存溢出时,能够快速根据异常信息判断出那个区域的内存溢出及知道该如何处理. 虚拟机参数设置: 一 Java堆溢出: 1.1 异常构建 ...原创 2018-05-29 18:13:42 · 205 阅读 · 0 评论 -
Java虚拟机-读书笔记5-垃圾回收算法
1 标记-清除算法 标记-清除算法是最基础的算法.算法分为"标记"和"清除"两个阶段:首先标记出所有需要被回收的对象,在标记完成后进行统一的回收. 它的主要不足之处: a)标记和清除两个过程效率都不够高. b)回收之后产生大量不连续的碎片空间,可能导致无法分配内存给较大的对象时,不得不提前出发额外的垃圾收集动作. 后续的算法都是基于这种思路并对其不...原创 2018-05-31 17:41:58 · 192 阅读 · 0 评论 -
Java虚拟机-读书笔记4-垃圾回收(1)
在java运行时内存区域中,程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭.栈中的栈帧随着方法的进入和退出有条不紊地执行者出栈和入栈操作.每一个栈帧分配多少内存基本上在类结构确定下来时就已知了(尽管在运行时期会由JIT编译器进行一些优化).因此这些区域的内存分配和回收都具备确定性了.因为方法结束或线程结束,内存也自然都回收了. 而方法区和堆则不一样,一个接口的多个实...原创 2018-05-30 20:47:21 · 246 阅读 · 0 评论