← 学习中心

Java 基础:反射、泛型与注解

反射的获取方式与性能代价,泛型擦除与桥接方法,注解的分类与运行时处理。

本节你将能

说清反射能做什么、泛型为什么擦除、注解如何被框架读取。

核心要点

  • 反射:Class.forName / getClass / 类名.class 获取 Class;可读取字段、方法、构造器并调用。
  • 反射代价:破坏封装、跳过编译期检查、有性能开销(缓存 Class 元数据可缓解)。
  • 泛型擦除:编译期类型检查,运行时类型信息被擦除;引出桥接方法保持多态。
  • 通配符:? extends T 上界(生产者)、? super T 下界(消费者),PECS 原则。
  • 注解:SOURCE/CLASS/RUNTIME 保留策略;框架靠 RUNTIME + 反射读取(如 Spring @Autowired)。

面试连招

常被追问:泛型为什么不能用于基本类型?反射为什么慢?注解是怎么生效的?

常见坑

反射大量调用未关安全检查(setAccessible)导致性能差;误用泛型数组创建。

Java 基础:反射、泛型与注解 - 生命科学与前沿科技学习平台 | 必学必会