Java 面向对象 · 交互课程

Java 概述与开发环境

Java 概述与开发环境

这是整个课程的起点:先搞清楚「Java 是什么、装了什么、怎么跑起来」,后面所有语法与特性都建立在这套开发环境之上。

一句话认识 Java

JDK / JRE / JVM:三层是什么关系

初学者最容易混淆的三个词,其实是「包含」关系:

名称全称作用
JVMJava Virtual Machine(Java 虚拟机)真正执行字节码的引擎;每个操作系统各有一套 JVM,这是跨平台的根基
JREJava Runtime Environment(运行环境)= JVM + 运行所需的核心类库;只够「运行」Java 程序
JDKJava Development Kit(开发工具包)= JRE + 开发工具(javac 编译器、java 解释器入口、调试器等);开发者需要装 JDK

记忆口诀:JDK ⊃ JRE ⊃ JVM。要「写并编译」Java,装 JDK 就够(它已包含运行所需的一切)。

┌─────────────────────────── JDK ───────────────────────────┐
│  开发工具:javac(编译)、java(运行入口)、jdb、jar …        │
│  ┌──────────────────── JRE ────────────────────────────┐  │
│  │  核心类库(java.lang / java.util / …)               │  │
│  │  ┌──────────────── JVM ──────────────────────────┐  │  │
│  │  │   加载字节码 → 解释/即时编译(JIT) → 执行        │  │  │
│  │  └────────────────────────────────────────────────┘  │  │
│  └───────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────┘

工具链:从 .java 到能运行的程序

Java 是编译型 + 解释型混合:源码先被 javac 编译成与平台无关的字节码(.class),再由 JVM 加载执行。

   Hello.java  ── javac ──▶  Hello.class (字节码)  ── java ──▶  控制台输出
     源码                     平台无关                    JVM 解释/JIT

三步走(以 Hello.java 为例):

  1. 编辑:写源码文件 Hello.java;
  2. 编译:javac Hello.java → 生成同目录的 Hello.class(字节码);
  3. 运行:java Hello(注意:不带 .class,JVM 按类名找字节码)→ 看到输出。

第一个 Java 程序

// 文件名必须与 public 类同名:Hello.java
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, Java!");   // 向标准输出一行文本
    }
}

要点:

编译与运行:

javac Hello.java    # 生成 Hello.class
java Hello          # 输出:Hello, Java!

一句话:写 .java → javac 编译成字节码 → java 交给 JVM 执行。 后面每一课都是在这套环境里,往 main 里加更多代码。

学习小测验

学习小测验

Q1

要「编写并编译」Java 程序,至少需要安装哪一层?

Q2

三层包含关系正确的是( )

Q3

javac Hello.java 的产物是( )

Q4

运行 Hello.class 时,正确的命令是( )

Q5

Java 能「一次编写、到处运行」的根本原因是( )

Q6

关于 public static void main(String[] args),正确的是( )