JVM
文章平均质量分 76
木叶明
write the code,change the world.
展开
-
深入理解Java虚拟机读书笔记之Java内存区域与内存溢出异常
JVM内存模型从上图可以看出JVM内存分配包括线程私有的JAVA栈,本地方法栈,程序计数器;还包括所有线程共享的JAVA堆,方法区。JVM中对象的创建过程虚拟机在接收到new指令后,首先(1)将去检查这个指令的参数是否能在常量池中定位到一个的符号引用,并且检查这个符号引用代表的类是否已被加载,解析和初始化。如果没有,那必须先执行类的加载过程。(2)在类加载检查通过后,接下来虚拟机将为新生对象分配内...原创 2018-03-25 14:09:33 · 291 阅读 · 0 评论 -
深入理解Java虚拟机读书笔记之垃圾收集器与内存分配策略
可达性分析算法Java虚拟机通过可达性分析算法来判断哪些对象已死可以回收,哪些对象还存活不可回收。可达性分析算法的实现原理:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连接时,那么这个对象就死了,可以被回收。换句话说,当对象到GC Roots不可达时,该对象就可以被垃圾收集器回收。可作为GC ...原创 2018-03-25 14:11:03 · 219 阅读 · 0 评论 -
Java对象的创建过程以及在内存中的分布
Java对象的创建过程Java是一个面向对象编程语言,我们在编写代码时无时无刻不在创建对象,那么我们在源代码中new一个对象的操作,映射到JVM中是如何执行的呢。接下来我们将对此展开讨论。1、Java虚拟机当遇到new指令时,首先会去JVM的方法区看这个对象所属的类是否已经被加载,如果这个类还没有被加载,则虚拟机会先去加载此类到方法区,以及将该类的符号引用加载到方法区的常量池中。2、为新创建的对象...原创 2018-04-14 15:40:30 · 525 阅读 · 0 评论