1. Java复习的必要性与目标设定
作为一门已经存在超过25年的编程语言,Java至今仍保持着强大的生命力。根据最新的TIOBE指数显示,Java长期占据编程语言排行榜前三的位置。这种持久的影响力源于Java"一次编写,到处运行"的特性、丰富的生态系统以及在企业级开发中的广泛应用。
对于开发者而言,系统性地复习Java知识具有多重价值:
- 巩固基础:重新梳理Java核心概念,避免在工作中犯低级错误
- 查漏补缺:发现知识体系中的薄弱环节,特别是那些不常用但关键的特性
- 适应新版本:了解Java 8到Java 17引入的新特性,如Lambda表达式、模块系统等
- 面试准备:应对技术面试中的Java基础考察,这是大多数技术岗位的必考内容
一个完整的Java复习应该包含以下几个层次:
- 语言基础:数据类型、运算符、流程控制等
- 面向对象:类与对象、继承、多态、接口等
- 核心API:集合框架、IO/NIO、并发编程等
- JVM原理:内存模型、垃圾回收、类加载机制等
- 新特性:版本演进中的重要更新
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Java语言基础深度梳理
2.1 数据类型与变量
Java是强类型语言,所有变量都必须先声明后使用。数据类型分为两大类:
-
基本类型:8种基本数据类型直接存储值
- 整型:byte(1)、short(2)、int(4)、long(8)
- 浮点型:float(4)、double(8)
- 字符型:char(2)
- 布尔型:boolean(理论上1bit,实际依赖JVM实现)
-
引用类型:存储对象的引用(内存地址)
- 类类型:如String、自定义类
- 接口类型
- 数组类型
java复制// 基本类型示例
int count = 10; // 直接存储值10
double price = 19.99;
// 引用类型示例
String name = "Java"; // 存储指向String对象的引用
int[] numbers = new int[5];
关键注意:基本类型在方法调用时是值传递,而引用类型是引用传递(实际也是值传递,只不过传递的是引用的拷贝)
2.2 运算符与表达式
Java运算符可分为以下几类:
- 算术运算符:+ - * / % ++ --
- 关系运算符:> < >= <= == !=
- 逻辑运算符:&& || ! ^
- 位运算符:& | ^ ~ << >> >>>
- 赋值运算符:= += -= *= /= %= &= |= ^= <<= >>= >>>=
- 条件运算符(三目):? :
- instanceof运算符:检查对象是否是特定类的实例
java复制// 运算符优先级示例
int result = 10 + 2 * 3; // 结果为16,乘法优先级高于加法
// 位运算实际应用:权限控制
final int READ = 1; // 0001
final int WRITE = 2; // 0010
final int EXECUTE = 4; // 0100
int userPermission = READ | WRITE; // 0011 (3)
boolean canWrite = (userPermission & WRITE) != 0; // true
2.3 流程控制结构
Java提供了完善的流程控制结构:
-
条件语句:
- if-else
- switch (Java 12+支持表达式形式)
-
循环语句:
- for (包括增强for循环)
- while
- do-while
-
跳转语句:
- break (带标签的break)
- continue
- return
java复制// Java 12+ switch表达式示例
String dayType = switch (day) {
case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" -> "Weekday";
case "Saturday", "Sunday" -> "Weekend";
default -> throw new IllegalArgumentException("Invalid day: " + day);
};
// 带标签的break
outerLoop:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (i * j > 50) break outerLoop;
}
}
3. 面向对象编程核心概念
3.1 类与对象
类是对象的模板,对象是类的实例。Java中一切皆对象(除了基本类型),但Java不是纯面向对象语言。
java复制public class Person {
