jvm
HappySSweet
这个作者很懒,什么都没留下…
展开
-
JVM-内存区域
整理自《深入理解java虚拟机》 ① Java虚拟机运行时数据区 方法区、堆、虚拟机栈、本地方法栈、程序计数器 a. 程序计数器 可以看作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 每个线程都需要一个独立的程序计数器——线程私有。 此内存区域是唯一一个在java虚拟机规范中没有规定任何OutMemo转载 2017-04-14 09:49:02 · 306 阅读 · 0 评论 -
JVM-垃圾回收
整理自《深入理解java虚拟机》 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。而堆和方法区不一样,只有在程序运行期间才能知道会创建哪些对象,这部分的内存和回收都是动态的,垃圾收集器所关注的是这部分内存。 ① 判断对象是否已死 a. 引用计数算法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就+1, 当引用失效时,计数器值就-1,任何时刻,计数器为0的对象转载 2017-04-14 09:57:59 · 265 阅读 · 0 评论 -
JVM-内存分配
整理自《深入理解java虚拟机》 1. 大多数情况下,对象在eden区中分配,当eden区中没有足够空间进行分配时,虚拟机将发起一次Minor GC 2. 需要大量连续空间的java对象(例如很长的字符串以及数组),直接进入老年代 3. 长期存活下来的对象进入老年代 4. 如果在Survivor空间中相同年龄的所有对象大小的总和大于Survivor空间的一半,年龄大于等于该年龄的对象就可以转载 2017-04-14 23:24:58 · 254 阅读 · 0 评论