垃圾回收机制


GC是什么?为什么要有GC?
GC是垃圾收集的意思,内存处理编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至奔溃,java提供的GC的功能可以自动检测对象
是否超过作用域从而达到自动回收内存的目的,java语言没有提供释放已分配内存的显示操作方法

垃圾回收的优点和原理。并考虑两种回收机制
java语言的一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内存管理问题迎刃而解,它使得java程序员在编写程序的时候不在需要考虑内存管理。
由于垃圾回收机制,java中的对象不在有“作用域”的概念,只有对象的引用才有作用域。垃圾回收机制可以有效的防止内存泄漏,有效的使用可以使用的内存。垃圾
回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回
收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?与什么办法主动通知虚拟机进行垃圾回收吗?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆中的所有对象。通过这种方式确定
哪些对象是可达的,哪些对象是不可达的。当确定对象不可达时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是java语
言规范并不保证GC一定会执行

原文地址:https://www.cnblogs.com/juddy/p/14173621.html