04 — 泛型与注解索引
定位: 编译期类型安全(泛型)+ 元数据编程(注解)— Java 类型系统的两大扩展 面试高频度: ⭐⭐⭐⭐
一、知识全景图
┌─────────────────────────────────────────────────────────────┐
│ 泛型与注解全景 │
│ │
│ ┌────────────── 泛型 ───────────────────────────────┐ │
│ │ 动机:编译时类型检查,消除强制类型转换 │ │
│ │ 实现方式:类型擦除(不是特化!) │ │
│ │ ↓ │ │
│ │ 泛型类 泛型接口 泛型方法 通配符(?/extends/super) │ │
│ │ ↓ │ │
│ │ ⚡ PECS 原则:Producer Extends, Consumer Super │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────── 注解 ───────────────────────────────┐ │
│ │ 动机:给代码打标签 → 框架通过反射读取 │ │
│ │ ↓ │ │
│ │ @Retention:SOURCE / CLASS / RUNTIME │ │
│ │ @Target:TYPE / METHOD / FIELD / PARAMETER │ │
│ │ ↓ │ │
│ │ 编译期(@Override) → APT 生成代码 │ │
│ │ 运行期(@Autowired) → 反射读取执行 │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘二、子专题导航
| # | 主题 | 面试频率 | 核心内容 |
|---|---|---|---|
| **泛型原理与类型擦除** | 泛型原理与类型擦除 | ⭐⭐⭐⭐⭐ | 擦除机制、桥方法、泛型局限、编译前后对比 |
| **通配符与边界** | 通配符与边界 | ⭐⭐⭐⭐ | ? extends/super、PECS 原则、协变逆变 |
| **注解体系** | 注解体系 | ⭐⭐⭐⭐ | 注解定义、元注解、保留策略、APT 与反射 |
📚 相关文件
- **集合索引** — 集合大量使用泛型
- **SpringBoot与Web开发** — 注解在 Spring 中的大量应用
- **Java文库设计文档** — 返回总纲