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

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是先编译后解释,但是运行的时候是解释型语言的翻译方式,可以是解释型语言也可以是编译型语言。

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/82928926