什么是GC?
GC(Garbage Collection)称之为垃圾回收,在JVM的执行引擎中自带这样的一个GC系统,此系统会按照一定的算法对内存进行监控和垃圾回收。
如何判断哪些对象是垃圾?
1、引用计数法:每个对象中应该有一个计数器。只要有引用引用着这个对象,这个对象的引用就会加1,没有引用这个计数器的值就是0,当计数器的值为0时,就说明这个对象是垃圾对象。
缺点:可能存在相互引用,循环引用的对象不能被及时回收。
2、可达性分析:是否可以通过GC Root对象找到这个对象,找不到就认为是垃圾对象。
缺点:对象引用链越长,对象的查找效率相对慢一些。
你知道哪些常用的GC算法?
1、标记清除算法(扫描内存,对活着的对象进行标记,再次扫描内存,对未标记的对象进行清除)
2、标记复制算法(扫描内存,将活着的对象标记同时拷贝到一块空闲区域,然后将原有的内存全部清空)
3、标记整理算法(扫描内存,将活着的对象向一侧移动,然后将边界外的内存进行清空)
JVM执行GC时的线程策略?
1、串行(整个GC过程,只有一个回收垃圾线程执行)
2、并行(允许多线程利用多核CPU优势并行GC)
3、并发(允许GC线程和业务线程并发执行)
JVM中有哪些常用的垃圾回收器?
1、Serial(串行垃圾回收器)
2、Parallel(并行垃圾回收器)
标签:对象,引用,系统,GC,垃圾,JVM,内存 From: https://www.cnblogs.com/yangcrazy/p/17131384.html