Java的灵魂--反射知识点总结



1.1类的加载

我们编写好一个类,然后编译产生一个.Class文件。类加载这个动作由类加载器完成,.Class文件读入内存后,会产生一个java.lang.class对象(也被称为类模板对象),这个对象是专门用来装载类的所有信息的(不包括注释)。一旦某个类被载入JVM后,同一个类就不会再次被载入,因为我们的.Class文件只有一篇。

1.2反射

就是运行时探究和使用编译时未知的类


1.3 使用反射的三个步奏

1.获得你想操作的类的java.lang.Class对象。

2.调用诸如getDeclaredMethods的方法。

3.使用reflection API来操作这些信息。


方法1

调用实例对象继承于Object的getClass方法

特点1 :可以得到所有类和数组的Class对象

特点2:没有编译时未知,运行时探究的动态效果(因为必须有实例化对象)


方法2

利用语法类型名.Class的方法获取到Class对象

特点1:所有类型(不管是基本数据类型还是引用数据类型,甚至是返回类型void)都可以得到相应的Class对象

特点2:特点2:没有编译时未知,运行时探究的动态效果(必须知道类型名)


方法3

利用Class.forName("字符串形式的类型名")获取Class对象

特点1:不支持基本数据类型,返回类型和数组获取相应Class对象

特点2:唯一拥有编译时未知,运行时探究的动态效果


几个需要记忆的关键单词

属性(Field)1.所有公共的     2.所有申明的       3.指定公共的        4.指定申明的 

构造(Constructor)1.所有公共的     2.所有申明的       3.指定公共的        4.指定申明的 

方法(Method)1.所有公共的     2.所有申明的       3.指定公共的        4.指定申明的 

申明(declared)   参数列表(parameter) 修饰符(modifier)


当需要数组作为形参时最好使用列如     int... array     studentBean... allStudents







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值