Jdk8之后的内存分区
Jdk8之前的内存分区
程序计数器
1.可以看做当前线程执行字节码的行号指示器,用于控制java字节码执行到第几行。
2.每个线程都有一个独立的程序计数器,从而实现切换线程后能恢复到正确的位置执行
虚拟机栈
1.生命周期与线程相同
2.主要存放对象引用与基本数据类型
本地方法栈
为虚拟机的native方法服务
Java堆
存放对象实例
方法区
1.是各个线程共享的区域
2.存放类信息,常量,静态变量
修改java内存区域的大小
1.修改java堆内存(xmx最大值,xms最小值): java -Xms512m -Xmx512m
2.修改虚拟机栈大小:java -Xss512
3.修改方法区大小:java -XX:permSize -XX:MaxPermSize