中的引用只有引用和没有引用两种情况,但是在开发过程中,我们往往需要更加复杂的场景,例如当我们内存空间足够的时候,我们就讲对应的对象存储在内存中,当我们内存不足的时候我们就把它进行回收,所以JDK1.2之后...:GC在方法区当中的回收对废弃常量来说还算比较划算,但是对于无用的类则是性价比比较低的,因为本来类加载器就是根据该类是否被用到,从而来将该类加载到内存当中的,然而如果该类已经不存在任何引用了,那么说明这部分的程序也已经基本跑到头了...Parallel Scavenge的收集器的老年代版本,采用的是标记-整理的算法
CMS收集器
需要重点介绍的一款GC,在JDK1.5~JDK1.7之间基本采用的都是CMS作为GC来管理内存.全称是...:更有利于程序的长时间运行,分配大对象时不会因为无法找到连续的内存空间而提前触发了GC
4.可预测的停顿:可以设置垃圾收集的时间最大值不超过N毫秒
5.GI的执行过程
初始标记
并发标记
最终标记
筛选标记...对象分配原则
1.优先分配在新生代Eden区中,当Eden区当中空间不足时,触发Minor GC
2.大对象或者是长期存活调用频繁的对象会进入到年老代,当年老代空间不足时会触发Major GC,Major