02-自动内存管理

当创建一个对象的时候,JVM在堆上为新对象分配空间。为了最大化利用内存,对于不再使用的对象,需要清除其内存空间以便分配给其他新的对象。
自动内存管理,最根本的目标是给对象自动分配内存,以及自动回收分配的内存,也即垃圾收集(Garbage Collection,GC)。

自动垃圾收集

程序计数器、虚拟机栈、本地方法栈都是跟线程的启动而创建,线程的中断而消亡,并且栈中的每个栈帧的大小都是确定的,
在这几个区域,基本不用考虑内存回收的问题。对于堆和方法区,JVM并不知道程序中需要创建多少对象,这部分的内存回收是动态的,
需要结合一定的策略进行自动管理。

不再使用的对象会被回收

GC在回收内存前,需要先判断哪些对象不再使用。

引用计数法

可达性分析

垃圾收集算法