0 ,知识点:
-- 0,1 类的加载器
一个类是如何被加载的?一个类如何被注册到jvm中的?
解决方案:
类加载器 ClassLoader 专门负责进行类的加载?
.class文件,叫做字节码文件
字节码文件被加载之后,生成类型(注册一个类)
> 类加载器分为三个大的种类,分别加载那些类?:
>> Bootstrap
>>负责启动jvm(java虚拟机)C或者C++ 加载自己类库
>> 想要查看类加载器加载那些类,
>> 方案1:需要配置参数
类的加载器,加载的第一个类:肯定是Object> 方案2:做成jar文件
>> 扩展加载器 ExtClassLoader
>> 负责加载jdk中extend这个文件夹下内容
>> 应用加载器 AppClassLoader
>> 自己编写的类,被这个
相当于反射:定义的应用:
case1:java运行中,任意一个类型,都可以获取到这个类型的属性和方法。
任意一个类型 :== Class
-- 反射全部方法
>> getMethods()
>>>只能获取到当前类和父类的公开方法,构造方法除外
>>> 私有方法无法获取到。
>> getDeclaerMethods()
>> 获取当前类中所有方法包括这个私有方法
>> 父类的方法不再显示
>> getDeclaredConstructors
>> A类中有一个方法我是知道,我就是获取这个方法,应该如何处理
>> 思路:获取这个类方法的时候,需要传递一个名称,根据名称 获取方法
>> getDeclaredMethod("print", Object.class,String.class,
-- 反射全部的属性
>> 获取全部的属性
>> cls.getDeclaredFields();
>> 根据名称获取字段名称
>> cls.getDeclaredField("id"); 根据这个名称获取域对象
-- 问题:
-- Method
-- Field
-- 这两个类你是怎么理解?
网友评论