由于Java号称的一次编译,处处运行 是建立在JVM上的,而Java又将Java规范拆分为了Java语言规范和JVM虚拟机规范,所以可以支持多种语言在虚拟机上的运行

所以任何语言都必须遵循的是JVM虚拟机规范,将自己转换为一个有效的Class文件,而这个Class文件必须严格遵守Class规范

图片

无论是哪种语言,如果想要运行在java虚拟机上,那么需要遵循编译为一个有效的Class文件,而这个Class文件必须严格遵守Class规范

Class类文件的结构是由JAVA虚拟机规范来规定的,只规定了结构,并没有固定如何实现

Class文件是一组8为字节为基础单位的二级制流,各个项目严格按照顺序进行排序,中间没有任何分隔符

当遇到的数据大于8,就会将其分割为若干个8个字节来存储

在Java的Class文件中,可以分为两种数据结构  无符号数和表

无符号数很简单,就是基本的数据类型,分别以u1 u2 u4 u8来代表 1字节 2字节 4字节 8字节

用于表示描述 数字 索引引用 数值量或者UTF-8编码

表则是多个无符号数或者其他表组合的符合数据类型,名字都以_info 结尾

Class就是由表组成的,也就是引用类型数据

图片

接下来就一一介绍

发表评论

邮箱地址不会被公开。 必填项已用*标注