Java反射机制

在Java中对Class有两种操作方式,对Class类进行直接调用和间接调用。

举个小栗子:
下面有个Cat类有两个构造函数,一个方法,和3个属性

直接调用

间接调用:

ClassLoader类装载器

反射的实现:Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过该对象可以获知Class的结构信息,如构造函数、属性和方法。然后通过这个与Class相关的元信息对象间接调用Class对象的功能。

ClassLoader的工作机制:
      寻找类的字节码文件并构造出类在JVM内部表示对象的组件。类装载器将一个类装入JVM中,需要以下步骤
                   1.装载:查找和导入class文件
                   2.链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的
                    ---------》校验:检查载入class文件数据的正确性
                    ---------》准备:给类的静态变量分配空间
                    ---------》解析:将符号引用转换成直接引用
                   3.初始化



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们可以通过编程方式调用 Class 的各项功能,与通过构造函数的方法直接调用类功能的效果是一致的,只不过前者是间...
    Draper阅读 2,507评论 0 0
  • 一、概述 Java反射机制定义 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法...
    CoderZS阅读 5,526评论 0 26
  • 本篇文章继续介绍Java反射机制,不同的是侧重于介绍动态代理。动态代理是代理模式中的一种,是通过Java反射机制来...
    Ruheng阅读 8,488评论 1 44
  • 本篇文章继续介绍Java反射机制,不同的是侧重于介绍动态代理。动态代理是代理模式中的一种,是通过Java反射机制来...
    Android进阶与总结阅读 3,741评论 0 0
  • 一、概述 1、Java反射机制(Java-Reflect): 在运行状态中,对于任意一个类,都能够知道这个类中的所...
    年少懵懂丶流年梦阅读 9,947评论 0 5