java 反射

1.类装载器ClassLoader

       JVM在运行时中有三个ClassLoader:根装载器,ExtClassLoader和AppClassLoader。
    三个装载器有不同的作用:
    根装载器:有C++编写,负责装载JRE的核心类库;
    ExtClassLoader:负责装载JRE扩展目录ext的类库;
    AppClassLoader:负责装载Classpath下的路径(应用使用);
    其中根加载器是ExtClassLoader的父加载器,ExtClassLoaderAppClassLoader的父加载器。
   

      类装载器装载class的步骤:
    1.1 装载class
           1.1.1 查找class文件
           1.1.2 把class文件导入
    1.2 链接
           这一步主要是执行校验,分配静态变量的存储空间和解析
    1.3 初始化
           如果类中有静态变量或静态代码块,则执行初始化
    JVM装载类时,使用“全盘负责委托机制”,“全盘委托”是指一个ClassLoader负责加载一个类及其引用的所有类;
“委托机制”是指先委托父加载器寻找目标类,如果找不到,则从自己的类路径中查找并加载类。

2.java 反射

    通过java的反射机制可以获取Class对象中的构造函数,成员变量,方法等类元素,并操作相应的class对象。
    反射API在java.reflect包,其中最常用,也是最主要的有4个:
     
           Class类:代表一个类;
           Constructor类:类的构造方法;
           Method类:类的方法;
           Field类:类的成员变量(属性 );
Class类:代表一个类。
Field 类:代表类的成员变量(成员变量也称为类的属性)。
Method类:代表类的方法。
Constructor 类:代表类的构造方法。
           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值