返回专题列表

TOPIC · JAVA

Java 专题

从语言基础、JVM、并发与工程化到 Spring 体系,按章节顺序整理的系统学习内容。

专题概览

26 篇 · 持续维护

适合按章节顺序连续阅读,也可以按阶段挑选当前最需要的部分进入。

  • Java
  • 后端开发
  • Spring
从第一篇开始

STAGE

基础建立

第 01 篇12 分钟

开篇:用正确的方式学习 Java

很多人第一次接触 Java,往往不是出于“我特别喜欢这门语言”,而是因为两个更现实的原因:要么公司项目在用,要么招聘要求里总绕不开它。于是学习路径也很容易变成一种非常典型的模式:先装一个 IDE,跑一个 `Hello World`,再跟着 Spring Boot 教程写几个接口,

第 02 篇7 分钟

工欲善其事:JDK、IDE、Maven 与开发环境搭建

很多人以为 Java 开发环境这件事,只是“把 JDK 装上、把 IDEA 装上、把项目跑起来”就结束了。真正进入团队协作以后你会发现,Java 环境问题经常不是小插曲,而是最能反复消耗时间的噪音来源。明明代码没问题,却总在遇到这些情况:

第 03 篇6 分钟

从程序入口开始:main 方法、编译运行与字节码初识

很多人第一次写 Java,看到的第一行重点代码就是:

第 04 篇5 分钟

类型系统与对象模型:基本类型、引用类型、装箱拆箱

Java 的类型系统经常给人的第一印象是“严格”。但它真正重要的地方,从来不只是编译器更爱报错,而是类型选择会直接影响:

第 05 篇6 分钟

面向对象基础:类、对象、封装、继承与多态

Java 经常被视为典型的面向对象语言,所以很多人一学 Java,就会立刻接触到类、对象、继承、多态这些词。问题是,很多时候它们只被学成了一套考试名词:

第 06 篇6 分钟

集合与常用工具类:List、Set、Map、String 与 java.time

Java 日常开发里,真正使用频率最高的,往往不是某个框架注解,而是集合、字符串和时间处理这些基础工具。它们看起来“很基础”,也正因为太基础,所以最容易被低估。结果就是:

STAGE

核心机制

第 07 篇6 分钟

异常处理与泛型:错误边界、类型参数与 API 设计

很多人第一次学 Java,会把异常和泛型当成两段彼此无关的语法:一段是 `try / catch`,一段是尖括号。可一旦你进入真实项目,就会发现它们经常会在同一个地方同时出现,比如:

第 08 篇6 分钟

JVM 基础:内存区域、类加载、垃圾回收与调优入口

JVM 是 Java 能长期稳定存在的一个核心原因,但它也是很多人学 Java 时最容易觉得“既重要又抽象”的部分。很多同学会有一种典型状态:知道 JVM 很重要,也听过堆、栈、GC、类加载这些词,但真正问到“线上服务变慢时应该从哪里看”“内存飙升和 GC 有什么关系”时,就会立

第 09 篇6 分钟

并发编程入门:线程、线程池、锁与并发容器

Java 并发很容易给人一种“术语爆炸”的感觉:线程、线程池、锁、`volatile`、CAS、AQS、并发容器、`CompletableFuture`,每一项都像一整套体系。很多人一看到这些词就会本能紧张,觉得并发是不是必须一口气学成底层专家才能碰。

第 10 篇5 分钟

IO 与网络:文件、NIO、Socket 与 HTTP 服务心智

很多 Java 开发者真正开始做后端时,最常接触的是 Spring MVC、接口返回对象、上传下载和第三方调用。但只要再往下追一层,你会发现这些能力背后都绕不开同一条主线:

第 11 篇5 分钟

构建与依赖管理:Maven、Gradle、包结构与模块边界

Java 工程的成熟度,很大程度上体现在构建和依赖管理上。很多新手刚开始做项目时,会把 Maven 或 Gradle 理解成“下载依赖和打包的工具”,但真正进入真实协作以后你会发现,它们决定的东西远不止这些:

第 12 篇5 分钟

测试与代码质量:JUnit、Mock、日志、配置与质量护栏

Java 项目一旦进入多人协作,代码质量就不能再靠“我这次小心一点”来维持。真正成熟的工程系统,一定会在多个层面同时建立护栏,而不是只靠某个同学经验丰富。测试、日志、配置和静态检查这些能力看起来不像业务功能那样显眼,但它们才是真正决定项目能不能长期稳定维护的底盘。

STAGE

Spring 与数据访问

第 13 篇4 分钟

Servlet 到 Spring:请求生命周期与 Web 基础能力

很多人学习 Java Web,会直接从 Spring MVC 或 Spring Boot 开始。这在项目落地上当然没有问题,但如果完全不知道 Servlet 在解决什么问题,就很难真正理解一次 HTTP 请求在服务端到底经历了哪些阶段。框架只是把底层重复工作封装起来,并没有改变

第 14 篇5 分钟

Spring 核心理解:IoC、DI、Bean 生命周期与自动装配

Spring 最容易被误解成“注解很多、配置复杂的 Java 框架”。如果你只是跟着教程使用它,这种印象很难消失。可真正理解 Spring 以后,你会发现它的核心其实很集中:对象不再由业务代码随手 `new` 出来,而是由容器统一管理、组装和协作。IoC、DI、Bean 生命周期

第 15 篇5 分钟

Spring Boot 与 Spring MVC:启动机制、控制器与异常处理

Spring Boot 之所以成为 Java 后端的主流起点,很大程度上是因为它把原本繁琐的配置和整合工作前置封装了。但如果只会用 Boot 启动项目,却不知道它到底帮你省掉了什么、又把什么责任继续留给了你,就很容易把整个 Web 开发过程继续看成黑盒。

第 16 篇5 分钟

数据访问实践:JDBC、事务、MyBatis、JPA 与连接池

Java 后端项目几乎绕不开数据库,但数据访问真正难的地方,从来不只是“能不能查到数据”,而是下面这些问题怎样被同时管住:

第 17 篇5 分钟

接口设计与安全:REST、校验、认证授权与统一响应

一个 Java API 项目是否顺手,很多时候并不取决于用了什么框架,而取决于接口设计是否一致、安全边界是否清楚。字段命名随意、响应结构不统一、认证和权限逻辑散落各处,这些问题会迅速放大前后端协作成本,也会让后续维护越来越痛苦。

第 18 篇5 分钟

缓存、消息与微服务:Redis、MQ、配置中心与服务拆分

很多系统在单体阶段看起来一切正常,但业务一增长,就会陆续开始遇到几类问题:

第 19 篇6 分钟

基于 Spring Boot 的 Blog API:从模块设计到部署上线

学到这里,前面的语言、JVM、Spring、数据访问、安全和缓存知识终于要真正汇到一起了。实战篇的意义不是“再写一个 demo”,而是让你看到:一套能拿来交付的 Java 服务,到底应该怎样从领域建模、模块拆分、接口设计一路走到测试、部署和上线。

第 20 篇5 分钟

漫谈与收束:面试中的 Java,以及下一阶段如何继续深入

走到这一篇,真正值得回头看的已经不是某个类名或注解你还记不记得,而是你有没有形成一条完整的 Java 主线:

STAGE

进阶与工程实践

第 21 篇11 分钟

Java 异常机制深拆:checked、unchecked、throw、throws 与错误分层

前面的异常基础篇已经讲过,异常不是“程序报错时的一套语法糖”,而是一种明确责任边界的机制。到了这一篇,我们要把异常再往深处拆开看。因为只要项目开始进入分层、协作、日志治理和接口治理阶段,异常写法就不再只是个人习惯,而会直接影响系统的可维护性。

第 22 篇10 分钟

Java 泛型深拆:类型擦除、通配符上下界与通用 API 设计

泛型是 Java 里最容易“会用但没真正想清楚”的一类能力。大多数人都会写 `List<String>`、`Map<Long, User>`,但一旦开始设计公共组件、分页对象、响应包装、仓储接口或者工具方法,泛型就会立刻从“语法点”变成“设计能力”。

第 23 篇11 分钟

Java 并发进阶:volatile、AQS、CompletableFuture 与线程池治理

并发入门篇更多是在帮你建立“线程不是免费的、共享状态会带来风险、线程池不是随便开几个线程”的基础意识。到了进阶阶段,重点就不再是知道几个类名,而是理解它们背后的运行逻辑,以及这些逻辑在真实系统里会怎样影响稳定性。

第 24 篇9 分钟

Java 数据访问选型:JDBC、MyBatis、JPA 与仓储边界

前面的数据访问实践篇已经把 JDBC、事务、连接池、MyBatis、JPA 放到了一条主线上。这一篇再往前一步,不再只回答“这些东西分别是什么”,而是重点回答一个更接近项目决策的问题:真实业务里,到底该怎么选,怎么定边界,怎么避免数据层越长越乱。

第 25 篇10 分钟

Java 中间件协作:Redis 缓存设计、消息可靠性与幂等处理

很多 Java 后端项目写到一定阶段后,都会自然进入中间件协作阶段。数据库已经不是唯一的数据中心,系统开始接 Redis 做缓存、接 MQ 做异步协作、接延迟队列做补偿、接各种中间层来承接流量和复杂度。

第 26 篇10 分钟

服务拆分前先想清楚:配置治理、服务边界与微服务代价

讲到这里,Java 专题已经从语言、JVM、并发、Spring、数据访问、中间件一路走到了系统协作层。很多人在这个阶段都会自然把注意力转向一个词:微服务。可现实里,服务拆分往往不是因为团队已经把单体做得足够好,而是因为“感觉该拆了”“项目有点大了”“别人都这样做”。