LESSON 01 · 环境搭建 + 第一个程序

Java 的世界观
和编译流程

把"源码→机器码"的旧思维放下,建立"源码→字节码→JVM"的新心智模型。理解 Java 为什么能跨平台。

1

编译流程对比

点 "▶ 跑一遍" 按钮,看两种语言的代码怎么变成可执行程序。

C / C++ 传统流程
hello.cpp源码
g++编译
hello.exe机器码
OS直接执行

⚠️ Windows 的 .exe 不能在 Mac/Linux 跑,跨平台要重新编译。

JAVA 两阶段流程
Hello.java源码
javac编译
.class字节码
JVM翻译
OS执行

✅ 同一份 .class,任何装了 JVM 的机器都能跑。

2

JDK / JRE / JVM 三层关系

你要装的就是 JDK。下面是嵌套关系,从外到内:

JDK
Java Development Kit · 开发工具包。包含 javac(编译)、java(运行)、javadoc(文档)等工具。
JRE
Java Runtime Environment · 运行时环境。普通用户装这个就能跑 .class。
JVM
Java Virtual Machine · 真正执行字节码的"翻译官",是 Java 跨平台的核心
核心类库 (rt.jar)
预装 API · java.lang、java.util、java.io 等几千个现成类,开箱即用。
3

第一个 Java 程序

新建文件 HelloWorld.java(文件名必须和 public class 名一致):

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

编译 + 运行:

$ javac HelloWorld.java      # 编译,生成 HelloWorld.class
$ java HelloWorld            # 运行(注意:不要加 .class 后缀!)
4

点一下,看完整流程跑一遍

模拟终端操作。点 "▶ 跑一遍",看 Java 程序从源码到输出的完整过程。

~ zsh · ~/java-lesson-01
$ cat HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
$ javac HelloWorld.java
→ javac 把 .java 编译成字节码,生成:
HelloWorld.class (平台无关的字节码)
$ java HelloWorld
→ JVM 启动,加载字节码,开始执行:
Hello, World!
✓ 同一份 HelloWorld.class 可以在 Windows / Mac / Linux 上都跑
5

和 C/C++ 的 5 个关键差异

这些是你写 Java 第一天最容易踩坑的地方:

差异点C / C++Java
文件名hello.cpp必须和 public class 名一致
入口函数int main()public static void main(String[] args)
字符串char[] / char*String 对象,不可变
头/模块#include <stdio.h>import java.util.*;(按需引入)
内存管理手动 malloc / free自动 GC(垃圾回收)

你的作业(20 分钟内搞定)

  1. 装好 JDK,把 java -versionjavac -version 的输出贴给我
  2. 写一个 Intro.java,打印 3 行:你的名字、专业、目标工作方向
  3. 故意把文件名改成 Test.java(跟类名不一致),看报什么错,把报错贴给我