java反射_Java中反射学习系列教程之一

在上一个系列教程-《Java中注解学习系列教程》中解析自定义注解的时候用到了Java中一种技术--反射。其实在很多源码中,我们都能看到反射的身影。那么什么是反射?为什么要用反射?反射都有哪些常用API?从本文开始我们将系统的介绍Java中反射技术。

Java反射学习系列教程主要内容:

f674802834241a88b81b9adf662974d4.png

本文主要内容:

一:什么是反射?

二:反射的特点是什么?

一:Java中反射是什么

反射中的反怎么理解

既然有反射及反着来,那么什么是【正】呢?请看下面代码:

Person p = new Person();

这个代码,我们大家都很熟悉,在刚学Java的时候声明对象及对象引用的时候老师就说了,声明对象要使用关键字 new来创建对象。

其实现在我们来分析上面这行代码

等号左边 Person p:我已经知道我需要的是一个Person对象,使用p这个变量来代替Person对象。

在看等号右边new Person():new 是关键之就不多说了,而new出的对象就是我需要的Person对象了。

如果我们在new的时候使用其他对象会怎么样?

a98ae9dcf57f03beacc03c6898094bc5.png

会提示cannot resolve symol 的错误。不能转换的。

以上流程就是我们说的【正】流程创建对象。

我们可以分析得到:

在使用对象的时候,已经知道需要使用的对象类型。如上图中:已经知道使用的对象是Person而不是Student对象了。也就是说,在运行时候,需要什么对象,我们就创建什么对象。

反射中的反的理解:在使用的之前,提前不知道需要使用什么类型的对象。只是在调用的时候,才知道要调用的对象类型。这种反其道而行的就是反射中反的理解。

反射定义

先来看看百科上是怎么定义的

7109e5ec4f5116fad34a27c16432b88d.png

也可以这么理解:

反射就是.class文件在运行的时候,进行拆分。

可以理解为反射是在运行的时候对.class文件进行解剖。将对象中的构造器、方法、属性等解剖成一个一个对象。在运行的时候,可以动态的获取属性或方法

二:反射的特点

cd2c5a179e2960616894d4bf8e69f006.png

简单的来说:

在运行的时候可以动态的创建任意对象并调用其方法,还可以生成动态代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值