终于到了Java最核心的知识点JVM,今天主要来学习以下知识点:
Java内存区域
Java内存区域详解
运行时数据区域
Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8 和之前的版本略有不同,如图所示:
JDK 1.8
线程私有的:
线程共享的:
程序计数器
程序计数器主要有两个作用:
- 字节码解释器通过 改变程序计数器来依次读取指令 ,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。
- 在多线程的情况下,程序计数器 用于记录当前线程执行的位置 ,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。
注意:程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束而死亡。
参考
Java内存区域详解
原文
https://segmentfault.com/a/1190000020882353