Java的垃圾回收处理
java内存如何分配
java中主要是_栈内存_和_堆内存_,用new创建对象或者数组等引用类型时,系统会在堆内存中为其分配一块空间,用于保存对象。当这块内存不在被任何变量引用时,这块内存会变成垃圾。
java的垃圾回收机制
一种动态存储管理技术,JVM,也就是Java虚拟机来自动回收垃圾对象占的内存空间,不需要程序代码来显式的释放。
JVM内存结构
主要包括程序计数器,堆,方法区,虚拟机栈,本地方法栈。
堆是最大的一块空间,垃圾回收主要关注堆和方法区的内存分配。
判断对象是否需要回收的算法
引用计算器算法
给对象添加一个引用计数器,创建赋值为1,每引用一次,将计数器加1,对象失去一个引用就会减1,任何计数器为0的对象就会被当成垃圾回收。
可达性分析算法
将所有的引用关系看作一张图,其中不可到达的点就是可回收对象