java内存模型
java平台自动集成了线程以及多处理技术。
定义
JMM(Java内存模型,Java Memory Model的缩写)是控制Java线程之间、线程和主存之间通信的协议。
内存模型描述了程序中各个变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存、从内存中取出变量这样的底层细节。
内存模型的规则:
原子性
可见性
可排序性
jvm实例:
1.java虚拟机有一个类加载器作为jvm的子系统,类加载器针对class文件进行检测来加载对应的类接口
2,jvm内部有一个执行引擎,用来负责代码的解释和执行
3,程序运行,通过内存来存储字节码,附加信息,对象,方法参数,返回值,局部变量以及中间结果的很多内容
4,jvm的内存管理
静态存储
栈式存储
堆存储
jvm内存组成结构
1.pc寄存器
2.方法区
3.本地方法栈
4.栈
5.堆
栈和堆的区别
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其
操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时由GC处理
收