Java基础(一)反射

反射

1. 概念

Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称之为Java语言的反射机制。

2.用途

在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量,方法或是属性是私有的或是对系统应用开放,这时候就可以利用Java的反射机制通过反射获取所需的私有成员或是方法。

3.反射机制的相关类

与Java反射相关的类如下:
类名 用途
Class类 代表类的实体,在运行的Java应用程序中表示类和接口
Field类 代表类的成员变量(成员变量也称为类的属性)
Method## 标题类 代表类的方法
Constructor类 代表类的构造方法

4.应用场景

a.JDBC中,利用反射动态加载了数据驱动程序
b.Web服务器中利用反射调用了Servlet的服务方法
c.Eclipse等开发工具利用反射动态剖析对象的类型与结构,动态提示对象的属性和方法
c.很多框架都用到反射机制,注入属性,调用方法,如spring
d.Tomcat

5.如何获取一个class的实例?

  1. 通过一个class的静态变量class获取: 如果我们有一个实例变量,可以通过该实例变量提供的getClass()方法获取
    可以通过静态方法Class.forName()获取:

6.作用

通过反射可以使程序代码访问装载到JVM 中的类的内部信息

获取已装载类的成员变量信息

获取已装载类的方法

获取已装载类的构造方法信息

7.反射中常见的面试题

###1.什么是反射?
反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。
2.Java中哪里用到反射机制?

JDBC中,利用反射动态加载了数据库驱动程序。
Web服务器中利用反射调用了Sevlet的服务方法。
Eclispe等开发工具利用反射动态刨析对象的类型与结构,动态提示对象的属性和方法。
很多框架都用到反射机制,注入属性,调用方法,如Spring。
3.什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作?
对象序列化,将对象中的数据编码为字节序列的过程。
反序列化;将对象的编码字节重新反向解码为对象的过程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值