【从零开始java学习|第一篇】java中的名词概念(JDK、JVM、JRE等等)

目录

一、核心运行环境三要素(JVM/JRE/JDK)

二、常用开发指令(JDK 自带工具)

三、一些其他概念

四、总结核心逻辑链

要入门 Java,理解核心概念之间的关系是基础。以下是 Java 中最核心的基础概念、工具及相关名词的整理,包含它们的含义、区别和记忆方法:

一、核心运行环境三要素(JVM/JRE/JDK)

这三个是 Java 跨平台特性的核心,从包含关系上:JDK ⊇ JRE ⊇ JVM

  1. JVM(Java Virtual Machine,Java 虚拟机)

    • 含义:是一台 “虚拟的计算机”,负责执行 Java 字节码(.class 文件)。
    • 作用:Java 的 “跨平台” 核心 —— 不同操作系统(Windows/macOS/Linux)有不同的 JVM 实现,但都能执行相同的字节码,实现 “一次编写,到处运行”(Write Once, Run Anywhere)。
    • 特点:本身不直接运行 Java 源文件(.java),只运行编译后的字节码(.class)。
  2. JRE(Java Runtime Environment,Java 运行时环境)

    • 含义:是 Java 程序运行所需的最小环境。
    • 组成:包含 JVM + 运行 Java 程序必需的核心类库(如java.lang包中的基础类)。
    • 用途:如果只需要运行别人写好的 Java 程序(比如.jar文件),安装 JRE 即可。
  3. JDK(Java Development Kit,Java 开发工具包)

    • 含义:是 Java 开发人员必须安装的工具包。
    • 组成:包含 JRE + 开发工具(编译器、调试器、文档工具等)。
    • 用途:用于编写、编译、调试 Java 程序。开发者必须安装 JDK(因为包含编译工具javac)。

对于这些概念,可以通过这样来理解
用 “工具箱” 比喻:

  • JVM 是 “发动机”(执行核心);
  • JRE 是 “能让发动机跑起来的整套系统”(发动机 + 基础燃料 / 零件);
  • JDK 是 “带维修工具的全套系统”(包含 JRE,再加扳手 / 螺丝刀等开发工具)。

二、常用开发指令(JDK 自带工具)

这些指令在命令行中使用,是 JDK 工具的入口:

  1. javac

    • 含义:Java 编译器(compiler)。
    • 功能:将 Java 源文件(.java)编译为字节码文件(.class)。
    • 示例:javac HelloWorld.java → 生成HelloWorld.class
  2. java

    • 含义:Java 运行工具。
    • 功能:启动 JVM,并让 JVM 加载并执行指定的.class 字节码文件(注意:执行时不需要写.class后缀)。
    • 示例:java HelloWorld → JVM 执行HelloWorld.class
  3. javadoc

    • 含义:Java 文档生成工具(document)。
    • 功能:从 Java 源文件的注释(以/** ... */格式)中提取内容,生成 HTML 格式的 API 文档。
    • 示例:javadoc HelloWorld.java → 生成文档文件夹。
  4. jar

    • 含义:Java 归档工具(Java Archive)。
    • 功能:将多个.class 文件、资源文件打包成.jar文件(类似压缩包),方便分发和运行(如一个 Java 程序可能包含多个.class,打包后只需传输一个.jar)。
    • 示例:jar cvf MyApp.jar *.class → 将所有.class 打包成 MyApp.jar。
  5. jdb

    • 含义:Java 调试器(debugger)。
    • 功能:用于调试 Java 程序(设置断点、查看变量、单步执行等)。不过实际开发中更多用 IDE(如 IDEA)的图形化调试工具,较少直接用命令行 jdb。

记忆方法
通过指令中的 “关键词” 联想功能:

  • javac:c = compile(编译)→ 编译源文件;
  • java:直接对应 “运行 Java”;
  • javadoc:doc = document(文档)→ 生成文档;
  • jar:archive(归档)→ 打包文件;
  • jdb:db = debugger(调试器)→ 调试程序。

三、一些其他概念

  1. 字节码(Bytecode)

    • 含义:.java 文件经javac编译后生成的中间代码(.class 文件内容)。
    • 特点:不是机器码(不能直接被 CPU 执行),但能被 JVM 识别并执行,是 Java 跨平台的关键(“一次编译,到处运行” 的中间载体)。
  2. .java 文件 vs .class 文件

    • .java:Java 源文件,开发者编写的代码(人类可读)。
    • .class:编译后的字节码文件(JVM 可读),不可直接修改(除非反编译)。
  3. Java 三大平台

    • Java SE(Standard Edition,标准版):基础平台,包含核心类库(如集合、IO、多线程等),是其他平台的基础,用于开发桌面应用或简单程序。
    • Java EE(Enterprise Edition,企业版):在 SE 基础上扩展,用于开发企业级应用(如网站、分布式系统),包含 Servlet、JSP、数据库连接等技术。
    • Java ME(Micro Edition,微型版):针对嵌入式设备(如手机、智能家电)的简化版,现已逐渐被 Android 替代。
  4. IDE(Integrated Development Environment,集成开发环境)

    • 含义:集成了代码编辑、编译、调试、运行等功能的工具,简化开发流程。
    • 常用工具:IntelliJ IDEA(主流)、Eclipse、NetBeans 等。
  5. 类库(Class Library)

    • 含义:Java 官方或第三方提供的预定义类和方法的集合(如java.util包的工具类、java.io的输入输出类),开发者可直接调用,无需重复编写。
  6. JIT 编译器(Just-In-Time Compiler,即时编译器)

    • 含义:JVM 的一部分,会将频繁执行的字节码实时编译为机器码(直接被 CPU 执行),提高程序运行效率(字节码解释执行较慢,JIT 优化后速度接近原生程序)。

记忆方法

  • 字节码:“中间翻译官”—— 介于.java(人类写)和机器码(CPU 读)之间;
  • 三大平台:SE(基础款)、EE(企业款)、ME(迷你款);
  • JIT:“即时优化器”—— 让 JVM 执行更快的 “加速器”。

四、总结核心逻辑链

开发 Java 程序的流程:
编写.java源文件 → 用javac编译 → 生成.class字节码 → 用java指令启动JVM → JVM 执行字节码(依赖JRE的类库)。
整个过程中,开发者需要JDK(因为包含javac等工具),而用户只需JRE即可运行程序。

如果我的内容对你有帮助,请点赞,评论,收藏。接下来我将继续更新相关内容!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92624.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UVa12345 Dynamic len(set(a[L:R]))

[TOC](UVa12345 Dynamic len(set(a[L:R]))) 题目链接 UVA - 12345 Dynamic len(set(a[L:R])) 题意 有编号从 0 到 n−1 的 n 个数,有两种操作: Q L R 询问编号 L 到编号 R−1 的数中有多少个不同的数字。M X Y 将编号为 X 的数字改为 Y。 你的任务就是…

[Ubuntu] VNC连接Linux云服务器 | 实现GNOME图形化

将桌面环境修改为 GNOME 并通过 VNC 远程访问的步骤 & TightVNC 的安装与配置说明:1. 安装 GNOME 桌面环境 sudo apt update sudo apt install ubuntu-gnome-desktop -y2. 安装 TightVNC 服务器 sudo apt install tightvncserver -y3. 初始化 VNC Server 并设置…

进程、网络通信方法

一、进程间通信(IPC)方法 适用于同一台主机上的进程间数据交换。 管道(Pipe) 匿名管道:单向通信,仅用于父子进程。 命名管道(FIFO):通过文件系统路径访问,支持无亲缘关系进程。 消息队列(Message Queue) 结构化消息(类型+数据),按类型读取,支持异步通信。…

[激光原理与应用-241]:设计 - 266n皮秒深紫外激光器,哪些因素影响激光器紫外光的输出功率?

一、短期稳定性266nm皮秒深紫外激光器紫外光输出功率的稳定性受非线性晶体性能、光学系统设计、热管理效果、重复频率与脉冲能量匹配度、环境干扰控制等因素影响,具体分析如下:1. 非线性晶体性能晶体选择与状态:BBO(偏硼酸钡&…

Django配置sqllite之外的数据库

当连接到其他数据库后端时,如 MariaDB、MySQL、Oracle 或 PostgreSQL,将需要额外的连接参数。请参阅下面的 ENGINE 配置,了解如何指定其他数据库类型。这个例子是针对 PostgreSQL: 在django项目的settings.py文件里,关…

银河通用招人形机器人强化学习算法工程师了

人形强化学习算法工程师(26届)(岗位信息已通过jobleap.cn授权,可在csdn发布)银河通用机器人 北京收录时间: 2025年08月11日职位描述1. 研发基于深度强化学习的足式机器人运动控制算法,提升机器…

使用MongoDB存储和计算距离

一、MongoDB 计算距离的优势 优势说明原生地理空间索引支持 2dsphere 索引,高效处理地理坐标查询(毫秒级响应)。内置地理计算函数提供 $near、$geoWithin、$geoNear 等操作符,无需手动实现复杂计算。高性能基于B树索引优化&#…

鸿蒙开发-ArkUI中@Type作用详细解答

在鸿蒙(HarmonyOS)应用开发中,Type 是 ArkUI 框架中用于 类型定义和类型检查 的关键注解(装饰器)。它的主要作用是为自定义组件的属性提供明确的类型约束,确保数据传递的类型安全性。 核心作用解析&#xf…

MCU中的存储器映射(Memory Map)

MCU中的存储器映射(Memory Map) 在MCU(微控制器单元)中,存储器映射(Memory Map)是指将不同类型的存储器(如Flash、RAM、外设寄存器等)和功能模块分配到统一的地址空间的过程。这种映射方式使得CPU可以通过访问特定地址来读写数据或控制外设,而无需关心物理存储介质的…

Rust面试题及详细答案120道(11-18)-- 控制流与函数

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

数据结构-排序(2)

一、堆排序 (借助树)1.利用完全二叉树构建大顶堆 2.堆顶元素和堆底元素进行交换,堆底元素不再参与构建,剩余元素继续构建大顶堆3.时间复杂度 O(nlogn)1.完全二叉树:按照从上到下,从左到右的顺序进行排序2.…

Qt-信号和槽

一.信号和槽概念1. 信号(Signal)概念:信号是 Qt 对象在状态发生变化或事件发生时自动发出的通知。比如按钮被点击、文本框内容变化、定时器超时等,都会发出相应信号。本质:它只是一个函数声明(没有函数体&a…

NLP学习开始-02逻辑回归

逻辑回归什么是逻辑回归逻辑回归的应用场景逻辑回归几个重要概念Sigmoid 函数损失函数构建逻辑回归模型的步骤举个例子参数解释模型优化什么是逻辑回归 逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计学习方法,尽管名字中带有…

【运维进阶】LAMPLNMP 最佳实践

LAMP/LNMP 最佳实践 LAMP/LNMP 组件 LAMP:LinuxApacheMysql/MariadbPHP/Python/Perl。 LNMP:LinuxNginxMysql/MariadbPHP/Python/Perl。 Linux:操作系统,提供程序运行基础。Apache/Nginx:Web 服务器,提供网…

深入解析 resolv.conf 文件:DNS 配置的核心

/etc/resolv.conf 文件是 Linux 和类 Unix 系统中 DNS 配置的核心组件。它决定了系统如何将域名解析为 IP 地址,这是网络通信的关键环节。本文将深入探讨 resolv.conf 文件的核心内容,重点讲解 nameserver 指令以及 options 配置中的 attempts 和 rotate…

【LeetCode】102 - 二叉树的层序遍历

题目描述 给你二叉树的根节点 root,返回其节点值的层序遍历(即逐层地,从左到右访问所有节点)。 解题思路 使用 BFS(广度优先搜索)的思想,维护当前层的所有节点,逐层处理:…

计算机网络1-5:计算机网络的性能指标

目录 常用性能指标 速率 带宽 吞吐量 时延 时延带宽积 ​往返时间 ​利用率 ​丢包率 常用性能指标 性能指标可以从不同的方面来度量计算机网络的性能 常用的计算机网络的性能指标有8个:速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率 速率 比特…

TDengine IDMP 文档介绍

TDengine IDMP (Industrial Data Management Platform) 是一款 AI 原生的物联网、工业数据管理平台。它通过经典的树状层次结构组织传感器、设备采集的数据,建立数据目录,对数据提供语境化、标准化的处理、并提供实时分析、可视化、事件管理与报警等功能…

使用 iFLOW-CLI GitHub Action 和 Qwen3-Coder 给 GitHub 仓库生成幻灯片风格的文档站点

阿里的心流 https://www.iflow.cn/ 团队最近开源了一款基于终端的 AI Agent 工具 iFLOW CLI, 目前可以免费使用到强大的 Qwen3-Coder、Kimi K2 等模型。又是一款类似 Anthropics Claude Code 的产品。 iFlow CLI 是一款直接在终端中运行的强大 AI 助手。它能够无缝分析代码仓库…

【2025最新】在 macOS 上构建 Flutter iOS 应用

推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战 目录软件要求操作系统开发工具文本编辑器或集成开发环境安装 Flutter SDK下载并安装 Flutter将 Flutter 添加到您的PATH配置 i…