IT探险家 ·Java 官方教程深度解读

Java 入门需要掌握的核心知识点不多,但必须准确。本文用最精炼的方式把关键概念讲清楚,适合快速建立认知框架。


一、Java 技术全景速查

维度要点
本质编程语言 + 软件平台(语言和运行环境的组合)
编译产物字节码(Bytecode),存储在 .class 文件中
执行方式JVM 解释执行 + JIT 即时编译(混合型)
跨平台原理字节码平台无关,各平台的 JVM 负责翻译为本机指令
核心口号Write Once, Run Anywhere
语言特性面向对象、强类型、自动内存管理(GC)、多线程内置支持

二、编译运行流程

源文件(.java) → javac编译 → 字节码(.class) → java启动JVM → 执行

对应命令:

# 编译
javac HelloWorld.java

# 运行(注意:不带 .class 后缀)
java HelloWorld

关键细节

问题答案
.class 文件是机器码吗?不是,是 JVM 的指令集(字节码)
字节码能跨平台吗?能,同一个 .class 可在任何 JVM 上运行
JVM 跨平台吗?不跨,每个 OS 需要对应版本的 JVM
Java 11+ 可以直接 java xxx.java 吗?可以,但仅限单文件,底层仍会编译

三、JDK / JRE / JVM 三者关系

┌─────────────────────────────────────────┐
│  JDK (Java Development Kit)              │
│  ┌───────────────────────────────────┐   │
│  │  JRE (Java Runtime Environment)   │   │
│  │  ┌─────────────────────────────┐  │   │
│  │  │  JVM (Java Virtual Machine) │  │   │
│  │  └─────────────────────────────┘  │   │
│  │  + 核心类库 (rt.jar 等)           │   │
│  └───────────────────────────────────┘   │
│  + 开发工具 (javac, jdb, javadoc 等)     │
└─────────────────────────────────────────┘
组件包含内容适用场景
JVM字节码执行引擎所有 Java 程序运行的基础
JREJVM + 核心类库只运行 Java 程序,不开发
JDKJRE + 编译器等开发工具开发 Java 程序(开发者必装)
注意:Java 11 起,Oracle 不再单独发布 JRE,JDK 即包含全部内容。

四、Java 平台两大组件

组件一:JVM

JVM 是 Java 平台的基础。它的核心价值是屏蔽操作系统差异——同一份字节码在 Windows、Linux、macOS 上的 JVM 中都能运行。

现代 JVM(如 HotSpot)还会在运行时做优化:识别热点代码,通过 JIT 编译器将其编译为本机码,性能接近 C/C++。

组件二:Java API

API 是一套庞大的现成类库,按功能分组为包(Package)。涵盖范围:

领域代表性 API
基础数据结构java.util(List, Map, Set)
I/O 操作java.io, java.nio
网络通信java.net
并发编程java.util.concurrent
数据库访问java.sql(JDBC)

开发者不需要从零造轮子,大部分常见功能 API 里都有现成实现。


五、与其他语言的编译方式对比

特性C/C++(编译型)Python(解释型)Java(混合型)
编译产物本机二进制无(逐行执行)字节码 .class
跨平台需重新编译天然跨平台一次编译到处运行
运行速度最快较慢接近本机(JIT 优化后)
启动速度较慢(JVM 启动开销)

六、版本选择指南

Java 从 Java 10 起每 6 个月发布一个新版本,但只有 LTS 版本适合生产环境:

LTS 版本线:8 → 11 → 17 → 21 → 25(即将发布)
场景推荐版本
新项目启动Java 21(当前最新 LTS)
维护老项目跟随项目原有版本(通常 Java 8 或 11)
个人学习Java 21

七、验证你的环境

一段代码验证 JDK 是否安装正确:

public class EnvCheck {
    public static void main(String[] args) {
        System.out.println("Java 版本: " + System.getProperty("java.version"));   // 输出: Java 版本: (如 21.0.x)
        System.out.println("操作系统: " + System.getProperty("os.name"));          // 输出: 操作系统: (你的系统名)
        System.out.println("系统架构: " + System.getProperty("os.arch"));          // 输出: 系统架构: (如 amd64)
        System.out.println("JVM 名称: " + System.getProperty("java.vm.name"));    // 输出: JVM 名称: (如 OpenJDK 64-Bit Server VM)
    }
}

编译运行:

javac EnvCheck.java && java EnvCheck

如果能正常输出版本信息,说明你的 Java 开发环境已经就绪。


八、Java 9+ 实用新特性速览

版本特性说明
Java 9JShell交互式 REPL,命令行输入 jshell 即可逐行执行 Java 代码
Java 11单文件直接运行java Hello.java 省去手动 javac 步骤
Java 11HTTP Client标准库内置 HTTP 客户端,替代 HttpURLConnection
Java 17sealed class限制类的继承层次
Java 21虚拟线程轻量级线程,大幅降低高并发编程复杂度

这些特性在入门阶段了解即可,后续深入学习时会逐一掌握。


关注公众号「IT探险家」,回复「Java入门」获取完整可运行代码和速查手册。深度面试解析和源码分析,尽在 知识星球IT探险家·进阶圈

标签: none

添加新评论