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程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...
随机推荐
- QQ无法通过ISA2006&TMG2010代理收发图片问题解决
近期公司有业务需求通过TMG访问QQ,但配置多次均无法通过QQ收发图片,文字输入正常. 目前已解决,供参考: 这个问题是SSL端口默认使用了443,但QQ的离线文件不使用这个端口.所以ISA会把QQ的 ...
- ==与equal
@ 对象类型比较:(引用类型) ==和equal都表示对象引用的内存地址是否相同 对象类型继承Object并重写方法equal()用于对象的比较 @ 字符串比较: ==表示String引用的内存地址是 ...
- iOS js oc相互调用(JavaScriptCore 下)
下来我们使用js调用iOS js调用iOS分两种情况 一,js里面直接调用方法 二,js里面通过对象调用方法 首先我们看第一种,直接调用方法. 其中用到了iOS的block 上代码 -(void)we ...
- java常见面试题(一)
一.Spring面试的问题 1.spring的事务认识 事务注解方式: @Transactional,当标于类前时,该类的所有public方法都进行事物处理. 事务的传播行为: @Transactio ...
- 第3阶段——内核启动分析之start_kernel初始化函数(5)
内核启动分析之start_kernel初始化函数(init/main.c) stext函数启动内核后,就开始进入start_kernel初始化各个函数, 下面只是浅尝辄止的描述一下函数的功能,很多函数 ...
- 算法学习:Pac-Man的简单对抗
Pacman项目是加州大学伯克利分校提供的一个可视化的AI学习平台.其主体利用python完成.该项目提供了丰富的说明文档,以及预先实现了一些简单的算法供参考各接口的使用. http://ai.ber ...
- AT&T汇编语言学习:利用c库、文件读写
AT&T汇编.调用C库函数.读/写文件 d0321:更新读文件代码(图片)以后会更新代码版. d0329:汇编文本读取.简单动画. ============================== ...
- K好数--蓝桥杯
JAVA版K好数--蓝桥杯 历经千辛万苦,也算是研究出来了这道题了. 这道题主要运用了动态规划(Dynamic Planning)的思想,何谓动态规划?其实就是将一个大问题分成一个个小问题,然后先通过 ...
- Banner图二三事
前 言 JRedu 作为一个准前端学员,banner图可是很重要的呢.本人,小白一只,给大家分享几个刚刚学习的基础banner图事件.~~~ 1. 小广告图滚动播放 1.1HTML代码 首先,创 ...
- 个人作业2——英语学习APP的案例分析
第一部分:调研.评测 1.刚刚打开必应词典的时候,它给我的第一反应就是界面美观,最上面是一个查询框,下面有一些经典的句子.单词以及一些精选的文章,所有的功能都可以一目了然,看一眼就知道要怎么去使用,这 ...