字节码是什么

字节码就是一串二进制的字节流

字节码

Java 字节码(Java bytecode)是 Java 虚拟机器执行的指令的形式。每个字节码指令在长度上是一个字节(因此叫这个名字)

Java字节码时经过源文件(.java文件)经过编译后的产物(.class文件)。Java编译为字节码时,不会对变量和方法的引用编译为数值引用,也不确定执行过程中内存的布局,完成以上工作的是Java解释器

TIPS: 一个.java的文件可能会被编译为多个.class文件

虚拟机与字节码的关系

虚拟机不和包括JAVA在内的任何语言绑定,只和"class文件"这种特定的字节码文件相关

字节码语言无关性

  1. 虚拟机只与字节码相关,不关心class文件来源,可能是Java语言/Ruby语言编译得到)
  2. 字节码的存储结构固定