Java内存管理包括两部分:内存分配(对象被创建时)和内存回收(对象被回收时);
Java对象被创建时,JVM中的垃圾回收机制(GC)会实时监控每个对象的运行状态,包括对象的申请、引用、被引用、赋值等。当GC实时监控到某个对象不在被引用变量引用时,GC就会对该对象进行回收。
采用有向图来管理内存中的对象具有较高的精准度,但缺点是效率较低
有向图管理内存中的对象时,对象的状态分为三种:可达状态,可恢复状态,不可达状态
可恢复状态:某个对象不被引用时,进入可恢复状态,在垃圾回收前,系统会调用该对象的finalize方法对其进行资源清理,若发现有被引用,该对象进入可达状态,否则,进入不可达状态。