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中的反射学习笔记的更多相关文章

  1. Java核心知识点学习----线程中的Semaphore学习,公共厕所排队策略

    1.什么是Semaphore? A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each acq ...

  2. 20145101《Java程序设计》第10周学习总结

    20145101<Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输. 计算机网络 路由器和交换机组成了核心的 ...

  3. 20155212 2016-2017-2 《Java程序设计》第9周学习总结

    20155212 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 Chapter16 数据库本身是个独立运行的应用程序. 应用程序如何呼叫这组链接库? 不同的 ...

  4. 20155201 2016-2017-2 《Java程序设计》第十周学习总结

    20155201 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java密码技术 安全的三个属性 机密性 完整性 可用性 密码学: 主要是研究保密通信和信息 ...

  5. Java 反射学习笔记

    要学反射,先要了解Class这个类,Class是所有Java类的一个总称,Class的实例中存储的是一个类的字节码,获取Class的实例有三种方式: System.class new Date().g ...

  6. 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)

    Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...

  7. java基础学习:java中的反射

    一.什么是java反射 什么是 java 的反射? 说到反射,写这篇文章时,我突然想到了人的"反省",反省是什么?吾一日三省吾身,一般就是反思自身,今天做了哪些对或错的事情. ja ...

  8. Java中的包学习笔记

    一.总结 1.引入包的概念的原因和包的作用比如有多个人开发一个大型程序,A定义了一个Math.java类,B也定义了一个Math.java类,它们放在不同目录,使用的时候也是用目录来区分,包实际上就是 ...

  9. 20145213《Java程序设计》第八周学习笔记

    20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...

随机推荐

  1. Animate.css 一款牛逼的css3动画库

    Animate.css是一款很牛逼的,跨浏览器的css3动画库,使用方法也很简单只要引入一个animate.min.css就可以了, 简单使用 1 首先引入 animate的 css 文件样式 cdn ...

  2. struts分页实现

  3. 多路复用(select、epoll)实现tcp服务

    -------------------------------多路复用的服务器(select)------------------------------- 网络通信被Unix系统抽象为文件的读写,通 ...

  4. Fast Paxos 和 Paxos的区别

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt373 自从Lamport在1998年发表Paxos算法后,对Paxos的各种 ...

  5. 编译make的出错提示解决方案

    编译出错笔记:start.s:20: Error: no such instruction: `ldr r0,=WTCON' 错误:没有这样的指令 解决:编译文件后缀名必须为大写S,改为start.S ...

  6. 新CCIE笔记-IP网络基础

    南京捷式泰CCIE重修笔记:更完善更系统的全新笔记 新增内容: 总结.关联知识点.行业小建议 各种认证证书: RHCE VCP OCP MCSEPMP ITIL CCA CCIE CCNP CCNA ...

  7. MySQL在高版本需要指明是否进行SSL连接问题

    Java使用mysql-jdbc连接MySQL出现如下警告: Establishing SSL connection without server's identity verification is ...

  8. 结对编程1--基于GUI的四则运算题目生成器

    最终项目详细代码(coding地址)/李志强的博客/我的详细代码/方言的博客 一.需求分析 1.实现之前项目的功能,如:除了整数之外,还要支持真分数的四则运算,真分数的运算,并且要求能处理用户的输入, ...

  9. 团队作业8----第二次项目冲刺(Beta阶段) 第三天

    BETA阶段冲刺第三天 1.小会议ing 2.每个人的工作 (1) 昨天已完成的工作 注册账号时时添加了账号相同不能添加的功能,以防两个账号一样的情况: 老师账号注册时添加一个密令: (2) 今天计划 ...

  10. 【Beta】阶段 第四次Daily Scrum Meeting

    每日任务 1.本次会议为第四次 Meeting会议: 2.本次会议在周四下午16:40,课间休息时间在陆大楼召开,召开本次会议为10分钟. 一.今日站立式会议照片 二.每个人的工作 (有work it ...