Java反射

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

2,反射的使用方法:

假设有个类Person:

package com.gch;

class Person{}

获取类对象的方法:

    1.1   Person.class;

    1.2   Class.forName("com.gch.Person");

    1.3   new Person().getClass();

区别是方法一不执行静态块和动态构造块,方法二执行静态块、不执行动态构造块,方法三需要创建对象,静态块和动态构造块均会执行;

获取类对象之后,便可以获取class对象的属性、方法、构造函数。

获得Class对象后,可以获取Constructor构造器对象,再通过构造器的newInstance()创建你需要的对象。

3,反射和new的区别:

     1,new出来的对象我们无法访问其中的私有属性,但是通过反射出来的对象我们可以通过setAccessible()方法来访问其中的私有属性。

     2,在使用new创建一个对象实例的时候必须知道类名,但是通过反射创建对象有时候不需要知道类名也可以。因为动态代理不需要类名便可以动态的调用方法。

4,反射的使用场景:

- 加载数据库驱动,Class.forName("com.mysql.jdbc.Driver");

- Spring框架,加载Bean

- 动态代理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值