反射和类加载

类的加载
        当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过 加载,连接,初始化三步来对这个类进行初始化。
        加载:
                就是将指定的class文件读入内存,并为之创建一个Class对象。
                任何类被使用时系统都会创建一个Class对象。
        连接:
                验证:是否有正确的内部结构,并和其它类协调一致
                准备:负责为类的静态成员分配内存,并设置默认值。
                解析:将类的二进制数据中的符号引用,替换为直接引用,
        初始化:类的初始化
类加载器
        负责将.class文件加载到内存中,并为之生成相应的Class对象。
        类加载器的组成:
            Bootstrap ClassLoader 根类加载器 
                    -----也被称为 引导类加载器,负责java核心类的加载,比如System,String等,在JDK中的JRE的lib目录下的rt.jar下
            Extendsion ClassLoader扩展类加载器
                    -----负责JRE扩展目录下的jar包的加载,在JDK的jre的lib目录下的ext目录
            App ClassLoader系统类加载器
                    -----负责在JVM启动时加载来自java命令的class文件以及classpath环境变量的所指定的jar包和类路径
java反射机制
        JAVA反射机制是在 运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的 任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制
        得到类的Class文件
                方式1:
                        new一个对象,然后用该对象的getClass()方法得到
                方式2:
                        用类的class属性获得,
                方式3:
                        用Class.forName(全限定包名);    //推荐使用方式3        








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值