JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分。
一、堆
1、存放所有new出来的东西;
2、存放对象和数组;
3、jvm中最大的一块内存。
二、程序计数器
1、存放当前线程的下一步操作指令的地址;
2、jvm中最小的一块内存。
三、方法区
1、存放虚拟机加载的类的信息、常量、静态变量等数据,运行时常量池。
四、java栈
1、是java方法执行的内存模型;
2、主要为了java方法执行提供服务;
3、生命周期和线程相同。
五、本地方法栈
和java虚拟机栈类似,但是它是为了本地方法执行提供服务。
线程共享:堆、程序计数器。
线程私有:方法区,java栈,本地方法栈。