深入理解JVM学习
匿名王同学
gogogo
展开
-
JVM中的垃圾回收机制精析
Java虚拟机并不是通过引用计数算法来判断对象是否存活的,Java是通过可达性分析(Reachability Analysis)算法来判定对象是否存活的。这个算法的基本思路就是通过一系列称为“GCRoots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC Roots间没有任何引用链相连,或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使用的。如图3-1所示,对象o原创 2020-07-14 11:29:49 · 72 阅读 · 0 评论 -
Java中,new一个对象,JVM做了什么
Java虚拟机遇到一条new指令时:1.检查这个指令的参数是否能在常量池(常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量)中定位到一个类的符号引用,并检查此符号引用的类是否被加载,解析和初始化。若没有,则执行加载。2.为新对象分配内存。若Java堆中内存规整,可用指针分配内存,此方式称为“指针碰撞”若Java堆中内存不规整,虚拟机需要维护一个列表,用来记录哪些内存可用,此方式称为“空闲列表”。3.虚拟机将分配的内原创 2020-07-06 22:08:52 · 388 阅读 · 0 评论