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