java反射机制面试_java面试中面试官让你讲讲反射,应该从何讲起?

Java反射工具类 主要在设计模式,框架中用到。

JAVA反射机制是在运行状态中, 对于任意一个类, 都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意一个方法和属性。

从对象出发,通过反射(Class类)可以取得取得类的完整信息(类名 Class类型,所在包、具有的所有方法 Method[]类型、某个方法的完整信息(包括修饰符、返回值类型、异常、参数类型)、所有属性 Field[]、某个属性的完整信息、构造器 Constructors),调用类的属性或方法

自己的总结: 在运行过程中获得类、对象、方法的所有信息。

动态的创建一个类的对象和调用对象的方法:

作用1 : 使用Class进行对象的实例化

如果对象有无参构造方法

Class> cls = Class.forName("com.bank.Person");

Person per = (Person) cls.newInstance(); 感觉也不算足够动态,还是要明确写出Person

简写: Person per = (Person)Class.forName("com.bank.Person").newInstance();

如果对象只有有参构造方法

Class> cls = Class.forName("com.bank.Person");

Constructor>[] con = cls.getConstructors(); //得到全部的构造方法---

根据class对象获取类的方法,getMethod和getMethods。

Person per = (Person)con[0].newInstance("张三",30);

取得字段引用直接获取和设置对象字段,无论访问修饰符是什么。 缺点是反射的效率很低,而且会破坏封装,通过反射可以访问类的私有方法,不安全。

工厂设计中应用反射机制

Class类在一般的基本开发是不不会有任何作用的,完全可以不会,但是,对于一些高端的开发框架 框架的原理:反射+XML+XML解析

Class的三种实例化方法

Class> cls = obj.getClass();

Class> cls = obj.class;

Class> cls = Class.forName("类名"); //开发中主要用这种方法

JDBC 中用到

> 是泛型的用法

如果了解JVM可以结合JVM的相关知识说。

反射就是程序运行期间JVM会对任意一个类洞悉它的属性和方法,对任意一个对象都能够访问它的属性和方法。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值