什么是字节码?

文章目录

  • 什么是字节码?采用字节码的好处是什么?
    • 机器码
    • 字节码
    • java中的编译器和解释器
    • 采用字节码的好处
    • 什么是字节码文件?

什么是字节码?采用字节码的好处是什么?

 

机器码

机器码:机器码就是cpu能够直接读取并运行的代码,用二进制编码表示,也叫做机器指令码。
 

字节码

字节码:字节码是一种中间状态二进制代码,是由源码编译过来的,可读性没有源码高。而且cpu也不能够直接读取字节码,在java中,字节码需要经过JVM虚拟机转译成机器码之后,cpu才能够读取并运行。
 

java中的编译器和解释器

java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个共同的接口。

编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器将虚拟机代码转换成特定系统的机器码执行。在java中,这种供虚拟机理解的代码叫做字节码(即.class文件),它不面向任何特定的处理器,只面向java虚拟机。

每一种平台的解释器是不同的,但是实现的虚拟机是相同的。java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定机器上运行,这也是java编译与解释并存的特点。

java源代码 - - - 编译器 - - - jvm可执行的字节码 - - - jvm中的解释器 - - - 机器可执行的二进制机器码 - - - 程序运行

 

采用字节码的好处

java语言通过字节码的方式,在一定程度在解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以java程序运行时比较高效,而且由于字节码并不专对于一种特定的机器,因此java程序无需重新编译便可以在多种不同的计算机上运行。

 

什么是字节码文件?

字节码文件是经过编译器预处理过的一种文件,是JAVA执行文件的存在形式。
它本身是二进制文件,但是不可以被系统直接执行,而是需要虚拟机(JVM)解释执行。由于被预处理过,所以比一般的解释代码要快,但是仍然会比系统直接执行的慢。

你可能感兴趣的:(吊打面试官,java)