Java 八股文 1—Java 平台概览

Java 八股文 1—Java 平台概览_第1张图片

Java 技术体系

  • Java 程序设计语言、Java API 类库、Java 虚拟机这三部分统称为 JDK(Java Development Kit),JDK 是用于支撑 Java 程序开发的最小环境;

  • 其中 Java SE API、JVM 和部署相关的类库可统称为 JRE(Java Runtime Environment),JRE 是支撑 Java 程序运行的标准环境;

Java 八股文 1—Java 平台概览_第2张图片

Java 程序的运行

  • 开发者写的 Java 代码会放在.java 文件,也就是 Java 源文件。Java 源文件通过 javac 编译生产字节码(.class)文件,也就是 Java 类文件;

  • Java 虚拟机是在操作系统之上搭建的一个虚拟的计算机,实际上 Java 虚拟机就是操作系统里的一个进程。计算机的基本组成就是操作系统和硬件,硬件包括内存和逻辑计算单元,操作系统的核心模块包括内存管理、计算过程管理。对应的在 Java 虚拟机里也类似的概念:Java 虚拟机内存管理和 Java 虚拟机执行子系统;

  • 在 Java 虚拟机执行子系统中,通过类加载器将字节码(.class)文件转译为对应的机器所能识别的机器码

Java 八股文 1—Java 平台概览_第3张图片

Java 的跨平台特性

Java 所谓的“一次编译、到处执行”,关键就在于 Java 虚拟机和 Java 运行时类库构建的 JRE,在每个类型的操作系统上,都能运行一个 Java 虚拟机和对应的运行时类库,这样就可以执行在别的地方编译出来的字节码文件了。

Java 是解释执行吗

不完全是,Java 代码的执行过程应该是二者的混合。Java 源文件通过 javac 编译器将源文件编译为字节码,然后虚拟机在执行的过程中,逐步将字节码转化为对应的机器指令,这是解释执行,但是对于某些反复执行的字节码片段,会通过 JIT 提前编译成机器码,这就是编译执行了。

  • 解释运行:一边对程序进行翻译,翻译成计算机可以执行的指令,一边交给计算机执行,翻译一句执行一句。

  • 编译运行:对整个程序先翻译成计算机可以理解的指令,然后计算机可以直接执行。

相关面试题

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

  2. JDK、JRE 和 JVM 的区别是什么?

  3. Java 所谓的“一次编译,到处执行”这句话如何理解?

  4. Java 是解释执行,这句话正确吗?

  5. 一个 Java 程序是如何执行的?

参考资料

  1. 《Java 核心技术面试精讲》

  2. 《深入理解 Java 虚拟机》

  3. 《Java 性能调优实战》

总结:

有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,你也需要的话欢迎下载!点赞收藏+评论转发+关注我之后私信我,注意回复【000】即可获取更多免费资料!

Java 八股文 1—Java 平台概览_第4张图片

 

你可能感兴趣的:(后端,java,面试)