首页 > 编程语言 >JAVA面试中,面试官最爱问的问题。

JAVA面试中,面试官最爱问的问题。

时间:2024-06-17 18:00:31浏览次数:24  
标签:面试官 Java 字节 JDK JRE 运行 JVM JAVA 最爱问

什么是JVM,JRE和JDK?

JVM(Java Virtual Machine)、JRE(Java Runtime Environment)和JDK(Java Development Kit)是Java开发和运行环境中的三个重要组件。它们分别扮演不同的角色,共同支持Java程序的开发和运行。

### JVM(Java Virtual Machine)

JVM是Java虚拟机,它是Java程序的运行时环境。JVM负责将Java字节码(.class文件)解释或编译成机器码,然后在主机操作系统上执行。JVM提供了一种平台无关的运行环境,使Java程序能够“一次编写,处处运行”。

#### JVM的主要功能:

1. **加载字节码**:从.class文件或其他源中加载Java字节码。
2. **字节码验证**:确保字节码是合法和安全的。
3. **字节码执行**:通过解释器或即时编译器(JIT)执行字节码。
4. **内存管理**:包括堆(Heap)和栈(Stack)的管理,以及垃圾回收(Garbage Collection)。
5. **提供运行时环境**:支持线程管理、安全性管理和其他系统相关功能。

### JRE(Java Runtime Environment)

JRE是Java运行时环境,它包含了运行Java应用程序所需的所有内容。JRE包括JVM、核心类库(Core Libraries)和支持文件。JRE为用户提供了运行Java应用程序的环境,但不包含开发工具(如编译器和调试器)。

#### JRE的主要组成部分:

1. **JVM**:Java虚拟机,负责执行字节码。
2. **核心类库**:包括Java标准库(如java.lang, java.util等),提供常用的功能和API。
3. **其他支持文件**:如配置文件、国际化资源等。

### JDK(Java Development Kit)

JDK是Java开发工具包,它是用于开发Java应用程序的完整环境。JDK包含了JRE以及开发工具(如编译器、调试器、文档生成器等)。开发者使用JDK来编写、编译、调试和运行Java程序。

#### JDK的主要组成部分:

1. **JRE**:包含JVM和核心类库,用于运行Java程序。
2. **开发工具**:
   - **javac**:Java编译器,将Java源代码编译成字节码。
   - **java**:Java应用程序启动器,用于运行Java程序。
   - **javadoc**:文档生成工具,从Java源代码中提取注释生成API文档。
   - **jdb**:Java调试器,用于调试Java程序。
   - 其他工具如`javap`(字节码反编译器)、`jarsigner`(JAR文件签名工具)等。

### 总结

- **JVM(Java Virtual Machine)**:Java虚拟机,负责执行Java字节码,实现平台无关性。
- **JRE(Java Runtime Environment)**:Java运行时环境,包含JVM和核心类库,用于运行Java程序。
- **JDK(Java Development Kit)**:Java开发工具包,包含JRE和开发工具,用于开发和调试Java程序。

### 关系图示

```
+--------------------------------------+
|               JDK                    |
|  +---------------------------------+ |
|  |              JRE                 | |
|  | +-----------------------------+ | |
|  | |             JVM             | | |
|  | +-----------------------------+ | |
|  | +-----------------------------+ | |
|  | |       Core Libraries        | | |
|  | +-----------------------------+ | |
|  +---------------------------------+ |
|  +---------------------------------+ |
|  |         Development Tools       | |
|  +---------------------------------+ |
+--------------------------------------+
```

通过理解JVM、JRE和JDK的区别和关系,可以更好地掌握Java开发和运行环境的构成和功能。

标签:面试官,Java,字节,JDK,JRE,运行,JVM,JAVA,最爱问
From: https://blog.csdn.net/heye0910032/article/details/139664654

相关文章

  • Java数组 详解(初始化 格式 索引 地址值 遍历 …)
    数组什么是数组?数组指的是一种容器可以用来存储同种数据类型的多个值小结:数组指的是一种容器可以用来存储同种数据类型的多个值//数组容器在存储数据的时候需要结合隐式转换考虑//例如int类型的数组容器( byte short int )//例如double类型的数组容器......
  • 基于springboot的南门桥社区疫情防疫系统-48138(免费领源码+数据库)可做计算机毕业设计J
    Springboot南门桥社区疫情防疫系统的设计与实现摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对南门桥社区疫情防疫系统等问题,对南门桥社区......
  • Java JSON组成和解析
    本框架JSON元素组成和分析,JsonElement分三大类型JsonArray,JsonObject,JsonString。JsonArray:数组和Collection子类,指定数组的话,使用ArrayList来add元素,遍历ArrayList再使用Array.newInstance生成数组并添加元素即可.JsonObject:带有泛型的封装类,给带有泛型的字段赋......
  • java构造器
    构造器分为无参构造与有参构造每一个类都有一个隐藏起来的无参构造这个午餐构造没有返回值和返回类型,且方法名必须与类名相同,且必须是public1.使用new关键字必须要有构造器2.构造器用来初始化alt+insert快捷键快速创建构造器当有有参构造,却想调用无参构造时,必须有一个显示......
  • Java入门:02.java中数据的类型转换
    上两篇文章,大家了解到了常量与变量。以此为基础,我们引入了数据和数据类型的概念,今天我就和大家一起来更加深入的了解一下数据之间的类型转换吧。还是这张图,我们可以看到,各个类型之间,每个关键字所占用得内容空间大小也是各不相同的,而在Java中,一些数据类型是可以进行转换的。......
  • Linux上java-jar Spingboot项目
    百度的,后面再补一个Linux文档操作手册,是不是很大胆?准备工作1、首先得有两个软件Xftp(用来上传文件到)和XShell(连接服务器执行命令)2、Linux上有JDK(怎么安装可以转到Linux安装JDK流程)3、项目的JAR包项目jar包导jar<build><plugins><plugin><groupId......
  • Javaweb实现简易记事簿 jdbc实现Java连接数据库
    //相关代码packageUserAct;importjakarta.servlet.;importjakarta.servlet.annotation.WebServlet;importjakarta.servlet.http.;importjava.io.;importjava.sql.;//登出@WebServlet("/UserAct.DeleteEvent")publicclassDeleteEventimplementsServlet{......
  • [javascript]何为变量提升?
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18252500出自【进步*于辰的博客】关于编译与解释,详述可查阅博文《[Java]知识点》中的【编译与解释】一栏。参考笔记二,P43.3、P46.1、P9.3。目录1、什么是“变量提升?2、va......
  • Java速成笔记 2024.6.17版
    变量:可以变化的容器不同变量可以存储不同类型的值变量声明方法:变量类型变量名=初始值;E.G.inta=1;变量类型:整型:intlong浮点数:floatdouble布尔:boolean字符串:String字符:char变量命名注意事项:不能重名不能以数字开头常量:关键字:final语法:finalfl......
  • 基于Java+Vue的采购管理系统:实现采购业务数字化(全套源码)
    前言:采购管理系统是一个综合性的管理平台,旨在提高采购过程的效率、透明度,并优化供应商管理。以下是对各个模块的详细解释:一、供应商准入供应商注册:供应商通过在线平台进行注册,填写基本信息和资质文件。资质审核:系统对供应商提交的资质文件进行自动或人工审核,确保供应商符......