一、JVM的分区: 1、程序计数器(私有) 程序计数器是一块较小的内存分区,你可以把它看做当前线程所执行的字节码的指示器。 在虚拟机的概念模型里,字节码解释器工作时,就是通过 ...
要应用GC ROOT算法,判定某个对象是否会被回收,关键是要确定root。确定root之后,你就可以根据代码绘制可达链,从而就可以进行分析了,分析哪些对象会被泄漏,哪些对象会被回收,如果GC执行的时候。 可以作为root的对象: .类中的静态变量,当它持有一个指向一个对象的引用时,它就作为root .活动着的线程,可以作为root .一个Java方法的参数或者该方法中的局部变量,这两种对象可以作 ...
2014-08-02 11:34 0 2542 推荐指数:
一、JVM的分区: 1、程序计数器(私有) 程序计数器是一块较小的内存分区,你可以把它看做当前线程所执行的字节码的指示器。 在虚拟机的概念模型里,字节码解释器工作时,就是通过 ...
在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器对堆内存进行回收前,都会先判断这些 对象之中哪些还“存活”着,哪些已经“死去”(即不可能在被任何途径使用的对象)。一共有两种算法: 1、引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时 ...
查找内存中不再使用的对象 引用计数法 引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾。这种方法的缺点就是不能检测到环的存在。 2.根搜索算法 根搜索算法的基本思路就是通过一系列名为”GC Roots”的对象作为起始点,从这些节点 ...
GC是什么时候执行的 垃圾回收是一种回收无用内存空间并使其对未来实例可用的过程。 Eden 区:当一个实例被创建了,首先会被存储在堆内存年轻代的 Eden 区中。 Survivor 区(S0 和 S1):作为年轻代 GC(Minor GC)周期的一部分,存活的对象(仍然被引用 ...
好的文章是能把各个知识点,通过逻辑关系串连起来,让人豁然开朗的同时又记忆深刻。 导读:对象除了生死之外,还有其他状态吗?对象真正的死亡,难道只经历一次简单的判定?如何在垂死的边缘“拯救”一个将死对象?判断对象的生死存活都有那些算法?本文带你一起找到这些答案。 在正式开始之前,我们先来 ...
JVM系列随笔主要是对《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》的学习总结 概述 GC(Garbage Collection)是垃圾收集的简称,比Java的历史更加久远。经过半个多世纪的发展,已经实现了自动化。作为学习,我们需要搞清楚GC的三件问题 ...
(1)虚拟机(JVM)栈中引用对象 (2)方法区中的类静态属性引用对象 (3)方法区中常量引用的对象(final 的常量值) (4)本地方法栈JNI的引用对象 ...