
JVM笔记
文章平均质量分 81
silicalai
这个作者很懒,什么都没留下…
展开
-
JVM007_运行时栈帧结构
运行时栈帧结构执行引擎是JVM的核心组件之一。所有Java虚拟机的执行引擎输入输出都是一致的:输入的是字节码二进制流,处理过程是字节码解析执行的等效过程,输出的是执行结果。JVM以方法作为作基本的执行单元。“栈帧”是用于支持虚拟机进行方法调用和方法执行背后的数据结构。这里的方法调用指的是确定调用那一个方法,也是JVM运行时数据区中栈的栈元素。栈帧存储的内容主要有:局部变量表,操作数栈,动态连接和方法返回地址信息等。局部变量表局部变量表是一组变量的存储空间。用以存储方法参数和方法内的局部变量。在编原创 2021-04-15 23:35:44 · 155 阅读 · 0 评论 -
JVM005_synchronized、同步指令、管程、MESA
synchronized、同步指令、管程、MESAsynchronized是Java的一个关键词,可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,保证了原子性、可见性、有序性。**临界资源:**一次只能被一个线程访问的资源。**临界区:**访问临界资源的那段代码。synchronized的应用synchronized可以修饰:静态方法,锁定的是当前类的Class对象,进入同步代码前需要先获得当前类的锁。public class Test{ public synchr原创 2021-04-01 00:47:36 · 148 阅读 · 1 评论 -
JVM004_字节码指令简介
字节码指令简介Java虚拟机指令由操作码(Opcode)和跟随其后的零至多个操作数(Operand)组成。操作码:一个字节长度的,代表某种特定操作含义的数字。操作数:操作码需要的参数。字节码与数据类型opcodebyteshortintlongfloatdoublecharreferenceTstoreistorelstorefstoredstoreastoreTinciincTaloadbaloadsa原创 2021-03-31 01:05:45 · 133 阅读 · 0 评论 -
JVM006_类加载的过程
类加载类加载时机类加载的过程新术语**类加载器:**简单的理解为将类转换为二进制流的类或接口。数组的元素类型:数组去掉所有维度的类型。**数组的组件类型:**数组去掉一个维度的类型。基本块: 按照控制流拆分的代码块。1. 加载加载是类加载过程的一个阶段。加载阶段主要完成三件事情:根据类的全限定名,获取定义此类的二进制字节流。将这个二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构。在内存中生成一个代表该类的java.lang.Class对象,作为访问方法区中该类各种数据原创 2021-04-06 00:05:32 · 138 阅读 · 0 评论