一次完整的GC流程

1.Java堆 = 老年代 + 新生代
2.新生代 = Eden + S0 + S1
3.当 Eden 区的空间满了, Java虚拟机会触发一次 Minor GC,以收集新生代的垃圾,存活下来的对象,则会转移到 Survivor区。
4.大对象(需要大量连续内存空间的Java对象,如那种很长的字符串)直接进入老年态。
5.如果对象在Eden出生,并经过第一次Minor GC后仍然存活,并且被Survivor容纳的话,年龄设为1,每熬过一次Minor GC,年龄+1,若6.年龄超过一定限制(15),则被晋升到老年态。即长期存活的对象进入老年态。
7.老年代满了而无法容纳更多的对象,Minor GC 之后通常就会进行Full GC,Full GC 清理整个内存堆 – 包括年轻代和年老代。
8.Major GC 发生在老年代的GC,清理老年区,经常会伴随至少一次Minor GC,比Minor GC慢10倍以上。
劝学警言
身处信息爆炸时代,知识浩瀚如海洋。
然,如同图书馆,你可以入门,但不代表你就拥有它。
且,学而不思则罔,思而不学则殆;
学贵有恒,更需注重方式方法。切记三字箴言:恒、慢、悟——
恒:坚持不懈!最忌讳的就是三天打鱼两天晒网,一曝十寒;
慢:精雕细琢!慢工出细活,理论知识一定要吃透,知其所以然;
悟:明辨慎思!要善于固化知识,一定要有自己的理解,否则就如同将他人吐在地上的吃过的甘蔗,再捡起来嚼,味同嚼蜡一般,无任何滋味可言。
送君一句话:殚精竭虑,不如须臾之所学也。
愿君,好好学习,天天向上!
共勉之!

文章转载自学亮编程手记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




