Skip to content

Java 的核心价值是稳定的运行时、成熟的生态和清晰的工程约束。学习时应同时关注语言、JVM 和服务端系统,而不是只背 API。

一、语言基础 ​

  • 理解类、接口、继承、组合和访问控制,优先面向接口编程。
  • 熟悉 String、集合框架、泛型、异常、注解和反射的适用边界。
  • 掌握 Stream API 和 Optional,避免把链式调用写成难以调试的黑盒。
  • 用 record 表达不可变数据,用明确的值对象承载业务规则。

二、必须理解的 JVM 概念 ​

  1. 内存区域:堆、栈、方法区和线程私有数据。
  2. 垃圾回收:对象生命周期、吞吐量、停顿时间和内存泄漏。
  3. 类加载:类加载器、双亲委派和依赖冲突。
  4. 诊断工具:jstack、jmap、jcmd 以及应用指标。

理解这些概念,才能解释“代码没变但服务变慢”“内存持续上涨”等线上问题。

三、并发与服务端 ​

  • 先掌握线程安全、可见性、有序性和竞态条件,再使用锁或并发容器。
  • 使用线程池时明确队列长度、拒绝策略、超时时间和任务边界。
  • 通过连接池、超时、重试和幂等性保护外部依赖。
  • 用 Spring Boot 组织配置、路由、依赖注入和监控,但不要把业务逻辑塞进控制器。
java
public record User(String id, String name) {}

public interface UserRepository {
    Optional<User> findById(String id);
}

四、推荐练习 ​

  1. 写一个带分页、校验和统一错误响应的 REST API。
  2. 为它加入数据库事务、缓存和异步任务。
  3. 使用 JUnit、Testcontainers 和日志完成可重复测试。
  4. 用容器运行服务,观察启动、内存、线程和请求延迟。

Java 工程能力的分水岭,是能否把正确性、性能和可运维性一起设计进去。