前言
Java为什么要设计Survivor,而且还要设计两个呐?
一、为什么要有Survivor区
如果没有Survivor,Eden区每进行一次Minor GC,存活的对象就会被送到老年代。老年代很快被填满,触发Major GC(因为Major GC一般伴随着Minor GC,也可以看做触发了Full GC)。老年代的内存空间远大于新生代,进行一次Full GC消耗的时间比Minor GC长得多。你也许会问,执行时间长有什么坏处?频发的Full GC消耗的时间是非常可观的,这一点会影响大型程序的执行和响应速度,更不要说某些连接会因为超时发生连接错误了。
可以得到第一条结论:Survivor的存在意义,就是减少被送到老年代的对象,
「公众号SpringBoot」: ①阿里巴巴前高级研发工程师;②估值20亿美金的Blued架构师;③北京知远公司创始人;④浙江甄才公司架构师;⑤云课堂学员10000+;⑥博客访问量1000万+;⑦10年互联网行业从业;⑧360万的访问《从零开始学SprngBoot》作者;⑨技术加盟多个独立项目。