1、什么是程序计数器
什么是程序计数器?
背景:
相信学过计算机组成原理的人都知道,CPU内部的寄存器中就包含一个程序计数器(x86下为eip寄存器,ARM下为R15寄存器)存放程序执行的下一条指令地址。
程序每次执行时,CPU都会自动存储下一条指令的地址,以便下次继续执行。
jvm偷学CPU:
JVM也是参考了CPU的程序计数器,自己设计了一个程序计数器,用于储存JVM当前执行bytecode的地址(节码指令地址)。
程序计数器记录当前线程正在执行的字节码的地址。
程序计数器是线程隔离的,每一个线程在工作的时候都有一个独立的计数器。

2、什么是字节码指令地址

3、为什么要存储这个字节码指令地址呢

4、程序计数器的特点

1.简单讲下什么是程序计数器?
2.程序计数器为什么要存储字节码指令地址呢?
3.为什么程序计数器具有线程隔离性?
4.为什么程序计数器是java虛拟机规范中唯- 一个没有规定任何OutofMemeryError的区域?
5、java栈
随线程而生,随线程而灭的虚拟机栈



6、局部变量表
局部变量表是用来做什么的

字节码指令地址和源码关联

查看局部变量表

局部变量表存储的数据类型


index 是指的槽位角标, 下图前3个都是一个槽位,第4个long类型是两个槽位

局部变理表的对象引用原理
引用对象只有一个sLof 槽位



7、操作数栈以及压栈和出栈

压栈和出栈流程



