机器码
机器码就是cpu能够直接读取并运行的代码,用二进制编码表示,也叫做机器指令码。
字节码
字节码是一种中间状态的二进制代码,是由源码编译过来的,可读性没有源码高。而且cpu也不能够直接读取字节码,在java中,字节码需要经过JVM虚拟机转译成机器码之后,cpu才能够读取并运行。
举个例子:中国人要把法语翻译成俄语或其它语言,就需要把法语先翻译成中文再将中文翻译成俄语,机器码就是每个国家的语言(也就相当于说是每个平台最终运行时所使用的0,1代码)如法语和俄语,而字节码就是中间的中文,是一种中间状态,而虚拟器就相当于一个翻译官,但一种虚拟器一般只能翻译一种语言需要翻译多种语言就需要多种翻译器也就是多个虚拟器。