GC:
概念:垃圾收集(Gabage Collection)
作用:自动检测对象是否超过作用域从而自动回收内存。
优点:编写程序时不需要再考虑内存管理
原理:垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中
已经死亡或者长时间没有使用的对象进行清除和回收。
回收机制:复制垃圾回收、标记垃圾回收、增量垃圾回收
垃圾回收器(GC)的基本原理:
1、对象创建开始,GC就对对象的地址,大小以及使用情况监控
2、GC通过有向图的方式记录和管理堆中的所有对象,确定哪些对象是“可达的”,哪些对象是“不可达的”;
3、当GC确定一个对像“不可达时”,GC就有责任回收内存空间。
4、程序员可以手动执行System.gc(),通过GC运行,但是java语言规范并不保证GC一定会执行。
java中内存泄漏?
概念:
场景:
栗子:
判断内存泄漏:检查java中内存泄漏,一定要让程序各种分支情况都完整执行到程序结束,然后看某个对象是否被使用,不被使用,才能判定这个对象属于内存泄漏。
类加载器本质:除了bootstrap之外,其他的类加载器本身也是java类,它们的父类是ClassLoader。