大家对于java反射机制应该都是很了解的吧,那么下面要给大家分享的就是一组和java反射机制有关的java面试题,下面一起来看看java反射面试题都有哪些吧!
java反射机制面试题:
1、java反射机制的作用是什么?
答案:在运行的时候构造任意一个类的对象;在运行的时候判断任意一个对象所属的类;在运行的时候任意调用一个对象的方法;在运行的时候判断任意一个类所具有的成员变量以及方法。
2、反射机制的优点和缺点是什么?
3、反射机制是什么?
答案:反射是在运行状态当中,对于任意一个类,都可以知道这个类的所有属性和方法,对于任意一个对象,都可以调用它的任意一个方法和属性,这样的动态获取的信息以及动态调用对象的方法的功能被叫做java语言的反射机制。
具体的大家可以通过下文来进行了解-什么是java反射?java反射机制详解
4、哪里要用到反射机制?
答案:很多的框架都是需要用到反射机制的,例如hibernate、struts等等,都需要用到反射机制来实现。
5、java反射机制原理
答案:具体的大家可以通过下面的文章来了解-java反射原理是什么?java反射机制原理详解
6、怎样去使用使用java的反射?
答案:通过class对象获得一个属性对象,(1)Field c=clz.getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段;(2)Field c=clz.getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段 。
获取构造器对象,通过构造器new出一个对象,(1)Clazz.getConstructor([String.class]);(2)Con.newInstance([参数]);。
通过class对象获得一个方法对象,(1)Clazz.getMethod(“方法名”,class……parameaType);(只能获取公共的)(2)Clazz.getDeclareMethod(“方法名”);(获取任意修饰的方法,不能执行私有)(3)M.setAccessible(true);(让私有的方法可以执行)。
通过一个全限类名创建一个对象,(1)Class.forName(“全限类名”); 例如:com.mysql.jdbc.Driver Driver类已经被加载到jvm当中,并且完成了类的初始化工作就成(2)类名.class; 获取Class clz 对象(3)对象.getClass();。
让方法执行,(1)Method.invoke(obj实例对象,obj可变参数);-----(是有返回值的)。
通过class对象创建一个实例对象(就相当与new类名()无参构造器)(1)Clazz.newInstance()。
具体体现:
通过.class
// 第一种 获取到类对象 Class class1 = Person.class;
通过包名,调用class的forName方法
Class class3 = Class.forName("day07.Person");
通过创建实例对象来获取类对象
Person person = new Person(); Class class2 = person.getClass();
java反射机制面试题及答案就给大家整理这些内容了,你还想了解更多的java面试题吗?欢迎继续关注奇Q工具网来了解哦。
推荐阅读: