Java语言是解释型还是编译型语言?

Java的运行过程
Java源文件(*.java)通过java编译器(javac)编译成一个ByteCode字节码文件(*.class),字节码由java自己设计的一个计算机JVM解释执行,虚拟机将每一条要执行的字节码送给解释器没解释器将其翻译成特定机器上的目标机器码,然后再特定机器上运行。
JVM
java的跨平台是基于JVM的。JVM是一台计算机上由软件或硬件模拟的计算机,java程序编译后的(*.class)文件都是在JVM上运行的,也就是说*.class文件只需认JVM,由JVM去适应各个操作平台系统,所以不同的操作系统只要安装符合其类型的JVM。
对于编译后文件的处理

  • 运行时,ByteCode由JVM逐条送给解释器,解释器将翻译后才能机器码运行;
  • 运行时,部分ByteCode可能由实时编译器编译成目标机器码再执行,因为JVM中没有解释器;
  • RTSJ,继javac后执行AOT二次编译,生成静态的目标平台码。

所以java是先编译后解释,但是运行的时候是解释型语言的翻译方式,可以是解释型语言也可以是编译型语言。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐