目录放在这里太长了,附目录链接大家可以自由选择查看——–Java学习目录
目录,更新ing,学习Java的点滴记录
引入-Java为啥可以被称为半动态语言
从反射角度来说
,Java属于半动态语言反射的概念
反射库
提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序.这项功能被大量地应用到JavaBean中(相信学过Spring体系的小伙伴都很清楚了吧).反射也是一种帮助我们分析类能力的程序.在运行状态下,对于任意一个类都能够知道这个类的所有属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法
,这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制.反射的作用
编译时类型和运行时类型
反射API
1)Class类:反射的核心类,可以获取类的属性,方法等信息
2)Field类:java.lang.reflec包中的类,表示类的成员变量,可以用来获取和设置类中的属性值
3)Method类:java.lang.reflec包中的类,表示类的方法,它可以用来获取类中的方法信息或者执行方法
4)Constructor类:java.lang.reflec包中的类,表示类的构造方法获取Class对象的3种方法
Class.forName("全类名")
:将字节码文件加载进内存,返回Class对象
多用于配置文件,将类名定义在配置文件中.读取文件,加载类
多用于参数传递
多用于对象获取字节码的方式
1) 获取成员变量们
Field[] getFields() :获取所有public修饰的成员变量
Field getField(String name) 获取指定名称的 public修饰的成员变量
Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符
Field getDeclaredField(String name)
2) 获取构造方法们
Constructor<?>[] getConstructors()
Constructor getConstructor(类<?>… parameterTypes)
Constructor getDeclaredConstructor(类<?>… parameterTypes)
Constructor<?>[] getDeclaredConstructors()
3)获取成员方法们
Method[] getMethods()
Method getMethod(String name, 类<?>… parameterTypes)
Method[] getDeclaredMethods()
Method getDeclaredMethod(String name, 类<?>… parameterTypes)
4)获取全类名
String getName()
创建对象的两种方式
使用Class对象的newInstance()方法来创建该Class对象对应类的实例,但是这种方法要求该Class对象对应的类存在默认的构造器
先使用Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建Class对象对应类的实例,这种方法可以选定需要的构造方法创建对象实例.
反射常用方法
提高反射的性能
1)setAccessible启用和禁用访问安全检查的开关,值为true,则指示反射的对象在使用时应该取消java语言访问检查,值为false则指示反射的对象应访问实施java语言访问检查,并不是为true就能访问为false就不能访问
2)禁止安全检查,可以提高反射的运行速度
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算