1. Java语言基础
1.1 变量与数据类型
- 变量 :用于存储数据的容器,包含变量名、数据类型和值
- 数据类型 :分为 基本类型 (byte、short、int、long、float、double、char、boolean)和 引用类型 (类、接口、数组、枚举等)
- 运算符 :算术运算符(+、-、*、/、%)、赋值运算符(=、+=、-=)、比较运算符(>、<、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^)
1.2 流程控制 - 条件语句 : if-else (多分支条件)、 switch (Java 1.5+支持枚举,Java 1.7+支持字符串)
- 循环语句 : for (Java 1.5+增强for循环)、 while (先判断后执行)、 do-while (先执行后判断)
- 跳转语句 : break (终止循环)、 continue (跳过本次循环)、 return (返回方法结果)
1.3 数组 - 一维数组 : int[] arr = new int[5]; 或 int[] arr = {1,2,3};
- 二维数组 : int[][] arr = new int[2][3]; 或 int[][] arr = {{1,2},{3,4}};
- 访问 :通过索引 arr[0] 、 arr[1][2] 访问元素
2. 面向对象编程(OOP)
2.1 类与对象
- 类 :定义对象的模板,包含属性(字段)和方法
- 对象 :类的实例化,使用 new 关键字创建: Student student = new Student();
2.2 封装(Encapsulation) - 隐藏对象内部实现细节,通过 访问修饰符 (private/protected/public/default)控制访问权限
- 提供 getter/setter 方法对外暴露或修改属性值
2.3 继承(Inheritance) - 基于现有类创建新类,使用 extends 关键字: class Animal {} class Dog extends Animal {}
- 子类继承父类非私有成员,使用 super 关键字调用父类构造方法或成员
2.4 多态(Polymorphism) - 编译时多态 :方法重载(同一类中方法名相同,参数列表不同)
- 运行时多态 :方法重写(子类覆盖父类方法,通过父类引用指向子类对象实现)
2.5 抽象类与接口 - 抽象类 : abstract class Shape { abstract void draw(); } ,包含抽象方法,不能直接实例化
- 接口 : interface Drawable { void draw(); } ,Java 8+支持默认方法和静态方法,使用 implements 关键字实现
3. 异常处理
- 异常分类 :
- 编译时异常 (Checked Exception):如 IOException 、 SQLException ,必须显式处理
- 运行时异常 (Unchecked Exception):如 NullPointerException 、 ArrayIndexOutOfBoundsException ,可选择处理
- 异常处理机制 : try-catch-finally 语句捕获异常, throw 关键字抛出异常, throws 关键字声明异常
- 自定义异常 :继承 Exception 或 RuntimeException 类,添加构造方法
4. 集合框架 4.1 核心接口
- Collection :存储单个元素的集合,分为:
- List :有序、可重复(ArrayList、LinkedList、Vector)
- Set :无序、不可重复(HashSet、TreeSet)
- Queue :FIFO队列(LinkedList、PriorityQueue)
- Map :存储键值对(Key-Value),键唯一(HashMap、TreeMap)
4.2 常用实现类 - ArrayList :基于动态数组,查询快、增删慢
- LinkedList :基于双向链表,增删快、查询慢
- HashSet :基于哈希表,存储唯一元素,无序
- TreeSet :基于红黑树,元素有序(自然排序或比较器排序)
- HashMap :基于哈希表,存储键值对,无顺序
- TreeMap :基于红黑树,键值对有序
5. IO流
5.1 流的分类
- 按方向 :输入流(InputStream/Reader)、输出流(OutputStream/Writer)
- 按类型 :字节流(处理二进制数据,如图片、音频)、字符流(处理文本数据)
5.2 常用流 - 文件流 : FileInputStream / FileOutputStream (字节)、 FileReader / FileWriter (字符)
- 缓冲流 : BufferedInputStream / BufferedOutputStream 、 BufferedReader / BufferedWriter (提高效率)
- 转换流 : InputStreamReader / OutputStreamWriter (字节流转字符流)
- 对象流 : ObjectInputStream / ObjectOutputStream (对象序列化/反序列化,实现 Serializable 接口)
6. 多线程
6.1 线程创建
- 继承 Thread 类,重写 run() 方法
- 实现 Runnable 接口,重写 run() 方法
6.2 线程生命周期 - 新建 (New)→ 就绪 (Runnable)→ 运行 (Running)→ 阻塞 (Blocked)→ 等待 (Waiting)→ 终止 (Terminated)
6.3 线程同步 - synchronized 关键字 :修饰方法或代码块,实现线程安全
- Lock 接口 (Java 5+): ReentrantLock 类,提供更灵活的同步机制
6.4 线程通信 - 使用 wait() / notify() / notifyAll() 方法(必须在 synchronized 块或方法中调用)
7. 泛型
- 泛型类 : class Box { T value; }
- 泛型方法 : public T getValue() { … }
- 通配符 : ? (任意类型)、 ? extends T (T的子类)、 ? super T (T的父类)
8. 其他核心特性
8.1 注解(Annotation)
- 用于给程序元素(类、方法、字段)添加元数据,如 @Override (重写方法)、 @Deprecated (已过时)
- 自定义注解:使用 @interface 关键字
8.2 反射(Reflection) - 运行时动态获取类的信息(构造方法、方法、字段等)
- 使用 Class.forName() 获取类对象, getMethod() 获取方法, invoke() 调用方法
8.3 枚举(Enum) - 定义常量集合: enum Weekday { MON, TUE, WED }
- 支持方法、构造函数
9. 基础API
- String 类 :不可变字符串,提供 substring() 、 indexOf() 、 equals() 等方法
- StringBuilder / StringBuffer :可变字符串( StringBuffer 线程安全)
- 工具类 : Math (数学运算)、 Arrays (数组操作)、 Collections (集合操作)
10. JVM基础
- JVM内存结构 :方法区(存储类信息)、堆(存储对象实例)、栈(线程私有,存储栈帧)、程序计数器(线程私有)
- 类加载机制 :Bootstrap ClassLoader、Extension ClassLoader、Application ClassLoader
- 垃圾回收 :自动回收不再使用的对象内存,常用算法有标记-清除、复制、标记-整理
以上是JAVASE的核心知识体系,掌握这些内容是成为Java开发者的基础。