关于Garbage Collection的问题

BEA中的Lightweight GC和heavyWeight GC是什么概念?有什么区别?

谢谢

另外,JVM memory和系统Memory是不是一回事?JVM运行时是单独化出一块内存使用还是系统有多大内存它就用多少?

按我的理解,你应该指的是jvm heap吧?jvm heap指的是java程序运行时所需要的内存空间(不包括程序代码本身占用的),所以你通过系统monitor来查看所观察的java进程占用的大小会比你所指定的jvm heap来的大,大出的那部分就是程序代码占用的。jvm heap大小可以通过jvm 参数指定.

不知道你指的重轻量级gc是不是对应于jvm gc 的“新生代”和“保留代”的回收。一般“新生代”回收采取copy的方式,速度快,“保留代”的回收才是彻底的回收,需要花费比较多的时间。一般需要根据具体情况调整相对大小。(jvm heap大小一般由"新生代“区域+”保留代“区域+perm区域组成,perm存储的是那些运行期间永久保留的对象)。我只是按记忆写的,具体可以参考sun提供的jvm gc文档。

非常感谢你的回答,我差不多明白了。