1.为什么处理
清理无用信息释放内存
在C++中,对象所占用的内存,在程序运行完之前是无法被释放掉的,需要程序员编写代码,手动释放内存,这样不仅增加了程序员的工作量,在一定程度上,降低了整体效率。而在JAVA中,当没有对象引用指向原本分配给某个对象的内存时,该内存便会被视为垃圾。而JVM的垃圾回收机制,能在程序运行过程中,不断的清除垃圾,释放内存,从而大大增加了内存使用效率。
整理内存碎片
在对象的创建和垃圾清理的过程中会避免不了产生内存碎片,内存碎片是分配给对象的内存块之间的空闲内存洞,而碎片越多越不利于程序的运行,比如,当要创建一个以较大的对象时,虽然内存总剩余量是能够存储的,但是因为内存并不是一块连续的内存块而导致,无法创建,对我们来说是不利的。所以垃圾处理机制能帮助我们整理内存碎片,从而增加内存的使用率
2.处理什么
处理没有被GC-root说调用的“垃圾”对象
由上图可看出,Gc-root
引用了object1
,进而使得object2,3,4,5
都