魔数 每个class文件的头4个字节称为魔数(Magic Number),其值为:0xCAFEBABE,它的唯一作用是用于确定这个文件是否为一个能被虚拟机接受的class文件。使用…
标签:java虚拟机
深入理解Java虚拟机笔记---访问标志
常量池结束之后,紧接着的2个字节代表访问标志(access_flags),这个标志用于识别一些或接口层次的访问信息,包括:这个class是类还是接口;是否定义为public类型;是否定义为abs…
深入理解Java虚拟机笔记---字段表集合
字段表(field_info)用于描述接口或类中声明的变量。字段(field)包括了类级变量或实例变量,但不包括方法内部声明的变量。描述一个字段的信息有:字段的作用域(public,privat…
深入理解Java虚拟机笔记---方法表集合
方法表的结构与字段表一样,依次包含了访问标志(access_flags),名称索引(name_index),描述符索引(descriptor_index),属性表集合(attributes)几项…
深入理解Java虚拟机笔记---属性表集合
在Class文件,字段表,方法表中都可以携带自己的属性表集合,以用于描述某些场景专有的信息。与Class文件中其它的数据项目要求的顺序、长度和内容不同,属性表集合的限制稍微宽松一些,不再要求各个…
深入理解Java虚拟机笔记---双亲委派模型
站在虚拟机的角度上,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另外一种就是其它所有的类加载器,这些类加载器都由Jav…
深入理解Java虚拟机笔记---运行时栈帧结构
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表…
深入理解Java虚拟机笔记---原子性、可见性、有序性
Java内存模型是围绕着并发过程中如何处理原子性、可见性、有序性这三个特征来建立的,下面是这三个特性的实现原理: 1.原子性(Atomicity) 由Java内存模型来…
深入拆解Java虚拟机【推荐】
作为开发工程师,你也许会在日常编程中被 Java 的启动性能和内存耗费所震惊,继而对 Java 语言产生怀疑;或许在使用虚拟机遇见内存溢出等一系列异常时头疼万分,困扰于为什么会出现各种问题。 和语言朝夕相处的开发者们,提…
【深入理解Java虚拟机学习笔记】虚拟机类加载机制
# 虚拟机类加载机制 类加载时机 类从被加载到虚拟机内存中开始,到卸载出内存位置,整个生命周期如下 加载 验证 准备 解析 初始化 使用 卸载 必须初始化的情况 遇到new、getstatic、putstatic、inv…
java虚拟机类加载机制---《深入理解java虚拟机》读书笔记
Java虚拟机类加载机制是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。 java可动态扩展…