Java 概述与开发环境
Java 概述与开发环境
这是整个课程的起点:先搞清楚「Java 是什么、装了什么、怎么跑起来」,后面所有语法与特性都建立在这套开发环境之上。
一句话认识 Java
- Java 是一门面向对象的语言:程序由「类」组织,运行时的基本单元是「对象」。
- 跨平台(Write Once, Run Anywhere):同一份代码编译一次,就能在 Windows / macOS / Linux 上运行——这是后文 JVM 带来的能力。
- 强类型、静态编译:变量先声明类型,编译期就检查类型错误,比脚本语言更早暴露问题。
JDK / JRE / JVM:三层是什么关系
初学者最容易混淆的三个词,其实是「包含」关系:
| 名称 | 全称 | 作用 |
|---|---|---|
| JVM | Java Virtual Machine(Java 虚拟机) | 真正执行字节码的引擎;每个操作系统各有一套 JVM,这是跨平台的根基 |
| JRE | Java Runtime Environment(运行环境) | = JVM + 运行所需的核心类库;只够「运行」Java 程序 |
| JDK | Java 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 为例):
- 编辑:写源码文件
Hello.java; - 编译:
javac Hello.java→ 生成同目录的Hello.class(字节码); - 运行:
java Hello(注意:不带.class,JVM 按类名找字节码)→ 看到输出。
第一个 Java 程序
// 文件名必须与 public 类同名:Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!"); // 向标准输出一行文本
}
}
要点:
public class Hello:一个.java文件里至多一个public类,且文件名必须与它一致(Hello.java)。main是入口:JVM 启动时找public static void main(String[] args)作为起点;static表示不必先创建对象就能调用。System.out.println(...):向控制台打印一行并换行(print不换行)。
编译与运行:
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),正确的是( )