日期:2014-05-20  浏览次数:20549 次

谁能给我解释下JVM的新生代、年轻代、老年代是怎么一回事?有资料发连接也可以,谢谢!!
谁能给我解释下JVM的新生代、年轻代、老年代是怎么一回事?有资料发连接也可以,谢谢!!
最好有详细介绍。。。多谢各位了!

------解决方案--------------------
帮楼主顶一下 记得给分哦
------解决方案--------------------
所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象)。),当Eden没有足够空间的时候就会触发jvm发起一次Minor GC。如果对象经过一次Minor GC还存活,并且又能被Survivor空间接受,那么将被移动到Survivor空间当中。并将其年龄设为1,对象在Survivor每熬过一次Minor GC,年龄就加1,当年龄达到一定的程度(默认为15)时,就会被晋升到老年代中了,当然晋升老年代的年龄是可以设置的。

其实新生代和老年代就是针对于对象做分区存储,更便于回收等等。
------解决方案--------------------
楼上普及基本知识了,谢谢啦!学习一下