1. Java基础入门
· Java特点:跨平台(JVM)、面向对象、健壮性(强类型、垃圾回收)。
· JDK、JRE、JVM关系:
· JDK (开发工具包) = JRE + 开发工具 (javac, java, jar...)
· JRE (运行环境) = JVM + 核心类库
· JVM (虚拟机) → 实现跨平台
· 编译与运行:
```bash
javac HelloWorld.java # 编译为字节码 .class
java HelloWorld # 运行
```
2. 变量、数据类型与运算符
· 基本数据类型 (8种):
· 整型:byte / short / int / long (L)
· 浮点:double / float (F)
· 字符:char (单引号)
· 布尔:boolean (true/false)
· 引用数据类型:类、接口、数组、字符串 (String)。
· 类型转换:
· 自动:小→大 (int → long)
· 强制:大→小 (double → int) 可能丢失精度。
· 常用运算符:算术(+ - * / %)、逻辑(&& || !)、位运算(& | ^ >>)。
3. 流程控制
· 分支:
· if-else if-else
· switch-case (支持 int/char/String,需注意 break)
· 循环:
· for (明确次数)
· while (条件先判)
· do-while (代码先执行一次)
· 跳转:break (退出循环)、continue (跳过本次)、return。
4. 数组
· 定义:int[] arr = new int[5];
· 静态初始化:int[] arr = {1,2,3};
· 常用操作:length 属性、遍历 (for/增强for)、Arrays 工具类 (排序 sort、转字符串 toString、二分查找 binarySearch)。
5. 面向对象核心(重点)
· 类与对象:类是模板(class),对象是具体实例(new)。
· 三大特性:
· 封装:属性私有 private,提供 getter/setter 公共方法。
· 继承:extends 单继承。super 访问父类成员。方法重写 (Override)。
· 多态:父类引用指向子类对象。编译看左边,运行看右边。条件:继承、重写、向上转型。
· 构造方法:无返回值、与类同名。若无定义,系统提供默认无参构造。
· this 与 super:this 调用本类属性/方法/构造;super 调用父类。
6. 高级特性
· static:类级别共享(如 Student.schoolName)。静态方法只能访问静态成员。
· final:修饰类(不可继承)、方法(不可重写)、变量(常量,全大写如 MAX_VALUE)。
· 抽象类:用 abstract 声明。可包含抽象方法(无方法体)。不能实例化。
· 接口:interface 声明,implements 实现。方法默认 public abstract。JDK8 后允许默认方法 (default) 和静态方法。
· 内部类:成员内部类、静态内部类、局部内部类、匿名内部类 (常用于事件监听)。
7. 常用API
· String:不可变字符串。常用方法:length(), charAt(), substring(), equals(), split()。
· StringBuilder/StringBuffer:可变字符串,适合频繁拼接。前者线程不安全但效率高。
· 包装类:Integer, Double 等。实现 int→Integer(装箱),自动装箱/拆箱。
· 日期:LocalDate, LocalTime, LocalDateTime (推荐使用)。
8. 异常处理
· 异常体系:Throwable → Error(严重错误) / Exception → 运行时异常(RuntimeException,未检查)与编译时异常(如 IOException,必须处理)。
· 处理方式:
· try-catch-finally (finally 总会执行,用于释放资源)
· throws 声明抛出
· throw 手动抛出
· 自定义异常:继承 Exception 或 RuntimeException。
9. 集合框架
· Collection 接口:
· List:有序可重复 → ArrayList(数组)、LinkedList(链表)
· Set:无序唯一 → HashSet、TreeSet
· Queue:队列 → LinkedList、PriorityQueue
· Map 接口:键值对 → HashMap、TreeMap、Hashtable(线程安全但旧)。
· 遍历:迭代器(Iterator)、增强 for、Java 8 forEach + Lambda。
· 泛型:类型安全。如 List<String> list = new ArrayList<>();
10. IO流
· 分类:
· 字节流:InputStream/OutputStream(处理图片、视频)
· 字符流:Reader/Writer(处理文本)
· 节点流:FileInputStream、FileOutputStream
· 缓冲流:BufferedReader、BufferedWriter(带缓冲区,性能好)
· 对象序列化:实现 Serializable 接口,用 ObjectOutputStream / ObjectInputStream 读写对象。
11. 多线程
· 创建方式:
1. 继承 Thread 类,重写 run()
2. 实现 Runnable 接口(推荐)
3. 实现 Callable 接口(可返回结果)
· 线程状态:新建 → 就绪 → 运行 → 阻塞 → 终止。
· 同步:synchronized 关键字(同步方法/同步代码块),解决数据竞争(如卖票问题)。
· 常用方法:start()、sleep()、join()、yield()。
12. 新特性要点 (Java 8+)
· Lambda 表达式:简化匿名内部类,如 (x, y) -> x + y
· 函数式接口:只有一个抽象方法,如 Comparator、Runnable
· Stream API:链式处理集合,支持 filter、map、collect 等操作