jvm内存模型:

堆内存(类的实例,数组,new 生成的对象),  栈内存(方法局部变量,方法参数),  静态内存区(常量,静态变量,类的元数据,不会被jvm垃圾回收)

内存溢出

1,  outOfMemoryError: java  heap  space 异常 

堆内存满了,比如 jar 文件太多。默认 最小为 物理内存的 1/64  ,最大为 1/4 

2.  outOfMemoryError: PermGen  space 异常 

静态内存区满了,加载的类太多了

3. stackOverflowError 异常

栈满了,  一般是 死循环,或者递归 导致的

配置tomcat 内存

 win下 在 catalina.bat  文件里面 

比如 

set JAVA_OPTS="-server  # 服务器模式
 -Xms256m  # 最新堆内存,不要 超过 80% 的物理内存
-Xmx512m  # 不要超过物理内存,一般为 物理内存的一半
-XX:MetaspaceSize=128m  # 元空间大小
-XX:MaxMetaspaceSize=256m # 默认无上限
"

以上来自慕课网

07-16 03:53