Advertisement

你理解Java垃圾回收吗?让这篇文章让你全面掌握垃圾回收机制

阅读量:

Java 垃圾回收机制

垃圾回收主要关注 Java 堆

图摘自《码出高效》

在Java内存运行时区域内,程序计数器、虚拟机栈以及本地方法栈随着线程的存在而动态生成与消失。每当新方法启动时(即发生入站操作),系统便会在虚拟机堆中依次创建新的局部变量空间;每当现有方法退出(即发生出站操作),系统则会相应地撤销这些局部变量空间。每个特定时刻所使用的局部变量空间所需存储的空间大小,在编译阶段就已经被预先计算出来;然而,在运行期可能会通过JIT编译器进行一些优化调整。基于此可知,在这些区域中进行内存管理具有高度确定性;一旦相应的方法或线程终止,则其占用的所有资源都会被及时释放。

而 Java 堆中存在差异,在同一接口的不同实现类所需的内存量可能会有所不同;同一个方法的不同分支所需 内存量可能会有差异。在运行时阶段才能确切了解将要创建的具体对象类型;这些 内存管理过程是动态进行 的,并由垃圾收集器负责管理这部分 内存。

判断哪些对象需要被回收

有以下两种方法:

引用计数机制 可对目标进行引用统计管理:每当目标被引用时其引用来说数量将增加1;一旦目标引用来说失效 其引用

全部评论 (0)

还没有任何评论哟~