• 技术文章 >java >java基础

    java反射原理

    小妮浅浅小妮浅浅2021-04-16 17:53:37原创4816

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    1.调用反射的流程

    1)准备阶段:编译期装载所有的类,将每个类的元信息保存至Class类对象中,每一个类对应一个Class对象

    2)获取Class对象:调用x.class/x.getClass()/Class.forName() 获取x的Class对象clz(这些方法的底层都是native方法,是在JVM底层编写好的,涉及到了JVM底层,就先不进行探究了)

    3)进行实际反射操作:通过clz对象获取Field/Method/Constructor对象进行进一步操作

    2.获取class类

    要想通过反射获取一个类的信息,首先要获取该类对应的Class类实例,Class类的实例代表了正在运行中的Java应用的类和接口。Class类没有公共的构造方法,Class类对象是在二进制字节流(一般是.class文件,也可通过网络或zip包等路径获取)被JVM加载时,通过调用类加载器的defineClass()方法来构建的。

    /**
     * Instances of the class {@code Class} represent classes and
     * interfaces in a running Java application.
     * {@code Class} has no public constructor. Instead {@code Class}
     * objects are constructed automatically by the Java Virtual Machine as classes
     * are loaded and by calls to the {@code defineClass} method in the class
     * loader.
    */
     
    public final class Class<T> implements java.io.Serializable,GenericDeclaration,Type,AnnotatedElement {
        ......
    }

    我们深入java反射的使用前,应该对其原理有一个深入的了解。我们知道,class类是反射过程中比较重要的操作,对于它的获取也是反射中必学的知识点。这里我们先梳理出调用反射的流程,然后就class类的获取进行详细的实例展示,相信大家在经过使用反射获取class类后,加深对调用的原理理解。

    以上就是java反射原理简单介绍,想要实现反射的机制,关键是需要获取class类的方法,已经在上面分享给大家了。学会后就可以处理一些反射机制的问题。

    专题推荐:java反射原理
    品易云
    上一篇:java反射方式创建实例 下一篇:Java中的Arrays类是什么

    相关文章推荐

    • java常见递归练习题• java中ORM的基本内容• java中orm框架有哪几种• java orm的原理分析• Java中反射机制是什么?• 数组在java中的扩容方法• java之JVM各类机制整理• java反射方式创建实例

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网