1.java内存结构,也就是运行时的数据区域
堆(heap)、栈(stack)、本地方法栈(native method stack)、方法区(method area)、程序计数器(program counter register)
2.java内存模型
三个重要特性:原子性、可见性、有序性
可见性的实现:volatile、syhchronized、lock、final。通过更新工作内存的数据到主内存
有序性含义:在本线程内操作有序,一个线程观察另外一个线程的执行操作无序;前一句指线程内表现为串行语义,后半句指指令重排和工作内存和主内存同步延迟的现象
3.对象的内存布局
对象头(Header)、实例数据(instance data)、对齐填充(padding)