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 # 默认无上限
"
以上来自慕课网