年轻代:当对象刚刚创建的时候我们的对象是存放在even内存空间的,当这儿存满了,CG就会调用Minor GC来清理无用的对象,并将剩下的对象放入到servicer1区里面,当第二次even满的时候,我们就在此调用MinorGC,清理even区,和有对象的servicer区并将它们有用的对象放在service(n+1)区,当service15区中也还有幸存的对象的时候我们就将这些对象放在old区,它们就是老年代了。

        老年代:当old区也存放对象占用的空间达到一定比例的时候也会调用MinorGC,清理无用的对象;当old区域存满了的话,它就会调用fullGC,他就会整个清理(代价很高)。

        开发中容易出现内存溢出常见的现象:

               1、IO流未关闭

               2、创建了大量无用的对象。

               3、监听器使用不当

              4、静态集合类使用不当