1.Hotspot和堆
JAVA中JVM一般都是Hotspot
一个JVM只有一个堆内存(常量、变量、方法、类),保存引用类型的真实对象
2.堆(新生区、老年区、永久区)
jdk1.7和1.8有点区别,jdk1.8没了永久区,变成了元空间。在逻辑上来说元空间还是属于堆的,但在物理结构上来说新生区和老年区的内存相加刚好等于堆的总内存,元空间也被称作为非堆,元空间里面有方法区
3.堆内存调优,依次按下图进行
-Xms8m -Xmx8m -XX:+PrintGCDetails:这条配置表示设置jvm分配的总内存、试图分配的最大内存、打印输出GC的详细信息。
在差错的时候可以先扩大jvm的内存,如果还有错就找代码问题
4.使用JproFiler工具分析OOM(内存不够)原因,工具在官网下载、idea也要安装重启
下载完之后idea配置一下
然后修改VMOptions:-Xms8m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
Dump出文件:
在外面文件夹找到相应文件打开即可