关于JVM的垃圾回收(GC) 这可能是你想了解的
[TOC] 垃圾收集 (Garbage Collection) 机制是Java语言的一大优势特性, 为充分榨取JVM性能, 避免系统因垃圾收集不及时导致的OOM (OutOfMemory, 内存溢出)问题, 或内存饱和出现无法响应用户请求的情况, 就需要根据服务器配置及应用复杂度对GC策略进行优化, 以确保系统正常运行. 1 JVM中Java对象的分类 JVM根据运行于其中的对象的生存时间, 将它们分为3种, 并分别存放在JVM的不同内存区域中. 这种对象存放空间的管理方式叫做Generation管理方式. (1) Young Generation (新生代, 又称年轻代): 用于存放"早逝"对象(即瞬时对象), 一般的Java应用中, 80%的对象都是"朝生息灭"的, 比如在创建对象或调用方法时使用的临时对象或局部变量. (2) Tenured Generation (老年代): 用于存放"驻留"对象(即被引用较长时间的对象). 往往体现为一个大型程序中的全局对象或长时间被使用的对象. (3) Perm Generation (永久代): 用于存放"永久"对象. 这些对象管理着运行于JVM中的类和方法. 2 JVM的GC类型及触发条件 2.1 Young GC 又叫Minor GC(次收集), Young GC经常发生, 且其每次消耗的时间较短. —— 它只对Young