• JAVA 反射原理


    反射作用

    在程序运行的过程中,动态的创建对象

    反射的基石

    字节码文件对象------>Class类的对象----是Java的一个类型
    定义一个类class A{} ---->Java中的关键字,用来定义一个类!

    字节码文件

    java源文件进行编译(javac)之后的.class文件

    字节码文件对象

    jvm把字节码文件加载到jvm内存中去之后,jvm就认为这个字节码文件是一个字节码文件对象。
    字节码文件对象可看作是:jvm在内存中的体现。

    如何获得字节码文件对象(3中方式)

    1. Object类的getClass方法
    2. 类型的.class属性
    3. Class.forName("类的路径")

    区别:
    .getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。
    类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。
    ps: 同一个类的字节码文件只会被创建一次

    如何使用字节码文件对象

    字节码文件包含什么?

    类 字节码对象
    成员变量 成员变量对象(类型Field)

    构造方法 构造方法对象(类型Constructor)

    成员方法 成员方法对象(类型Method)

    用字节码文件对象来构建一个类的对象

    使用成员方法对象(Method)

    成员变量对象(Field)

    Java的反射就是利用jvm加载到方法区的类信息在运行的时候生成类,当你不知道某个类具体信息时,可以使用反射获取class,然后进行各种操作。

    Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。总结说:反射就是把java类中的各种成分映射成一个个的Java对象,并且可以进行操作。

  • 相关阅读:
    月薪 30K Java 程序员,需要掌握哪些技术?
    docker-compose安装mongodb
    docker-compose安装apollo服务
    docker-compose安装mysql和redis
    编程总结1:打印沙漏
    秋季学习总结
    对我人生影响最大的三位老师
    自我介绍
    秋季学习总结
    人生路上对我影响最大的三位老师
  • 原文地址:https://www.cnblogs.com/whyaza/p/12391814.html
Copyright © 2020-2023  润新知