Java基础面试题01-请描述Java中JDK和JRE的区别?

devtools/2024/11/24 22:04:08/

什么是 JDK?

JDK 全称 Java Development Kit,中文叫“Java 开发工具包”。
它是给 Java 开发者用的工具箱,里面有一切写代码、编译代码、调试代码所需要的工具。

JDK 包括什么?

  • Java 编译器(javac):把我们写的代码翻译成计算机能懂的语言。
  • Java 虚拟机(JVM):用来运行翻译后的 Java 程序。
  • Java 类库:相当于工具箱里的螺丝刀、扳手,提供了大量功能模块,比如数据处理、网络通信等。

总结一句话:JDK 是专为开发者准备的工具,支持你写、改、测、跑代码。

JDK、JRE、JVM关系


什么是 JRE?

JRE 全称 Java Runtime Environment,中文叫“Java 运行环境”。
它是给 普通用户用的,帮助运行 Java 程序的“后勤保障”。

JRE 包括什么?

  • Java 虚拟机(JVM):它是运行 Java 程序的核心组件。
  • Java 类库:运行 Java 程序需要的工具包。

总结一句话:JRE 是用来运行 Java 程序的,它不关心你怎么开发代码,只负责让程序顺利跑起来。


JDK 和 JRE 的主要区别

1. 功能差异

  • JDK = 开发工具 + 运行环境:除了可以运行程序,还能用来写代码、调试和编译。
  • JRE = 运行环境:只能运行 Java 程序,不能开发新程序。

2. 适用对象

  • JDK 给开发者用:想写 Java 程序?用 JDK。
  • JRE 给普通用户用:只想跑别人写好的程序?用 JRE。

3. 安装包大小

  • JDK 更大:因为它多了一堆开发工具。
  • JRE 更小:只包含运行需要的基础东西。

4. 使用场景

  • 开发阶段:写代码、编译、调试 —— 用 JDK。
  • 运行阶段:部署程序、运行程序 —— 安装 JRE 就够了。

总结

  • JDK 是开发者的好帮手,帮你从零开发 Java 程序;
  • JRE 是普通用户的运行管家,确保 Java 程序能顺利跑起来。

最后说一句(求关注,求赞,别白嫖我)

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。
这是大佬写的
7701页的BAT大佬写的刷题笔记,让我offer拿到手软

本文,已收录于,我的技术网站 cxykk.com:程序员编程资料站,有大厂完整面经,工作技术,架构师成长之路,等经验分享

求一键三连:点赞、分享、收藏


http://www.ppmy.cn/devtools/136653.html

相关文章

mini-lsm通关笔记Week2Day5

项目地址:https://github.com/skyzh/mini-lsm 个人实现地址:https://gitee.com/cnyuyang/mini-lsm Summary 在本章中,您将: 实现manifest文件的编解码。系统重启时从manifest文件中恢复。 要将测试用例复制到启动器代码中并运行…

HashMap源码详解

提醒你一下,用电脑或者平板看,手机屏幕小,图片会看不清楚,源码不方便看 基础前置 看该篇文章之前先看看这篇基础文章 HashMap底层原理-CSDN博客 先来看HashMap里面的一些参数。 1.DEFAULT_INITIAL_CAPACITY 默认的数组初…

Pytorch使用手册-Automatic Differentiation with torch.autograd(专题六)

自动微分(Automatic Differentiation)和 torch.autograd torch.autograd 是 PyTorch 中的核心模块之一,用于支持自动微分。它通过动态计算图的方式实现梯度计算,主要应用于深度学习中的反向传播算法,自动求导无需手动计算梯度,简化了训练神经网络的过程。以下为模块核心…

Origin教程003:数据导入(2)-从文件导入和导入矩阵数据

文章目录 3.3 从文件导入3.3.1 导入txt文件3.3.2 导入excel文件3.3.3 合并工作表3.4 导入矩阵数据3.3 从文件导入 所需数据 https://download.csdn.net/download/WwLK123/900267473.3.1 导入txt文件 选择【数据->从文件导入->导入向导】: 选择文件之后,点击完成即可…

ElasticSearch学习笔记四:基础操作(二)

一、前言 上一篇文章中我们学习了ES中的基础操作,包括索引和映射,同时也学习了ES中的基础数据类型,今天我们继续学习其他的数据类型。 二、复杂数据类型 1、数组(Array) 在ES中没有特别指定数据类型,换…

react和vue图片懒加载及实现原理

一、实现原理 核心思想: 只有当图片出现在视口中时,才加载图片。利用占位图或占位背景优化用户体验。 实现技术: 监听滚动事件:监听页面滚动,通过计算图片与视口的位置关系,判断是否需要加载图片。Intersec…

在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)

在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager) 步骤 1: 更新系统包步骤 2: 安装 nvm步骤 3: 安装 Node.js 和 npm步骤 4: 设置默认 Node.js 版本(可选)总结 在 Ubuntu 系统上安装 npm 环境以及 nvm(No…

GitLab|数据迁移

注意:新服务器GitLab版本需和旧版本一致 在旧服务器执行命令进行数据备份 gitlab-rake gitlab:backup:create 备份数据存储在 /var/opt/gitlab/backups/ 将备份数据传输到新服务器的/var/opt/gitlab/backups/下,并修改文件权限(下载前和上传…