JAVA的一个重大特点就是引进了垃圾回收机制,从而使C++程序员最头疼的内存管理问题迎刃而解,它使得Java程序员在编写程序的时候不用考虑内存管理。由于有了垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”.
垃圾回收机制可以有效的防止内存泄漏,有效的使用可以使用的内存。
GC(Gabage Collection)工作原理:当创建对象时,GC就开始监视这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理heap(堆)中的素有对象。通过这种方式确定哪些对象是“可达的”,哪些是“不可以达的”。
垃圾回收机制通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清理,我们虽然可以调用System.gc()让垃圾回收器运行,但依旧无法保证GC一定会执行。