java反射概述

反射(Reflection)机制是java语言特性之一,是java被视为动态(准动态)语言的一个关键特性。

什么是反射

在计算机领域,反射指一种能力,能够自描述和自控制,即在运行状态
中,动态获取类信息及动态调用实例方法的能力。

java反射的动态特性:

1.运行时创建实例
2.运行期间调用方法
3.运行时更改属性

怎么理解java的反射机制?先想一下java程序的执行过程,如下图(java程序的执行过程图)。java程序想要运行,java类必须被java虚拟机加载。
在这里插入图片描
之前我们所运行的程序都是在编译时就已经链接了所有所需的类,而java反射机制则允许程序在运行时再加载、探知、使用那些在编译时完全未知的类。例如,在使用JDBC时,使用Class.forName()方法通过一个字符串形式的类名查找并加载驱动类,就是对反射机制的初步运用。

每个项目中使用的数据库产品和版本都不是一成不变的,在代码中用new关键字实例化驱动类的传统做法是不明智的,而利用反射机制则可以在运行时读取配置文件中的驱动类名,动态加载所需的驱动类。

反射机制允许java程序加载一个运行时才得知其名称的类,获悉其完整API信息,包括其修饰符(比如Public、static等)、超类、实现的接口,也包括属性和方法的所有信息;并可以生成其实例、对其属性赋值或调用其方法。

通过java反射可以实现以下功能

1、在运行时探知任意一个实例所属的类
2、在运行时构造任意一个类的实例
3、在运行时探知任意一个类所具有的方法和属性
4、在运行时调用任意一个实例的方法

就像是在照镜子一样能够看清自己,反射使程序可以看清一个类的情况并加以使用。java反射机制能够探知类的基本结构,这种对java类结构探知的能力,称为java类的“自审”。并且,反射机制是构建框架技术的基础所在,掌握java反射机制,对以后学习框架技术有很大的帮助。

java反射常用API

使用java反射技术,常用的类如下:

1、java.lang.Class<T>类:反射的核心类,反射所有的操作都是围绕该类来生成的。通过Class类可以获取类的属性、方法等内容信息
2、java.lang.reflect.Constructor<T>类:表示类的构造方法
3、java.lang.reflect.Field:表示类的属性,可以获取和设置类中属性的值
4、java.lang.reflect.Method类:表示类的方法,可以用来获取类中方法的信息或执行方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值