学习路线
Java 的学习重点不是背 API,而是建立“类型、对象、数据结构、运行时、工程边界”这条主线。下面的内容适合零基础到能独立写小型服务的阶段。
安装 JDK,理解类、方法、变量和控制流程,用命令行或 IDE 运行第一个程序。
掌握封装、继承、接口、异常与集合,让代码表达业务规则,而不是堆语句。
理解 Maven、单元测试、日志、Spring Boot 分层,以及如何组织一个可维护项目。
环境准备
推荐使用 JDK 21 或 JDK 17 这类长期支持版本。安装后在终端执行以下命令,确认 Java 与编译器都能正常工作。
java -version
javac -version
如果你使用 IntelliJ IDEA,可以新建普通 Java 项目;如果准备进入 Web 开发,建议直接从 Maven 项目开始。
基础语法
Java 程序由类组成,入口方法固定为 public static void main(String[] args)。初学时先关注变量、条件、循环和方法拆分。
public class HelloJava {
public static void main(String[] args) {
int score = 92;
String level = score >= 90 ? "优秀" : "继续加油";
System.out.println("成绩:" + score);
System.out.println("评价:" + level);
}
}
面向对象
面向对象不是为了把所有东西都写成类,而是把稳定的数据和行为放到清晰的边界里。常见关键词包括 class、private、constructor、interface。
public class User {
private final String name;
private int points;
public User(String name) {
this.name = name;
}
public void addPoints(int value) {
if (value <= 0) {
throw new IllegalArgumentException("积分必须大于 0");
}
this.points += value;
}
public String displayName() {
return name + "(" + points + " 分)";
}
}
这段代码体现了三个实践:字段私有、构造时保证必要数据、方法里保护业务规则。
集合框架
集合是 Java 日常开发最高频的基础设施。记住三类常用接口:List 有序可重复,Set 去重,Map 通过键快速查值。
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CollectionDemo {
public static void main(String[] args) {
List<String> tags = List.of("Java", "JVM", "Spring");
Map<String, Integer> reads = new HashMap<>();
for (String tag : tags) {
reads.put(tag, tag.length() * 100);
}
reads.forEach((tag, count) ->
System.out.println(tag + ":" + count)
);
}
}
异常处理
异常是程序对“不符合预期情况”的表达。能在当前层恢复就捕获处理,不能恢复就向上抛出,并让调用方知道失败原因。
public int parseAge(String input) {
try {
int age = Integer.parseInt(input);
if (age < 0 || age > 150) {
throw new IllegalArgumentException("年龄范围不合法");
}
return age;
} catch (NumberFormatException ex) {
throw new IllegalArgumentException("年龄必须是数字", ex);
}
}
并发入门
并发不要从手写线程开始。实际业务中更常见的是线程池、异步任务、锁和不可变对象。先理解“共享状态越少,并发越简单”。
import java.util.concurrent.CompletableFuture;
public class AsyncDemo {
public static void main(String[] args) {
CompletableFuture<String> future = CompletableFuture
.supplyAsync(() -> "查询用户")
.thenApply(result -> result + " - 完成");
System.out.println(future.join());
}
}
Spring Boot 起步
当你开始写接口服务时,Spring Boot 可以帮你把 Web 容器、依赖注入、配置、日志和测试组织起来。一个常见的 Controller 如下:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ArticleController {
@GetMapping("/api/articles/hello")
public String hello() {
return "Hello, Java Blog!";
}
}
建议把控制器、服务、仓储分开:Controller 处理 HTTP,Service 表达业务,Repository 负责数据访问。这样代码增长后依然容易测试和维护。
小结
Java 学习可以按“语法可运行、对象能建模、集合能处理数据、异常能表达失败、框架能组织项目”的顺序推进。每个阶段都配合一个小练习,进步会非常稳。
讨论