力洋网站建设公司,网站专题页面案例,vps搭建网站,石材网站建设一.整体方向JVM内存结构是和java虚拟机的运行时区域有关。Java内存模型和java并发编程有关。java对象模型和java对象在虚拟机中的表现形式有关。1.JVM内存结构堆#xff1a;通过new或者其他指令创建的实例对象#xff0c;会被垃圾回收。动态分配。虚拟机栈#xff1a;基本数…一.整体方向JVM内存结构是和java虚拟机的运行时区域有关。Java内存模型和java并发编程有关。java对象模型和java对象在虚拟机中的表现形式有关。1.JVM内存结构堆通过new或者其他指令创建的实例对象会被垃圾回收。动态分配。虚拟机栈基本数据类型对象本身在堆中对象的引用在栈中特点是创建的时候大小固定不会被改变。方法区数据是共享的存的是静态信息类信息以及常量信息和永久引用。本地方法栈调用native方法不是用java写的方法。程序计数器最小的区域主要是保存当前字节码的行号数上下文切换指令异常处理等等。2.Java对象模型首先会在方法区中把类创建出来里面的每一个实例都会放在堆中堆中结构是对象头实例数据。对于数据的引用保存在栈中。3.Java内存模型什么叫JMM全称Java Memory Model。c语言不存在内存模型的概念依赖处理器不同处理器结果不一样无法保证并发安全。JMM是一组规范以便于更方便的开发多线程程序。volatilesynchronizedlock等的原理都是JMM。最重要的三点重排序可见性原子性。1.重排序对代码进行优化提高处理速度。 发生在编译器优化CPU指令重排内存的“重排序”。2.可见性 CPU有多极缓存导致读的数据过期。会有可见性问题。Happens-Before规则1.单线程规则2.锁操作synchronized和lock3.volatile变量 4.线程启动 5.线程join 6.传递性 7.中断 8.构造方法 9.工具类的Happens-Before原则volatile同步机制更轻量不会发生上下文切换开销笑。synchronized不仅能保证原子性还能保证可见性。3.原子性要么全部执行要么全部不执行