jvm内存模型
1.方法区和堆是所有线程共享的数据区
1)堆:存放对象的实例
2)方法区:存放已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码
3)运行时常量池:用于存放编译期生成的各种字面量和符号引用
2.程序计数器、虚拟机栈、本地方法栈是线程隔离的数据区
4)程序计数器:当前线程所执行字节码的行号指示器
5)虚拟机栈:描述Java方法执行的内存模型,每个方法被执行时都会创建一个栈帧,用于存储变量表、操作栈、动态连接、方法出口等信息
6)本地方法栈:和虚拟机站作用相似,本地方法栈是为虚拟机使用到native方法服务。虚拟机栈则为虚拟机执行Java方法服务。