自己做的网页怎么连接到网站,出口跨境电子商务,大望路网站建设,网页设计尺寸用1440还是1920#xff08;1#xff09;分代回收_1
Java虚拟机都是结合前面几种算法#xff0c;让他们协同工作#xff0c;具体实现是虚拟机里面一个叫做分代的垃圾回收机制#xff0c;把我们堆内存大的区域划分为两块新生代、老年代
新生代有划分为伊甸园、幸存区Form、幸存区To 为什…1分代回收_1
Java虚拟机都是结合前面几种算法让他们协同工作具体实现是虚拟机里面一个叫做分代的垃圾回收机制把我们堆内存大的区域划分为两块新生代、老年代
新生代有划分为伊甸园、幸存区Form、幸存区To 为什么要这样区域划分呢因为java中有的对象需要长时间使用长时间使用的对象呢我就把放到老年代当中哪些用完就可以丢弃的对象把它放在新生代当中这样根据对象生命周期不同的特点进行不同的垃圾回收策略老年代的垃圾回收很久才发生一次新生代的垃圾回收发生比较频繁不同的区域采用不同的算法就可以对垃圾回收更有效的对垃圾回收进行管理
新生代的垃圾比如我们在楼下设置的垃圾场手机生活中的盒饭手纸等等频繁的垃圾
老年代比如每家每户用旧的椅子等等当以后空间紧张屋子里放不下的时候来清理这些旧用垃圾 执行的频率较低
2分代回收_2 当我们新创建对象时新对象会采用伊甸园的空间 当伊甸园的空间逐渐放满时在新建对象放不下时就会触发一次垃圾回收小的垃圾回收Minor GC Minor GC会采用前面讲的可达性分析算法沿着GC Roor引用链去找看这些对象哪些有用那些可作为垃圾进行标记 标记成功了采用复制算法把存活的对象复制到幸存区To中 然后把幸存的对象进行加1然后把伊甸园中没有的对象回收掉了 再交换幸存区Form和幸存区To的位置 然后伊甸园就可以继续存放新产生的对象啦 当存满后又一次触发Minor GC此时去看伊甸园中存活的对象找到以外把幸存区中有没有继续存活的对象把伊甸园中的对象复制到TO中并且寿命加1在看一下幸存区中存活的对象移入到TO中去寿命变为2其余的垃圾对象回收掉 然后再交换幸存区的位置 幸存区的对象不会一直在幸存区中待着当寿命达到一个阈值比如经过15次垃圾回收这个对象价值比较高那么没必要把它一直在幸存区留着把它移到老年代中去 当出现新生代和老年代的对象都要放满时此时会触发一次Full GC
当老年代空间不足先尝试回收新生代当新生代内存不够尝试触发Full GC触发一个老年代的垃圾回收从新生到老年做一个整个的处理
老年代采用的算法可能是标记清除时间稍微慢 可能是标记整理算法时间比较慢 通过垃圾回收如果老年代的空间还是不足就会触发内存溢出异常
3分代回收_3