尚硅谷佟刚Java基础反射

尚硅谷佟刚Java基础反射

ID:39365557

大小:889.23 KB

页数:26页

时间:2019-07-01

尚硅谷佟刚Java基础反射_第1页
尚硅谷佟刚Java基础反射_第2页
尚硅谷佟刚Java基础反射_第3页
尚硅谷佟刚Java基础反射_第4页
尚硅谷佟刚Java基础反射_第5页
资源描述:

《尚硅谷佟刚Java基础反射》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、反射讲师:佟刚新浪微博:尚硅谷-佟刚-2-理解Class类理解Java的类加载机制学会使用ClassLoader进行类加载理解反射的机制掌握Constructor、Method、Field类的用法理解并掌握动态代理目标Class类Class类对象照镜子后可以得到的信息:某个类的数据成员名、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留一个不变的Class类型的对象。一个Class对象包含了特定某个类的有关信息。Class对象只能由系统建立对象一个类在JVM中只会有一个Class实例每个类的实例都会记得自己是由哪个Class实例所生成获取Class对象的方式Clas

2、s类的常用方法方法名功能说明staticClassforName(Stringname)返回指定类名name的Class对象ObjectnewInstance()调用缺省构造函数,返回该Class对象的一个实例ObjectnewInstance(Object[]args)调用当前格式构造函数,返回该Class对象的一个实例getName()返回此Class对象所表示的实体(类、接口、数组类、基本类型或void)名称ClassgetSuperClass()返回当前Class对象的父类的Class对象Class[]getInterfaces()获取当前Class对象的接口ClassLoader

3、getClassLoader()返回该类的类加载器ClassgetSuperclass()返回表示此Class所表示的实体的超类的ClassClassLoader类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动类装载器(bootstrap)和用户自定义装载器(user-definedclassloader)。JVM在运行时会产生3个类加载器组成的初始化加载器层次结构,如下图所示:引导类加载器:用C++编写的,是JVM自带的类装载器,负责Java平台核心库,用来装载核心类库。该加载器无法直接获取扩展类加载器:负责jdk_home/lib/ext目录下的

4、jar包或–Djava.ext.dirs指定目录下的jar包装入工作库系统类加载器:负责java–classpath或–Djava.class.path所指的目录下的类与jar包装入工作演示类加载机制的层次关系:publicclassClassLoaderDemo{publicstaticvoidmain(String[]args){ClassLoaderclassloader;//获取系统缺省的ClassLoaderclassloader=ClassLoader.getSystemClassLoader();System.out.println(classloader);while(cl

5、assloader!=null){//取得父的ClassLoaderclassloader=classloader.getParent();System.out.println(classloader);}try{Classcl=Class.forName("java.lang.Object");classloader=cl.getClassLoader();System.out.println("java.lang.Object'sloaderis"+classloader);cl=Class.forName("com.atguigu.javase.reflection.ClassLoa

6、derDemo");classloader=cl.getClassLoader();System.out.println("ClassLoaderDemo'sloaderis"+classloader);}catch(Exceptione){System.out.println("Checknameoftheclass");}}}执行结果如下://表示系统类装载器实例化自类sun.misc.Launcher$AppClassLoadersun.misc.Launcher$AppClassLoader@19821f//表示系统类装载器的parent实例化自类sun.misc.Launcher

7、$ExtClassLoadersun.misc.Launcher$ExtClassLoader@addbf1//表示系统类装载器parent的parent为bootstrap,无法直接获取null//表示类Object是由bootstrap装载的java.lang.Object'sloaderisnull//表示用户类是由系统类装载器装载的ClassLoaderDemo'sloaderissun.misc.Launche

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。