zoukankan      html  css  js  c++  java
  • 反射(待补充)

    一、反射概述

    二、理解Class类并获取Class的实例(重点)

    三、理解类加载器Classloader

    四、创建运行时类的对象

    五、获取运行时类的完整结构

    六、调用运行时类的指定结构

    七、反射的应用:动态代理

    一、反射概述:

    (1)Reflect被识别为动态语言。允许程序在执行期间借助于Reflection的API获得类的欸不信息,并直接操作任意对象的属行呗。

    (2)加载完一个类子之后,在方法区中产生一个Class对象(一个类对应一个Clas对象),这个类对象就包含了完整类的结构信息。可以通过这个对象看到类的结构。

    (3)反射最大的作用时在运行时操作或者获取一个类的结构


    二、理解Class类并获取Class的实例(重点)

    1、一个Class对象对应着一个运行时类

    2、获取运行hi类的构造方法,八种基本数据类型对相应得运行时类得对象直接,class。

    3、getFiled和getdeclaredFiled的区别

    4、不管访问什么属性,都因该在后面加上setAcessible()

    5、newInstance():通过运行时类构造一个对象


    三、理解类加载器Classloader

    1、类加载:将字节码文件加载到内存中,并将静态数据转换成方法区内存中运行时的数据结构,然后生成一个代表这个运行时类的java.lang.Class类型的对象。作为方法区中类的数据访问入口(引用地址)。访问这个运行时类的数据只能通过Class的对象,需要类加载器参与。

    2、类加载的过程

    (1)加载(类加载)

    (2)链接:解释将java的二进制代码合并到jvm

    a.验证:确保加载类的信息符合JVM的规范,无安全方面的问题

    b.准备:为类变量(static)分配内存并设置默认值,这些内存都是在方法区中完成的。

    c.解析:将虚拟机常量池的常量名替换为引用(即地址)的过程

    (3)初始化:执行类构造器<client>的过程

  • 相关阅读:
    第 33课 C++中的字符串(下)
    第 33课 C++中的字符串(上)
    第32课 初探C++标准库
    第31课 完善的复数类
    第30课 操作符重载
    第29课 类中的函数重载
    C++和C的相互调用
    函数重载遇上函数指针
    函数重载分析
    第2课 算法的效率问题
  • 原文地址:https://www.cnblogs.com/JQbiu/p/11248190.html
Copyright © 2011-2022 走看看