摘要: 程序计数器(PC Register) 这里的计数器(Program Counter Register)并非为广义上所指的物理寄存器,JVM中的PC寄存器(程序计数器)是对物理PC寄存器的一种抽象模拟,相当于IDE中的光标索引值,行号,表示当前正在编辑的行号。 PC寄存器用来存储指向下一条指令的地址, 阅读全文
posted @ 2020-06-04 14:26 叮叮叮叮叮叮当 阅读(755) 评论(0) 推荐(1) 编辑
摘要: 运行时数据区 class文件使用类加载子系统进行加载,经过加载、链接、初始化三个过程后进入方法区。接下来需要使用执行引擎进行执行并依赖于运行时数据区 如图所示,相同灰色为线程私有,绿色为多个线程共享的 线程是一个程序里的运行单元,jvm允许一个应用有多个线程并行执行,即多线程思想。每个线程独立包括程 阅读全文
posted @ 2020-06-04 12:34 叮叮叮叮叮叮当 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 类加载子系统 类加载子系统的主要功能是将本地物理文件加载到内存中,其结构如下所示: 1、加载(Loading) 通过一个类的全限定名获取定义此类的二进制文件字节流。 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 在内存中生成一个代表这个类的java.lang.Class对象,作为方 阅读全文
posted @ 2020-06-04 11:12 叮叮叮叮叮叮当 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 整个jvm的运行流程图如上所示,首先需要进行加载class文件,然后使用类加载子系统将class翻译解析导入内存,在内存中分别导入到对应的运行时数据区,然后执行引擎开始执行,对于需要的数据在对应的区域进行获取。 本文基于Hotspot虚拟机,采用的是解释器与即时编译器(JIT)并存的架构。 整体的结 阅读全文
posted @ 2020-06-04 10:36 叮叮叮叮叮叮当 阅读(489) 评论(0) 推荐(0) 编辑