垃圾回收---(什么是垃圾) -->没有引用指向的对象
方法:引用计数器(了解) 根节点可达性分析(***)
引用计数器:给对象添加一个引用计数器,引用成功+1,失败-1 计数器为0 说明这个对象可以 被回收 如果是循环引用,导致这个对象回收不了(缺点)
根节点可达性分析: GC算法(理论) 垃圾收集器(落地)
GC算法:
1.标记清除:mark--sweep
标记:标记要被清除的对象 清除:垃圾对象进行清除 缺点:内存碎片
2.标记整理:
标记:标记要被清除的对象,进行清除 整理:移动活的对象,进行内存整理 缺点:繁琐,不实用
3.复制:
把内存对半分为两份 缺点:浪费一些内存 好处:没有碎片
垃圾收集器:
1.串行垃圾收集器
一个线程处理垃圾回收 stw:app=>gc=>app
2.并行垃圾收集器
多线程进行垃圾回收 比串行垃圾收集器的stw时间短
3.并发垃圾收集器
程序线程和gc线程 并发执行 没有stw
分代算法:
1.年轻代
年轻代参数:-Xmnsize=>年轻代 Eden:From:To=8:1:1
①串行&