第 1 章 / 共 20 章
入门:JDK 与 Hello World
Java 语言简介、JDK 安装与第一个程序
Java 是什么
Java 是 1995 年发布的面向对象编程语言。最大的特点是"一次编译、到处运行":源代码先编译成字节码(.class),由 JVM(Java 虚拟机)在不同操作系统上解释执行——同一份字节码能在 Windows、Linux、macOS 跑。
Java 强类型、静态类型、自动垃圾回收、运行时反射强大,是企业级后端服务(Spring 系)、Android 应用、大数据(Hadoop / Spark / Flink)的主流语言。
JDK vs JRE vs JVM
- JVM:Java 虚拟机,运行字节码的核心,跨平台的关键
- JRE:JVM + 标准库,只能运行 Java 程序,不能编译
- JDK:JRE + 编译器(javac)+ 工具链(jar/javadoc/jdb 等),开发必备
安装 JDK 17
推荐发行版:Oracle JDK、Eclipse Temurin(社区主流,免费商用)、Amazon Corretto、阿里 Dragonwell。安装后配置 JAVA_HOME 和 PATH,验证:
$ java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7)
OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode)
$ javac -version
javac 17.0.10Hello World
新建文件 Hello.java,注意:public 类的类名必须和文件名完全一致(大小写敏感)。
// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}编译与运行
传统两步:javac 编译生成 .class 字节码,java 加载运行。注意 java 命令后面跟的是"类名"而不是".class 文件名"。
$ javac Hello.java # 生成 Hello.class
$ java Hello # 运行(注意没有 .class 后缀)
Hello, World!单文件源代码直接运行(Java 11+)
Java 11 起支持直接 java Hello.java,无需先 javac。适合写小脚本:
$ java Hello.java
Hello, World!main 方法签名
JVM 启动时调用类的 public static void main(String[] args) 方法。签名固定:public、static、返回 void、形参为字符串数组。args 是命令行参数。
// Greet.java
public class Greet {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Hello, World!");
} else {
System.out.println("Hello, " + args[0] + "!");
}
}
}$ javac Greet.java
$ java Greet Alice
Hello, Alice!用 Maven 起一个项目
实际开发用 Maven 或 Gradle 管理依赖与构建。Maven 起新项目骨架:
$ mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=myapp \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
$ cd myapp
$ mvn compile
$ mvn exec:java -Dexec.mainClass=com.example.App生成的标准目录结构:
myapp/
├── pom.xml # 项目描述 + 依赖
└── src/
├── main/
│ └── java/
│ └── com/example/App.java
└── test/
└── java/
└── com/example/AppTest.java