Java是解释执行吗?

JDK8实际是采用解释和编译混合的模式。

JVM
常见的JVM,比如Oracle JDK提供的HotSpot JVM,都提供了JIT(Just in time)编译器,也就是通常说的动态编译器。JIT能够在运行时将热点代码编译成机器码,这种情况下,热点代码就属于编译执行,而不是解释执行了。

Oracle Hotspot JVM内置了两个不同的JIT编译器,C1对应Client模式,适用于启动速度敏感的应用;C2对应server模式,默认采用分层编译,它的优化是为长时间运行的服务端应用设计的。

JVM作为一个强大的平台,合规的字节码都可以在上面运行。比如Clojure、Scala、Groovy、JRuby和Jython等JVM语言。

我们把JAVA分为编译期和运行时,Java的编译与C/C++是不同的,Javac编译之后生成的是.class的字节码文件,而不是可以让机器直接执行的机器码。在运行时,JVM会通过类加载器(Class-loader)加载字节码,解释或编译执行。

Java的特性、类库、基础概念
Java的语言特性,包括泛型、Lambda等;基础类库,包括集合、IO/NIO、网络、并发、安全等。JVM的一些基础概念和机制,比如类加载机制、类加载过程,垃圾收集的基本原理,最常见的垃圾收集器、适用于什么样的工作负载。

你可能感兴趣的:(Java是解释执行吗?)