《张三记录-java》反射

反射

一.简介

1.类加载

将class文件读取到内存中的过程,称为类加载。加载出来的class文件被封装为Class对象

class文件的加载由ClassLoader 完成 – 类加载器

类加载器三种类型

  • BootStrapClassLoader 启动类加载器 c++写的 加载java_home/jre/lib 路径下的文件
  • ExtClassLoader 扩展类加载器 java_home/jre/lib/ext
  • AppClassLoader 系统类加载器 加载src下的类(自己写的类)
  • 使用类名.class.getClassLoader()获取当前的类加载器

2.反射(reflect)

在程序运行状态中

  • 对于任意一个类,都可以获取该类的属性和方法
  • 对于任意一个对象,都可以调用该对象的属性和方法

这种在运行时动态的获取信息和动态的调用对象的方法 的功能 — 反射

3.相关的接口和类

反射中的接口和类都在java.lang包中

java在编码是知道 类,对象,的具体信息,直接操作类和对象

在编码时,不知道类,对象的信息,通过反射操作类和对象

接口 类含义
Class表示当前运行时类 (字节码)
Filed表示类中的属性
Method方法
Constructor构造方法
Package
Modifier修饰符
Parameter参数
Annotation注解

二.Class

1.简介

运行的类,用Class对象来表示

Class 类是反射的核心,操作属性,方法等,都要获取Class对象

  • Class对象在类加载时由JVM自动创建,一个类对应一个Class对象
  • Class类 没有公共的构造方法,不能new 可以通过方法获取实例

2.获取Class对象

  • 调用对象的getClass()
  • 类名.class
  • Class.forName(“完整类名”) 静态方法

三.反射操作

1.Field

2.Method

3.Constructor

4.注解

4.1简介

注解是一种新的类型,与接口相似,与类,接口,枚举都是同一层次

注解就是一种标记, 以@开头 @xxx 可以声明在类,属性 , 方法, 参数的前面

用来对元素进行说明 标注 或是实现特定功能

4.2JDK自带的注解
4.3自定义注解

定义方式:

//元注解
public  @interface  注解名{
    
}
注解名作用
@Target定义注解的作用域
@Retention注解的生命周期

使用自定注解:

​ @主注解名(属性名=属性值,属性名=属性值)

  • 在使用时,需要为注解中定义的抽象方法指定返回值,也称为:给注解指定属性值
  • 属性名就是注解中的抽象方法名
  • 如果抽象方法名为value,那么使用时,可以省略属性名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值