由于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就是由表组成的,也就是引用类型数据
接下来就一一介绍