美文网首页Java学习
java的编译器和解释器浅析

java的编译器和解释器浅析

作者: 唐T唐X | 来源:发表于2019-01-31 16:30 被阅读31次

这篇我们来聊聊java的编译器和解释器。先看看官方的解释:

Java Compiler (Java 编译器)
Java compiler reads source files written in the Java programming language, and compiles them into bytecode class files.
Java编译器读取java源文件(*.java)并将它们编译为java字节码文件(*.class)。
\blacklozengeWindows系统中的javac.exe可以简单看成是Java编译器。

Java Interpreter(Java 解释器)
Java compilers generate machine-independent bytecodes instead of machine instructions. The interpreter is like a CPU implemented in software. It decodes and executes bytecodes, independent of what computer they were compiled on.
Java编译器生成的是与机器码不同的java字节码,并不能被硬件中的CPU直接执行。而java解释器就像植根于软件中的CPU,能够解析并执行java字节码。
\blacklozengeWindows系统中的java.exe可以简单看成是Java解释器。

image.png

通过上面的解释和配图,我们已经基本能够知道java的编译器和解释器是干什么用的了。下面来聊聊为什么要有它们,当然只是我的理解,欢迎大家评论拍砖。

Java有个口号是“Write Once,Run Anywhere”,旨在展示Java程序设计语言的跨平台特性,而能够实现这个特性的基础就是java字节码文件和能够执行它的Java虚拟机 - JVM,一个可以在不同的硬件平台和操作系统上运行java字节码的神器。所以很清晰了,生成java字节码文件就是Java编译器的工作,而执行字节码的工作就是JVM中Java解释器干的活,没有它们就没有“Write Once,Run Anywhere”。

在这里还要说个东东 - JIT编译器(Just In Time Compile 即时编译器),总体来说,这项技术是被用来改善虚拟机的性能的。附解释:

Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块运行的特别频繁时,会把这些代码认定为“热点代码”(Hot Spot Code,如循环,高频度使用的方法等)。为了提高热点代码的执行效率,在运行时,虚拟机会把这些代码编译成本地机器码,并进行各种层次的优化,完成这个任务的编译器称为JIT编译器。JIT编译器是JRE的一部分。

简单的说,java解释器一行一行的运行java字节码还是太慢了,而机器码运行起来最快。JIT编译器把被多次调用的方法和被多次执行的循环体相关的字节码编译成本地机器码并运行,就可以大大提高运行效率。

顺带说一句,解释器 + JIT编译器就是JVM执行引擎(Execute Engine):


image.png

参考:
https://blog.csdn.net/sunxianghuang/article/details/52094859

相关文章

  • JVM、Java编译器和Java解释器

    JVM、Java编译器和Java解释器 java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体...

  • java的编译器和解释器浅析

    这篇我们来聊聊java的编译器和解释器。先看看官方的解释: Java Compiler (Java 编译器)Jav...

  • JVM(4)解释器和即时编译器

    1、虚拟机运行模式 java是一种解释性编程语言,在Hotspot实现中,提供了解释器和即时编译器,即时编译器能将...

  • JVM 简单解析

    什么是jvm?把java 编译器(java Compiler)编译出来的 .class文件,通过解释器 解释成特...

  • Java程序执行流程

    .Java源文件>compiler编译器>.class字节码文件>interpreter解释器> 以上就是java...

  • java

    javac:java编译器java:解释器文档生成器 javadoc.exejava打包器 jar.exejdb:...

  • 乱七八糟的基础知识

    JAVA编译过程 源文件—>java编译器—>字节码文件—>(类装载器—>字节码校验器—>解释器)—>系统平台 字...

  • Java的运行原理

    java程序执行过程: .java→.class→机器码java编译器 (编译) → 虚拟机(解释执行) → 解...

  • JAVA 总结

    特点 编译和解释并存。由编译器将Java源程序编译成字节码文件,然后再由Java运行系统解释执行字节码文件(解释器...

  • 浅析Python解释器的设计(二)

    从现代编译器的角度看,解释器和编译器的边界已经相当的模糊。我们后面的讨论说到的编译器就是Python的解释器,没有...

网友评论

    本文标题:java的编译器和解释器浅析

    本文链接:https://www.haomeiwen.com/subject/rxcksqtx.html