java 反射机制原理 简述[通俗易懂]

java 反射机制原理 简述[通俗易懂]什么是反射机制?1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。反射的作用1、在运行时判断任意一个对象所属的类;2、在运行时构造任意一个类的对象;3、在运行时判断任意一个类所具有的成员变量和方法;4、在运行时调用任意一个对象的方法;生成动态代理。反射的…

大家好,又见面了,我是你们的朋友全栈君。

什么是反射机制?

1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。
2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。

反射的作用

1、在运行时判断任意一个对象所属的类;
2、在运行时构造任意一个类的对象;
3、在运行时判断任意一个类所具有的成员变量和方法;
4、在运行时调用任意一个对象的方法;生成动态代理。

反射的原理

反射的实现主要借助以下四个类:Class、Constructor、Field、Method ;
1、通过Class类获取类对象的三种方法:
第一种:通过类名获得:Class<?> class = ClassName.class;
第二种:通过类名全路径获得:Class<?> class = Class.forName(“类名全路径”);
第三种:通过实例对象获得:Class<?> class = object.getClass();

2、通过Class类获取实现类实例化:
Object o = (Object) c.newInstance() ; (其中c为Class类的实例化对象)

3、获取类中的构造方法:在这里插入图片描述在这里插入图片描述
4、获取类中的属性:

在这里插入图片描述
在这里插入图片描述

5、获取类中的方法:

在这里插入图片描述
在这里插入图片描述

注:

1、ClassForName 与 ClassLoader 的区别:
1)class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法;
2)classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157024.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月8日 上午10:36
下一篇 2022年7月8日 上午10:46


相关推荐

  • 一个对文本内容进行排序的小程序的核心代码

    一个对文本内容进行排序的小程序的核心代码

    2022年3月12日
    45
  • JVM垃圾回收机制【简单介绍】[通俗易懂]

    JVM垃圾回收机制【简单介绍】[通俗易懂]Java虚拟机(JVM)垃圾回收机制JVM中的垃圾回收计数是采用的一种自适应的技术(可以通过其工作方式将它“啰嗦地”称为:自适的、分代的、停止-复制、标记-清扫式垃圾回收器)在讲Java虚拟机的自适应回收机制前,有必要说一下其他比较单纯的垃圾回收机制,然后会比较容易地理解JVM的垃圾回收:1、引用计数一种简单但速度很慢的垃圾回收计数。​ 每个对象都含有一个引用计数器,当有引用连接至对…

    2022年6月8日
    49
  • python循环语句(while、for)

    python循环语句(while、for)注 在介绍 python 循环语句之前 这里需要先给大家介绍下 range 函数 python2 nbsp nbsp nbsp range 5 即刻生成数据 消耗时间并占用内存 nbsp nbsp nbsp xrange 5 先生成一个 xrange 对象 使用值时才生成数据 占用内存 python3 nbsp nbsp nbsp range 5 相当与 python2 里面的 xrange 1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp ra

    2026年3月17日
    3
  • 物联网架构设计「建议收藏」

    物联网架构设计「建议收藏」在设计lan(Github:https://github.com/phodal/lan)物联网平台的时候,结合之前的一些经验,构建出一个实际应用中的物联网构架模型。然后像lan这样的应用,在里面刚属于服务层。物联网层级结构通常,我们很容易在网上看到如下图所示的三层结构:从理论上划分这样的层级结构是没有问题的,也是有各种理…

    2025年11月27日
    4
  • 双线性插值 一文全讲解

    双线性插值 一文全讲解1、原理在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值,兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中的插值效果和运算速度,运用比较广泛。  越是简单的模型越适合用来举例子,我们就举个简单的图像:33的256级灰度图。假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source):2343822674…

    2022年5月5日
    56
  • Java绘图: 使用 Graphics 类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本

    Java绘图: 使用 Graphics 类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本本文链接 http blog csdn net xietansheng article details Graphics 绘图画布 Graphics 类相当于一个画布 每个 Swing 组件都通过 Graphics 对象来绘制显示 绘图的原点位于组件的左上角 如下图所示 Graphics 类中常用的绘制相关方法 参数 设置 创建

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号