Fork me on GitHub

Java01

谈谈你对 Java 平台的理解?

1、谈谈你对 Java 平台的理解?

可以从以下几个方面入手:Java/JVM 生态、基本语言特性、Java 类库、Java 虚拟机、工具。

2、「Java 是解释执行」,这句话正确吗?

对于「Java 是解释执行」这句话,这个说法不太准确。我们开发的 Java 的源代码,首先通过 Javac 编译成为字节码(bytecode),然后,在运行时,通过 Java 虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。『将字节码解释成机器码』

但是常见的 JVM,比如我们大多数情况使用的 Oracle JDK 提供的 Hotspot JVM,都提供了 JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT 能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。『将字节码编译成机器码』

众所周知,我们通常把 Java 分为编译期和运行时。这里说的 Java 的编译和 C/C++ 是有着不同的意义的,Javac 的编译,编译 Java 源码生成“.class”文件里面实际是字节码,而不是可以直接执行的机器码。

在运行时,JVM 会通过类加载器(Class-Loader)加载字节码,解释或者编译执行。

-------------本文结束感谢您的阅读-------------

本文标题:Java01

文章作者:Yan ChongSheng

发布时间:2018年11月29日

最后更新:2018年11月29日

原始链接:yanchongsheng.github.io/2018/11/29/Java-Java-Interview-2018-11-29-Java01/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

开启打赏模式