3月4日java学习笔记
一、接口与抽象类
- 接口(Interface)
定义与实现:
java
interface Flyable {
void fly(); // 默认 public abstract
default void land() { // 默认方法(Java 8+)
System.out.println("着陆中");
}
static void staticMethod(){ /* 静态方法 */ }
}
class Bird implements Flyable {
@Override
public void fly() {
System.out.println("翅膀飞行");
}
}
2. 抽象类(Abstract Class)
java
abstract class Animal {
abstract void makeSound(); // 抽象方法
void sleep() { // 具体方法
System.out.println("睡觉中");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("汪汪");
}
}
二、异常处理
- 异常分类
受检异常(Checked Exception):必须处理(如 IOException)
非受检异常(Unchecked Exception):RuntimeException 子类(如 NullPointerException)
- 处理机制
java
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("除零错误:" + e.getMessage());
} finally {
System.out.println("资源释放"); // 始终执行
}
3. 自定义异常
java
class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
// 使用
throw new MyException("自定义异常触发");
三、集合框架基础
- 常用接口
List:有序可重复(ArrayList、LinkedList)
Set:无序唯一(HashSet、TreeSet)
Map:键值对(HashMap、TreeMap)
- 示例代码
java
// List遍历
List
list.add("Java");
list.forEach(System.out::println); // Lambda简化
// Map操作
Map<Integer, String> map = new HashMap<>();
map.put(1, "Apple");
map.get(1); // 返回"Apple"
四、易错点与注意事项
接口与抽象类实例化:
java
// 错误!接口和抽象类不能直接实例化
// Flyable obj = new Flyable();
// Animal animal = new Animal();
异常捕获顺序:
java
复制
try { /* ... / }
catch (Exception e) { / 会捕获所有异常 / }
catch (ArithmeticException e) { / 编译错误,顺序需从具体到通用 */ }
集合类型转换:
java
// 错误示例:未指定泛型导致类型不安全
List list = new ArrayList();
list.add("Test");
// Integer num = (Integer) list.get(0); // 运行时ClassCastException
五、核心概念总结
接口 vs 抽象类:明确“是什么”(接口)与“是什么的某种类型”(抽象类)的区别。
异常处理原则:优先捕获具体异常,避免吞没异常信息。
集合框架:掌握List/Set/Map的使用场景及线程安全问题(如ArrayList非线程安全)。
浙公网安备 33010602011771号