java基础面试问题1

基础常识问题

1. Java语言有哪些特点?

  1. 简单易学
  2. 面向对象(继承,封装,多态)
  3. 平台无关性(一次编译处处运行)
  4. 支持多线程
  5. 可靠性
  6. 安全性
  7. 高效性
  8. 支持网络编程
  9. 解释与编译并存

2. Java SE 和 Java EE 的区别?

Java SE是Java的标准版本,而Java EE 是企业版本 SE更适合开发桌面软件,EE适合开发服务端,当然SE已经不在流行,其实还有一个ME版本,
是用来开发嵌入式设备的,没有想到最后发展起来的是EE版本

3. JVM JDK JRE 都是什么?它们有什么关系?

JVM

(Java Virtual Machine) - Java 虚拟机 是一个虚拟的概念,它不是真实存在的硬件,而是一个用软件模拟的计算机,可以执行字节码文件。
核心功能就是解释字节码文件,将Java编译器生成的字节码解释成特定操作系统的机器码。进行内存管理,Java的内存管理不再由开发人员进行手动管理,
JVM负责程序的内存分配和垃圾回收。JVM还提供了一些安全特性,类加载机制,防止恶意类加载。

总的来说,你可以吧JVM看作是一个翻译器,将Java的字节码转为不同的机器码,去调度操作系统执行。它是Java跨平台的核心,对于JVM,每个人都可以根据
虚拟机规范去实现自己的JVM。

JDK

JDK (Java Development Kit) - Java 开发工具包 这是Java程序的开发工具包,它包含JRE以及用于开发Java程序的工具。所以JDK是包含JRE的,
Java编译器和Java调试器以及一些其他工具共同组成。

JRE

JRE (Java Runtime Environment) - Java 运行时环境 Java运行的最小环境,它包含了Java程序运行所需要的核心类库和其他支持文件,它是Java
运行的必须环境

它们的关系可以用一一张图来说明:

jdk-jre-jvm-关系图

JDK 包含 JRE,JRE 包含 JVM。
JDK 是开发 Java 程序必须的,JRE 是运行 Java 程序必须的,JVM 是 Java 程序运行的基础。

如果你只是想运行别人编写好的 Java 程序,只需要安装 JRE 即可。

如果你需要开发 Java 程序,则需要安装 JDK。

4. 什么是字节码?采用字节码的好处是什么?

字节码是一种中间形态的代码,它跟不是人类可读的源代码,也是不是计算机可以直接执行的机器码,它是一种平台无关的二进制哥格式,旨在有JVM虚拟机执行

特点就是:二进制格式,平台无关性,虚拟机指令和class文件(Java)

生成过程如图
字节码生成过程

采用字节码作为中间代码,可以带来以下显著好处,平台无关性,这是字节码最核心的优势,字节码不依赖任何特定的操作系统,只要有相应平台的JVM实现
即可在相应平台运行。增强了安全性Java字节码运行在JVM虚拟机,JVM提供了一层沙箱,防止恶意代码对底层系统和硬件的损害。代码优化,JVM可以采用多种
手段对字节码进行优化。动态链接和反射。易于分发

5. 为什么说 Java 语言“编译与解释并存”?


java基础面试问题1
https://mazepeng.com/2025/01/07/java-basic-interview-questions-1/
作者
马泽朋
发布于
2025年1月7日
许可协议