1. Java语言基础

1.1 变量与数据类型

  1. 变量 :用于存储数据的容器,包含变量名、数据类型和值
  2. 数据类型 :分为 基本类型 (byte、short、int、long、float、double、char、boolean)和 引用类型 (类、接口、数组、枚举等)
  3. 运算符 :算术运算符(+、-、*、/、%)、赋值运算符(=、+=、-=)、比较运算符(>、<、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^)
    1.2 流程控制
  4. 条件语句 : if-else (多分支条件)、 switch (Java 1.5+支持枚举,Java 1.7+支持字符串)
  5. 循环语句 : for (Java 1.5+增强for循环)、 while (先判断后执行)、 do-while (先执行后判断)
  6. 跳转语句 : break (终止循环)、 continue (跳过本次循环)、 return (返回方法结果)
    1.3 数组
  7. 一维数组 : int[] arr = new int[5]; 或 int[] arr = {1,2,3};
  8. 二维数组 : int[][] arr = new int[2][3]; 或 int[][] arr = {{1,2},{3,4}};
  9. 访问 :通过索引 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开发者的基础。