Java 教程分享

从第一行 Java 到可维护的工程代码

一篇按主流技术博客阅读习惯整理的 Java 入门教程:先把语法跑起来,再理解对象、集合、异常、并发,最后落到 Spring Boot 项目结构。

作者:若依 AI 技术笔记 更新:2026-07-02 阅读约 12 分钟
LearningPath.java
@SpringBootApplication public class LearningPath { public static void main(String[] args) { var stages = List.of("语法", "对象", "集合"); stages.stream() .limit(3).forEach(System.out::println); } }

学习路线

Java 的学习重点不是背 API,而是建立“类型、对象、数据结构、运行时、工程边界”这条主线。下面的内容适合零基础到能独立写小型服务的阶段。

1. 先跑起来

安装 JDK,理解类、方法、变量和控制流程,用命令行或 IDE 运行第一个程序。

2. 写得清楚

掌握封装、继承、接口、异常与集合,让代码表达业务规则,而不是堆语句。

3. 接近工程

理解 Maven、单元测试、日志、Spring Boot 分层,以及如何组织一个可维护项目。

环境准备

推荐使用 JDK 21 或 JDK 17 这类长期支持版本。安装后在终端执行以下命令,确认 Java 与编译器都能正常工作。

Terminal
java -version
javac -version

如果你使用 IntelliJ IDEA,可以新建普通 Java 项目;如果准备进入 Web 开发,建议直接从 Maven 项目开始。

基础语法

Java 程序由类组成,入口方法固定为 public static void main(String[] args)。初学时先关注变量、条件、循环和方法拆分。

HelloJava.java
public class HelloJava {
    public static void main(String[] args) {
        int score = 92;
        String level = score >= 90 ? "优秀" : "继续加油";

        System.out.println("成绩:" + score);
        System.out.println("评价:" + level);
    }
}
建议每学一个语法点,都写一个小函数验证它。能运行、能改、能解释,比一次性读完一整章更有效。

面向对象

面向对象不是为了把所有东西都写成类,而是把稳定的数据和行为放到清晰的边界里。常见关键词包括 classprivateconstructorinterface

User.java
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 通过键快速查值。

CollectionDemo.java
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)
        );
    }
}

异常处理

异常是程序对“不符合预期情况”的表达。能在当前层恢复就捕获处理,不能恢复就向上抛出,并让调用方知道失败原因。

ExceptionDemo.java
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);
    }
}

并发入门

并发不要从手写线程开始。实际业务中更常见的是线程池、异步任务、锁和不可变对象。先理解“共享状态越少,并发越简单”。

AsyncDemo.java
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 如下:

ArticleController.java
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 学习可以按“语法可运行、对象能建模、集合能处理数据、异常能表达失败、框架能组织项目”的顺序推进。每个阶段都配合一个小练习,进步会非常稳。

Java JDK 21 面向对象 集合框架 Spring Boot

讨论