内存模型
主存储器与工作存储器
主存储器
方法区(Method Area)
方法区用于存储类的信息, 常量, 静态变量, 即时编译器编译后的代码....值得注意的是在方法区中存在一个叫运行时常量池(Runtime Constant Pool)的区域, 用于存放编译器生成的各种字面量和符号引用, 这些内容将在类加载后存放在运行时常量池, 便于以后使用....字段引用
线程无法对主存储器直接进行操作, 因此也无法直接引用字段的值, 当线程希望引用字段的值时, 会将值从主存储器拷贝到工作存储器上. 通过此次拷贝的值, 会成为工作拷贝....拷贝完成后, 线程就会引用工作拷贝. 当线程再次引用同一个字段的值时, 可能会使用刚才的工作拷贝, 也可能重新进行一次工作拷贝. 这具体是由Java的执行系统决定....同样的, 对于将值更新到字段的过程, 也是先将值赋给工作拷贝, 再由工作拷贝映像到主存储器上. 至于何时映像, 也是有Java执行系统决定.