《剑指offer》Java基础-反射篇.pdf
Java基础 反射篇 反射的思想及作用 反射的基本使用 获取类的 Class 对象 构造类的实例化对象 获取一个类的所有信息 获取类中的变量(Field) 获取类中的方法(Method) 获取类的构造器(Constructor) 获取注解 通过反射调用方法 反射的应用场景 Spring 的 IOC 容器 反射 + 抽象工厂模式 JDBC 加载数据库驱动类 反射的优势及缺陷 增加程序的灵活性 破坏类的封装性 性能损耗 反射基础篇文末总结 变化,需要更换不同的类实例化,频繁修改源代码会导致工作效率低下。• 反射提供了一种在运行时动态创建对象和调用方法的能力,允许我们在程序运行时根据条件决定使用哪个类,增强了程序的灵活性。• 反射通过 `Class` 类获取任何类的信息,包括构造器、方法和字段。例如,`Class.forName()` 可以根据全限定类名获取 `Class` 对象,`Class` 对象提供了创建实例的 `newInstance()` 方法,以及访问构造器、方法和字段的方法。• 获取类中的变量(Field)可以使用 `getFields()` 或 `getDeclaredFields()`,方法(Method)使用 `getMethods()` 和 `getDeclaredMethods()`,构造器(Constructor)使用 `getConstructors()` 和 `getDeclaredConstructors()`。这些方法返回的是数组,因为类可能包含多个同类型的成员。• 通过反射调用方法需要先获取 `Method` 对象,然后调用 `invoke()` 方法。例如:`method.invoke(obj, args)`。• 反射在实际应用中有很多场景,如 Spring 的 IoC 容器利用反射创建和管理 Bean,抽象工厂模式结合反射可以根据不同条件创建不同实现的实例,JDBC 中加载数据库驱动类也是反射的一个例子。• 反射带来的优势主要包括:增加程序的灵活性,使得代码能够处理未知或动态类型,能够实现元编程,提高代码的复用性。• 但反射也有其缺点:破坏了类的封装性,暴露了内部细节,可能导致安全问题;性能损耗,反射操作相比直接调用方法要慢,因为反射涉及到字节码层面的操作。• 反射基础篇中,通常会涵盖上述内容,并在文末进行总结,帮助读者理解和掌握反射的核心概念和使用技巧。在面试或深入学习开源框架时,对反射的理解和运用是非常重要的。
剩余20页未读,继续阅读
- 粉丝: 1126
- 资源: 280
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 从零学习自动驾驶Lattice规划算法(下) 轨迹采样 轨迹评估 碰撞检测 包含matlab代码实现和cpp代码实现,方便对照学习 cpp代码用vs2019编译 依赖qt5.15做可视化 更新:
- 风光储、风光储并网直流微电网simulink仿真模型 系统由光伏发电系统、风力发电系统、混合储能系统(可单独储能系统)、逆变器VSR+大电网构成 光伏系统采用扰动观察法实现mppt控
- (180014016)pycairo-1.18.2-cp35-cp35m-win32.whl.rar
- (180014046)pycairo-1.21.0-cp311-cp311-win32.whl.rar
- DS-7808-HS-HF / DS-7808-HW-E1
- (180014004)pycairo-1.20.0-cp36-cp36m-win32.whl.rar
- (178330212)基于Springboot+VUE的校园图书管理系统
- (402216)人脸识别
- enspOSPF多区域路由配置
- (175822648)java项目之电信计费系统完整代码.zip