GC垃圾回收机制
Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。
什么时候发生GC
1、系统空闲的时候。
2、系统自身决定,不可预测的时间/调用System.gc()的时候。
3、新生代、老年代结构,能提出minor gc/full gc
4.minor gc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。
GC的对象
1、不使用的对象。
2、超出作用域的对象/引用计数为空的对象。
3、gc root开始搜索,搜索不到的对象。
4、从root搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。
GC的作用
1、删除不使用的对象,腾出内存空间。
2、运行默认的finalize,当然程序员想立刻调用就用dipose调用以释放资源如文件句柄
3、JVM用from survivor、to survivor对它进行标记清理,对象序列化后也可以使它复活。