初识java
本文最后更新于6 天前,其中的信息可能已经过时,如有错误请发送邮件到1464396208@qq.com

章节详细知识点

🖥️ 一、JVM:Java 虚拟机

主题内容

从”写代码到底需要什么东西”切入,首先引出三大要素中的第一项——JVM。以写过的 Hello World 为例,说明代码最终必须有一个”真正运行它的地方”,这个地方就是 JVM。

核心概念

  • JVMJava Virtual Machine(Java 虚拟机)三个单词的缩写,是真正运行 Java 程序的地方。
  • 没有虚拟机,代码就”没地儿运行”,因此它是运行 Java 程序必不可少的基础设施。

核心特性/工作原理

  • JVM 负责执行编译后的字节码(class 文件),是 Java “一次编译、到处运行”(跨平台)特性的关键载体。
  • 在视频给出的三层结构中,JVM 处于最底层、被包含的位置。

对比/示例/注意事项

  • 注意事项:正确拼写应为 Virtual Machine(虚拟机),注意与 “垂直机器” 无关。
  • JVM 本身不直接等同于”开发环境”,它只是运行环境的一部分,后续章节会说明它与 JDK、JRE 的关系。

📦 二、核心类库:Java 预先写好的代码

主题内容

引出 JVM 之后,视频提出第二个必要要素——核心类库,并回到 Hello World 代码说明”哪些东西是 Java 已经替我们写好的”。

核心概念

  • 核心类库:Java 已经预先写好、可以直接拿来使用的一批代码的统称。
  • 程序员无需自己实现这些功能,直接调用即可。

核心特性/工作原理

  • 在 Hello World 示例中,Systemoutprintln 这三个部分都是 Java 事先定义好的内容。
  • 它们组合在一起后,作用是把小括号里的内容直接展示(打印)出来,每个单词都有其特定含义。

对比/示例/注意事项

  • 代码示例(对应视频中的 Hello World):
public class HelloWorld {
   public static void main(String[] args) {
       System.out.println("HelloWorld");
  }
}
  • 其中 System.out.println(...) 就是核心类库的典型用法:System 是类、out 是输出流对象、println 是打印换行的方法。
  • 注意事项:核心类库是”运行期”也要用到的(不像某些开发工具只在开发期使用),因此它在 JDK 与 JRE 中都存在。

🛠️ 三、开发工具:编译、运行与调试

主题内容

指出,光有 JVM 和核心类库还不够,程序员还需要一批”开发工具”来完成编译、运行、调试等动作。

核心概念

开发工具是 JDK 中帮助开发者把 .java 源文件变成可运行的 .class 文件、并运行和排查问题的一组命令行工具。

核心特性/工作原理

工具作用
javac编译工具,把编写好的 .java 文件编译成 .class 文件
java运行工具,用来运行 class 文件中的代码
jdb调试工具,代码较多时逐步查看程序如何运行
jhat堆转储分析工具,可监控程序运行时的内存

对比/示例/注意事项

  • 命令示例(编译 + 运行):
javac HelloWorld.java   # 编译:生成 HelloWorld.class
java HelloWorld         # 运行 class 文件
  • 注意事项:开发工具数量很多,只是举例 javacjavajdbjhat 等;其中部分工具(如编译、调试工具)只在开发阶段使用,这为后面区分 JDK 与 JRE 埋下伏笔。
  • 与 C 语言生态的 gdb 不同。

💼 四、JDK:Java 开发工具包

主题内容

将前面三要素(JVM + 核心类库 + 开发工具)汇总,指出它们组合成的整体就是 JDK。

核心概念

  • JDK 全称 Java Development Kit,即 Java 开发工具包
  • 简单理解:程序员想要编写代码并成功运行,只需要安装一个 JDK 即可。

核心特性/工作原理

  • JDK 包含三部分内容:
    1. JVM:Java 程序真正运行的地方;
    2. 核心类库:Java 事先写好的东西;
    3. 开发工具:如 javacjavajdbjhat 等。
  • 三者共同保证”能编写、能编译、能运行、能调试”的完整开发闭环。

对比/示例/注意事项

  • JDK 是三者中包含内容最多、层级最高的概念,它内部包含 JRE,JRE 又包含 JVM。
  • 注意事项:对开发者(需要写代码的人)来说,装 JDK 是标准选择;但如果只是”运行别人已编译好的程序”,完整 JDK 中会有用不到的部分(占用硬盘空间),此时引出下一章 JRE 的概念。

▶️ 五、JRE:Java 运行环境

主题内容

引入一个新场景:代码已经写完、编译完成,只要把 class 文件交给别人运行,对方不再需要开发。此时不需要完整 JDK,只需要 JRE。

核心概念

  • JRE 全称 Java Runtime Environment,即 Java 运行环境
  • Java 会把”运行期必需的部分”单独抽离出来组成 JRE,特点是短小、不占过多硬盘空间

核心特性/工作原理

  • JRE 由三部分组成:
    1. JVM:代码真正运行的地方(必需);
    2. 核心类库:运行代码时需要用到 Java 预写好的内容(必需);
    3. 运行工具:如运行代码的 java 工具(必需)。
  • 对于”已有 class 文件、只需运行”的场景,javac 编译工具、jdb 调试工具等都不再需要,因此不放入 JRE。

对比/示例/注意事项

对比维度JDK(Java 开发工具包)JRE(Java 运行环境)
全称Java Development KitJava Runtime Environment
定位开发 + 运行仅运行
组成JVM + 核心类库 + 开发工具(含编译/调试/运行工具)JVM + 核心类库 + 运行工具
体积较大较小、轻量
适用人群/场景需要写代码的开发者只需运行 class 文件的用户
  • 注意事项:很多课程会忽略”JRE 中也包含运行工具”这一点,特别强调——运行代码的 java 工具是必需的,因此 JRE 内部也有工具,只是不含编译、调试等开发期工具。

🔗 六、小结:JDK、JRE、JVM 三者的定义与包含关系

主题内容

最后用三个问题对全课做总结:JDK 是什么、JRE 是什么、三者的包含关系是什么。

核心概念

  • JDK = Java 开发工具包 = JVM + 核心类库 + 开发工具(含 javacjavajdbjhat 等)。
  • JRE = Java 运行环境 = JVM + 核心类库 + 运行工具(如 java)。
  • 包含关系:JDK 包含 JRE,JRE 包含 JVM,即 JDK ⊃ JRE ⊃ JVM

核心特性/工作原理

  • 三者是”逐层包含”的关系:内容最多的 JDK 在最外层,最核心、最底层的 JVM 在最内层。
  • 这种分层设计体现了”按需分配”:开发选 JDK,只运行选 JRE,而 JVM 始终是运行代码的基石。

对比/示例/注意事项

  • 注意事项:本视频采用经典的”JDK 包含 JRE、JRE 包含 JVM”教学模型。现代 JDK(JDK 11 起)已不再单独发行独立 JRE,运行环境与开发工具统一打包,但概念上的层次关系仍是理解 Java 体系的重要基础。
  • 同时也标志着”Java 入门(第一个模块)”学习完毕,后续章节代码量将逐步增多。

总结

概念关系图

  flowchart TD
      START(["程序员编写并运行 Java 代码"]) --> NEED["需要一个完整的运行环境"]
      NEED --> V1["JVM 虚拟机
代码真正运行的地方"] NEED --> V2["核心类库
Java 预先写好的代码"] NEED --> V3["开发工具
javac / java / jdb / jhat 等"] V1 & V2 & V3 --> SCENE{"使用场景判断"} SCENE -->|"需要编写 + 编译 + 运行"| JDK["JDK
Java Development Kit"] SCENE -->|"只需运行现成的 class 文件"| JRE["JRE
Java Runtime Environment"] JDK --> REL["三者包含关系"] JRE --> REL REL --> OUT["JDK ⊃ JRE ⊃ JVM"]

核心要点速记

概念一句话总结
JVMJava 虚拟机(Java Virtual Machine),是 Java 程序真正运行的地方
核心类库Java 预先写好的代码(如 System.out.println),直接调用即可
开发工具编译(javac)、运行(java)、调试(jdb)等命令行工具
JDKJava 开发工具包 = JVM + 核心类库 + 开发工具,面向”需要写代码”的开发者
JREJava 运行环境 = JVM + 核心类库 + 运行工具,面向”只需运行 class 文件”的场景
包含关系JDK ⊃ JRE ⊃ JVM,内容由多到少、层级由高到低
场景选择要开发装 JDK,只运行装 JRE
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇