java 反射的优缺点_java反射机制是什么?概念功能优缺点详细介绍

对于java反射机制你有多了解呢?下面的话要给大家介绍的就是java反射机制,主要介绍的就是概念功能以及优缺点等内容的介绍,一起来了解一下吧。

Java反射机制是Java语言的一个重要特性,首先的话,我们先要来了解一下2个概念,一个是编译期,一个是运行期。

编译期-指把源码交给编译器编译成计算机可以执行的文件的过程。

在Java当中,也就是把Java代码编成class文件的过程,编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作,例如,检查错误。

运行期-是把编译之后的文件交给计算机执行,直到程序运行结束,运行期也就是将在磁盘中的代码放到内存中执行起来。

Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息,在Java中,只要给定类的名字,就能够通过反射机制来获得类的所有信息。

Java反射机制在服务器程序和中间件程序中得到了广泛运用,在服务器端,往往需要根据客户的请求,动态调用某一个对象的特定方法。除此之外,在ORM中间件的实现中,运用Java反射机制能够读取任意一个javaBean的所有属性,或者给这些属性赋值。

0aa5168cc923069b7b4c655e6d9f3e4b.png

Java反射机制主要提供了下面的功能。

这些功能都位于

a9a3708e783a73500128da09f468a87c.png包。

想要知道一个类的属性和方法,就一定先要获取到这个类的字节码文件对象,获取类的信息的时候,使用的就是Class类当中的方法,所以就要先获取到每一个字节码文件(.class)对应的

Class 类型的对象。

我们都知道,所有Java类基本上都继承了Object类,在Object类当中定义了一个getClass()方法,这个方法返回同一个类型为Class的对象。

例:下面的代码:Class labelCls = label1.getClass();    // label1为 JLabel 类的对象

利用Class类的对象labelCls能够访问labelCls对象的描述信息、JLabel类的信息以及基类Object的信息。

下面是通过反射能够访问的信息:

f0549d028102ed8518d53d5f6c43ee15.png

如上所示:

在调用getFields()以及getMethods()方法的时候,将会依次获取权限为public的字段和变量,之后,将包含从超类中继承到的成员变量和方法,通过getDeclareFields()以及getDeclareMethod()只是获取在本类中定义的成员变量和方法。

Java反射机制的优缺点:

优点:

8c7e6ef1f3721c418bc3b2012cce22dc.png

缺点:

a4702d0303033669ae6a8654c3d95bc3.png

Java反射机制在一般的Java应用开发当中使用的比较少,即使是Java EE阶段也用的比较少。

以上的内容你都清楚了吗?更多关于Java反射机制的java入门知识,请继续奇Q工具网来进行了解吧。

推荐阅读:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值