8.1 反射
什么是反射
·反射是java 提供的一套 API,通过这套 API 能够在运行期间
根据类名加载类
获取类的各种信息,如类有哪些属性、哪些方法、实现了哪些接口…
类型参数化,根据类型创建对象
方法、属性参数化,以统一的方式来使用方法和属性
反射广泛应用于各种框架实现,例如
Spring 中的 bean 对象创建、依赖注入
JUnit 单元测试方法的执行
MyBatis 映射查询结果到java 对象
反射在带来巨大灵活性的同时也不是没有缺点,那就是反射调用效率会受一定影响
8.2 泛型
什么是 Java 泛型
,泛型的主要目的是实现类型参数化,java 在定义类、定义接口、定义方法时都支持泛型泛型的好处有
提供编译时类型检查,避免运行时类型转换错误,提高代码健壮性设计更通用的类型,提高代码通用性
【例如】想设计 List 集合,里面只放一种类型的元素,如果不用泛型,怎么办呢?你必须写很多实现类·Impl1 实现类中,只放 String
·Impl2 实现类中,只放 Integer
要支持新的元素类型,实现类型也得不断增加,解决方法需要把元素类型作为参数,允许它可变化:List,其中T就是泛型参数,它将来即可以是 String,也可以是 Integer …
PS.
【例如】是为了帮助你理解,不是必须答出来
关键是答出类型参数化,懂的面试官不必多说,不懂的也没必要跟他继续啰嗦