1.java数据区域
方法区(Method Area)存放加载类的信息,常量,静态变量,编译后的代码和数据
虚拟机栈(VM Stack) 局部变量,动态链接,方法出口,方法,操作数栈
本地方法栈(Native Method Stack)
类似虚拟机栈
堆(Heap) 新建的对象实例,垃圾回收的主要对象(GC堆)
程序计数器(Program Couter Register) 较小的内存空间,字节码解释器工作时利用改变计数器的值,来选取下一条要执行的语句。
2.
-verbose;gc -Xms20M -Xmx20M -Xmn10M -XX:SurvivorRatio=8
-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 配置参数
-Xms20M堆参数最小值 -Xmx20M堆参数最大值 避免自动扩展
VM Args: -Xss128k 减少栈内存的容量
VM Args:-XX:MaxDirectMemorySize DirectMemory的容量
3.
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 内存溢出异常
Exception in thread "main" java.lang.StackOverflowError 栈内存不足
Memory Leak内存泄露
Memory Overflow内存溢出
PermGen space 方法区
MinorGC新时代GC
MajorGC(FULL GC)老生代GC