java学习——java中的反射学习笔记
Java——reflect
一.Class类的使用
什么是Class类?
1:在面向对象的世界中,万事万物皆对象。
java语言中,静态的成员,普通数据类型类是不是对象呢?
是,对象!是类的对象!
类是谁的对象吗?
类也是是对象,类是java.lang.Class 类的实例对象!
现在有个类它的名字就是Class!
There is a class name Class.
任何一个类都是Class的实例对象,这种实例对象有三种表示方式
class Foo{
}
Foo f = new Foo();
//第一种
Class c1 = 类名.class; //Class c1 = Foo.class;
//第二种
Class c2 = 对象.getClass(); //Class c2 = f.getClass();
//c1和c2 表示了Foo类的类 类型(class type)
//第三种 使用class.forName();
Class c3 = class.forName("XXX.XX.Foo");
2.动态加载和静态加载
编译时刻加载类是静态加载,运行时刻加载类是动态加载类 。
new 创建对象是静态加载类,在编译时刻就需要加载所有可能使用到的类。 如何解决在编译时候忽略那些不需要加载的类呢?
解决方案:通过动态加载类!使用Class.forName("");
二.方法的反射
基本的数据类型。void的关键字都存在类 类型!
1.区别
getName : 基本和引用类型!
getSimpleName : 引用类型不包括包名,只有类的名称。
getMethods(): 方法获取的是所有public的函数,包括父类继承而来的
getDeclaredMethods(): 获取的是所有该类自己声明的方法,不问访问权限
三.成员变量的反射
成员变量是 java.lang.reflect.Field 的类对象!
Field 类封装了关于成员变量的操作!
getField():获取的是所有的public的成员变量的信息
getDeclaredFields():获取的是该类自己的成员变量的信息
四.构造函数的反射
构造函数也是对象,是java.lang.Constructor中封装了构造函数的信息。
getConStructors 获取所又的public的构造函数
getDeclaredConstructors 得到的是自己申明的所有的构造函数
5.java的类加载机制
反射都是运行时刻执行的!也就是动态加载!
集合中泛型的使用?
集合中的泛型是防止错误输入的,只有编译阶段有效, 绕过编译就无效了!也就是说泛型只在编译的时候有用,所以我们可以通过方法的反射来操作,绕过编译!
使用传送技能,让你快速学习反射知识!
慕课学习反射视频地址: http://www.imooc.com/video/3738
欢迎访问我的csdn博客,我们一同成长!
"不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"
博客首页:http://blog.csdn.net/u010648555
java学习——java中的反射学习笔记的更多相关文章
- Java核心知识点学习----线程中的Semaphore学习,公共厕所排队策略
1.什么是Semaphore? A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each acq ...
- 20145101《Java程序设计》第10周学习总结
20145101<Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输. 计算机网络 路由器和交换机组成了核心的 ...
- 20155212 2016-2017-2 《Java程序设计》第9周学习总结
20155212 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 Chapter16 数据库本身是个独立运行的应用程序. 应用程序如何呼叫这组链接库? 不同的 ...
- 20155201 2016-2017-2 《Java程序设计》第十周学习总结
20155201 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java密码技术 安全的三个属性 机密性 完整性 可用性 密码学: 主要是研究保密通信和信息 ...
- Java 反射学习笔记
要学反射,先要了解Class这个类,Class是所有Java类的一个总称,Class的实例中存储的是一个类的字节码,获取Class的实例有三种方式: System.class new Date().g ...
- 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)
Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...
- java基础学习:java中的反射
一.什么是java反射 什么是 java 的反射? 说到反射,写这篇文章时,我突然想到了人的"反省",反省是什么?吾一日三省吾身,一般就是反思自身,今天做了哪些对或错的事情. ja ...
- Java中的包学习笔记
一.总结 1.引入包的概念的原因和包的作用比如有多个人开发一个大型程序,A定义了一个Math.java类,B也定义了一个Math.java类,它们放在不同目录,使用的时候也是用目录来区分,包实际上就是 ...
- 20145213《Java程序设计》第八周学习笔记
20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...
随机推荐
- Ubuntu 环境 samba的安装&配置
一.samba的安装: sudo apt-get install samba sudo apt-get install smbfs sudo apt-get install cifs-utils (新 ...
- jquery的2.0.3版本源码系列(5):349-817行,extend添加的工具方法
expando 生成唯一JQ字符串(内部)noconflict避免冲突isReady DOM是否加载完成(DOMContentLoaded)readyReady
- Lucene的配置及创建索引全文检索
Lucene 是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言).Lucene ...
- TC358743XBG:HDMI转MIPI CSI参考设计
TC358743XBG参考设计电路图如下, 功能HDMI转MIPI CSI ,通信方式:IIC,分辨率1920*1080,封装形式BGA64.
- 1000以内完全数(完美数)获取实现---基于python
"""题目: 如果一个数恰好等于它的因子之和,则称该数为"完全数" .各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的 ...
- mha 复制检查报错“There is no alive server. We can't do failover”
安装mha所参考的文章: http://linzhijian.blog.51cto.com/1047212/1906434 http://www.cnblogs.com/xiaoboluo768/p/ ...
- cobbler部署安装CentOS6.8
Linux运维:cobbler : 矮哥linux运维群:93324526 学习cobbler的话,必须先搞懂kickstart,原理不是,不懂如何排错. kickstart部署请点击这里 1. Co ...
- java aio nio bio
转自:http://blog.csdn.NET/liuxiao723846/article/details/45066095 Java中的IO主要源自于网络和本地文件 IO的方式通常分为几种,同步阻塞 ...
- Java 循环和函数(方法)
1 for循环嵌套 简而言之,就是一个for循环语句里面,还有一个for循环语句. 外层循环,每循环一次,内层循环,循环一周. 示例 package java003; /** * 2017/9/1. ...
- 1001.A+B Format (20)代码自查(补足版)
1001.A+B Format (20)代码自查(补足版) 谢谢畅畅酱的提醒,发现了代码中的不足,把变量名更改成更合理的名字,并且把注释也换成英文啦! 栋哥提供的代码自查的方式也帮助了我发现很多代码中 ...