Day21 反射
面试题:类加载器和双亲委派?
一个限定名的类(包名.类)默认情况下,只会被一个类加载器加载,在程序中唯一,不会产生歧义!
原因:双亲委派,类加载接收到加载请求,会向请求父加载器,进行加载,父加载器在自己范围内找到对应
类文件,直接加载,如果失败,范围内不存在,向下调用子加载器加载,确保全局唯一!
反射概念和理解
- 反射场景
- 动态数据处理
- 数据库框架单个查询方法可以返回任意类型Java对象
- Spring框架IOC功能,可以动态根据配置文件动态实例对象,并且保存和管理
- 反射概念
Java的反射(reflection)机制是指在程序的运行状态中,利用类的模板对象,可以构造任意一个类的对象,
可以操作任意类或者对象的属性和方法!
这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制(reflect)。
反射被视为动态语言的关键。
- 反射作用
- 动态实例化对象
- 动态调用/操作属性
- 动态调用/操作方法
- Class类理解【反射的根源】
- 反射是动态调用类资源,但是要操作某个类的属性和方法都需要基于类的Class对象
- java.lang.Class是Java类信息的通用实体类
- Class类型对象称为类的模板对象
- 所有的类,加载到虚拟机中会生成唯一一个Class对象
- Class对象可以理解成印钞的模板,实例对象可以理解成基于模版制造出的现金
- 反射的前提,先获取类的模板对象
-