1、JVM内存结构
- 堆:对象
- 栈:对象的引用、基本数据类型
- 方法区: static静态变量、类信息、常量信息、永久对象引用
- 本地方法栈:native方法
- 程序计数器:保存当前线程字节码的行号数、下次需要执行的指令
2、Java对象模型(对象在内存中的结构)
3、Java内存模型 JMM (并发操作时)
(1)、什么是JMM,为什么需要:
1、是一种规范,若没有,在不同系统中处理的结果可能不一样,也无法保证并发安全
2、JMM还是工具类和关键字的原理(volatile、synchronized、Lock等)
(2)、重排序、可见性、原子性
1、重排序:执行顺序与代码编写顺序不一致(除了happens-before原则) 好处:提高处理速度
2、可见性:多级缓存带来的问题 - 独占工作内存 (用volatile解决)