第一章 略
第二章 java内存区域与内存溢出异常
2.1 运行时数据区域
2.1.1 程序计数器——线程私有
程序员计数器,可以被看作是当前线程所执行的字节码的行号指示器。
字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。
2.1.2 java虚拟机栈——线程私有
每个方法被执行的时候,java虚拟机都会同步创建一个栈帧来存储举报变量表、操作数栈、动态连接、方法出口等信息。
2.1.3 本地方法栈
为虚拟机使用到的本地方法服务
java虚拟机栈为虚拟机执行java方法(也就是字节码)服务
2.1.4 java堆——线程共享
所有对象实例以及数组都应该在堆上分配
2.1.5 方法区——线程共享
用于存储已八日虚拟机加载的类型信息、常量、静态变量、即时 编译器编译后的代码缓存等数据
2.1.6 运行时常量池
用于存放编译期生成的各种字面量与符号引用。运行期间也可以将新的常量放入运行时常量池中。
2021 05 05 未完待续