jvm內存模型: java
堆內存(類的實例,數組,new 生成的對象), 棧內存(方法局部變量,方法參數), 靜態內存區(常量,靜態變量,類的元數據,不會被jvm垃圾回收)數組
內存溢出tomcat
1, outOfMemoryError: java heap space 異常 服務器
堆內存滿了,好比 jar 文件太多。默認 最小爲 物理內存的 1/64 ,最大爲 1/4 jvm
2. outOfMemoryError: PermGen space 異常 spa
靜態內存區滿了,加載的類太多了code
3. stackOverflowError 異常server
棧滿了, 通常是 死循環,或者遞歸 致使的對象
配置tomcat 內存遞歸
win下 在 catalina.bat 文件裏面
好比
set JAVA_OPTS="-server # 服務器模式 -Xms256m # 最新堆內存,不要 超過 80% 的物理內存 -Xmx512m # 不要超過物理內存,通常爲 物理內存的一半 -XX:MetaspaceSize=128m # 元空間大小 -XX:MaxMetaspaceSize=256m # 默認無上限 "
以上來自慕課網