1、语言无关性
虚拟机不关心字节码
Class文件的来源是什么语言,只要符合Class文件应有的结构就可以在Java虚拟机上运行
2、Class类文件的结构
- 是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在
Class文件中 - 文件格式采用一种伪结构存储,只有两种数据类型:无符号数和表
- 魔数:文件的头4个字节,用于确定这个文件是否为一个能被虚拟机接受的class文件
- 常量池主要存放两大类:字面量、符号引用
- Java语言不允许多重继承,所以父类索引只有一个,除了
java.lang.Object之外,所有的Java类都有父类 - 字段表用于描述接口或类中声明的变量
- Java语言中字段是无法重载的,两个字段的数据类型、修饰符不管是否相同,都必须使用不一样的名称
- 方法表
volatile和transient这两个关键字不能修饰方法Slot是虚拟机为局部变量分配内存所使用的最小单位
- 异常表
- 是Java代码的一部分,编译器使用异常表而不是简单的跳转命令来实现Java异常及finally处理机制
本文深入探讨了Java虚拟机的核心特性,包括语言无关性、Class文件结构解析、字节码执行原理,以及常量池、字段表、方法表等关键组件的作用。详细解释了Java虚拟机如何处理异常和实现异常处理机制。

被折叠的 条评论
为什么被折叠?



