zoukankan      html  css  js  c++  java
  • 第十八章:类加载机制与反射

    一:基本概念

         1.反射:动态创建对象,动态调用方法、访问并修改指定对象的成员变量值。

                    java中的类实际上也是实例,它们都是java.lang.Class的实例哦!

         2.类加载或类初始化:   加载    连接  初始化 三个步骤哦! 

                       类加载器:将.class文件加载到内存中去。并生成对应的java.lang.Class对象。

           加载:将类的class文件读入内存,并创建其对应的Class对象。   通过类加载器实现的哦!

              类加载机制:缓存机制,保证所有加载过的Class都会被缓存,所以修改java文件后必须重启JVM。

           连接:将类的二进制数据合并到JRE中(验证、准备、解析)。

                     验证:

                     准备:为类变量分配内存,设置初始值。

                     解析:将类的二进制数据中的符号引用替换成直接引用。

           初始化:指定初始值。  先初始化其直接父类!(向上递归哦)

      3.java对象:编译时类型和运行时类型

              编译时和运行时?  

       java机制:每个类被加载之后,系统就会为该类生成一个对应的Class对象,通过该对象就可以访问到JVM中的这个类。

             获取Class对象的三种方式:

                              1.Class.forName(String clazzName)

                              2.调用的class属性  Person.class

                              3.调用某个对象的getClass()方法

          4.可以访问到的资源:构造器、方法、成员变量、Annotation(注解)、内部类、该类所实现的接口、该类的修饰符、包名。

          5.反射创建对象

              1.获取Class对象后,使用Class对象的newInstance()方法来创建该Class对象对应类的实例。

                 spring就是如此实现的哦!

                      a:使用配置文件配置对象。

                      b:程序根据配置文件来创建对象

              2.使用Class对象获取指定的Constructor对象(getConstructor()来获取),再调用Constructor对象的newInstance()方法来创建Class对象对应类的实例。

        

    二:难点(动态代理)

          

         

    三:反射和泛型

         1.通过在反射中使用泛型,可以避免使用反射生成的对象需要强制类型转换。

            Class类的泛型:String.class 的类型是 Class<String>;  如果Class对应的类暂时未知,则使用Class<?>。  

            对比:和集合的泛型很像哦! 

         

         2. 注解.class ?

             接口.class  ? 

     四:总结

      1.什么事反射?

                http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html

                http://blog.csdn.net/liujiahan629629/article/details/18013523

      2.什么事动态代理?

      3.指针?          

      4.类加载器:将.class文件加载到内存中! 

          

  • 相关阅读:
    古谚、评论与论断、名篇与名言
    重读《西游记》
    重读《西游记》
    命名之法 —— 时间、季节、地点
    命名之法 —— 时间、季节、地点
    文言的理解 —— 古时的称谓、别称、别名
    文言的理解 —— 古时的称谓、别称、别名
    Oracle GoldenGate for Oracle 11g to PostgreSQL 9.2.4 Configuration
    瀑布 敏捷 文档
    POJ 1325 ZOJ 1364 最小覆盖点集
  • 原文地址:https://www.cnblogs.com/njqa/p/5889507.html
Copyright © 2011-2022 走看看