jvm小白

tomcat设置可被jconsole监控:

在catalina.bat或catalina.sh里面加上。

set JAVA_OPTS=-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false  

jvm并不是立即回收,而不是占用内存达到一定比例(比如90%),

一个空的jvm虚拟机也要占用1996360字节(1.9M)

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded

内存不足,引起的原因是,虚拟机尝试回收,但是回收之后,内存还是很高。解决办法:1简单暴力就是加大内存,2改代码,少用静态变量,或者相互引用,这样对象才能被回收。