Java 基础核心知识
很多同学学 Java 是从"Hello World"开始的,但真正写项目时才发现,很多基础概念没理解透——比如值传递和引用传递的区别、重载和重写的本质、泛型擦除后发生了什么。
我自己刚入门的时候也踩过不少坑。比如以为 Java 是"引用传递"就到处传对象,结果导致数据被意外修改;比如泛型用了半天不知道编译器把类型信息全擦掉了;比如反射写过很多次但从来没想过 setAccessible(true) 到底在干什么。
这套内容,就是帮你把这些"似懂非懂"的概念彻底搞明白。
内容总览
Java 基础是整个 Java 技术栈的地基。地基不稳,上层框架学得再溜也是空中楼阁。
这一模块覆盖 Java 基础语法的核心特性:
知识全景
面向对象三大特性 🔴
面向对象是 Java 的核心思想,三大特性——封装、继承、多态——贯穿整个 Java 生态。
理解三大特性不能只背名字,要理解"为什么要有这些特性":
- 封装:定义边界,控制谁能访问、谁能修改
- 继承:复用代码,但要注意"组合优于继承"
- 多态:同一段代码因对象类型不同产生不同行为
方法重载 vs 重写 🔴
很多人把重载和重写搞混。重载是"同名不同参",发生在编译阶段;重写是"子类覆盖父类方法",发生在运行阶段。
值传递 vs 引用传递 🔴
这是 Java 面试的经典送命题。Java 实际上是值传递——基本类型传值,引用类型传引用值的副本。分清楚这一点,很多"诡异"现象就解释得通了。
equals vs == 🔴
== 对于基本类型比较值,对于引用类型比较地址。equals() 默认行为和 == 一样,但 String 等类重写了它来比较内容。重写 equals() 时必须同时重写 hashCode()。
String 家族 🟡
String/StringBuilder/StringBuffer 对比
String 是不可变的,这在安全和线程安全场景下是优势。StringBuilder 非线程安全但最快,StringBuffer 线程安全但有 synchronized 开销。循环中拼接字符串一定不要用 +,要用 StringBuilder。
异常体系 🟡
异常体系(Error/Exception/RuntimeException)
Error 是 JVM 层面的错误,不应该捕获;Exception 是程序层面的异常,需要处理。RuntimeException(unchecked)不强制要求处理,现代项目越来越多地使用它。
try-catch-finally 执行顺序 🟡
finally 总是执行的,即使 try 或 catch 中有 return。有一个经典陷阱:如果 finally 里有 return,会覆盖 try/catch 中的返回值。
反射 🔴
反射是很多框架的底层支撑:Spring 的依赖注入、Hibernate 的 ORM、Jackson 的序列化,都离不开反射。理解反射,才能理解这些框架为什么"能动"你的代码。
泛型 🔴
泛型在编译后被擦除,这是 Java 的设计选择——为了向后兼容 JDK 5 之前的代码。List<String> 和 List<Integer> 在运行时都变成 List<Object>。理解这一点,才能理解为什么泛型不能直接用 instanceof 判断。
注解 🟡
@Override、@Deprecated、@FunctionalInterface 这些内置注解天天用,但元注解 @Target、@Retention 的三个值分别是什么意思,很多人不清楚。Lombok 的原理也是编译时注解处理器——在 class 文件里插入了字节码。
内部类 🟡
内部类不是"多此一举",它是组织代码的强大工具。但要注意:成员内部类持有外部类引用,用不好会导致内存泄漏;局部内部类和匿名内部类只能访问 effectively final 的变量。
面试关联
Java 基础不是孤立的知识点,它和高级面试紧密相连:
- equals/hashCode → HashMap 为什么不丢失数据
- 泛型擦除 → MyBatis 泛型 Mapper 原理
- 反射 + 注解 → Spring IoC 依赖注入
- 内部类 + 匿名类 → Lambda 表达式原理
- String 不可变性 → String Pool 与 intern()
阅读建议
|| 你的阶段 | 推荐顺序 | | --- | --- | | 查漏补缺 | 先找自己最模糊的知识点定向阅读 | | 系统学习 | 按目录顺序:面向对象 → 方法 → 值传递 → equals → String → 异常 → 反射 → 泛型 → 注解 → 内部类 | | 面试冲刺 | 重点看:值传递、重载/重写、equals/hashCode、泛型擦除、异常分类 |
记住:Java 基础没有花哨的框架,但它是一切上层建筑的根基。把每一个"会用"的点都追问到"为什么",才叫真正掌握。