反射机制是程序在运行过程中可以获取自己的信息。在java中,只要给出类别的名称,就可以通过反射机制获得类别的所有信息。今天总结了java反射面试题10道,各位java程序员可以根据这篇文章回顾java反射面试题java反射相关知识。
1、java反射的作用是什么?
答:反射机制是在运行过程中知道该类的所有属性和方法;可以调用任何对象的任何方法。在在java中,只要给出类别的名称,就可以通过反射机制获得类别的所有信息。这种动态获取信息和动态调用对象方法的功能称为java语言反射机制。
2、Java反射创建对象效率高还是new创建对象效率高?
答:通过new创建对象的效率相对较高。通过反射,首先找到类资源,使用类加载器创建,过程繁琐,效率较低。
3、除了使用new创建对象外,还可以用什么方法创建对象?
答:使用Java反射可以创建对象。
4、实现反射的方法有哪些?
答:获取Class对象有四种方法:(1)Class.forName(“类的路径”);(2)类名.class;(3)对象名.getClass();(4)基本类型的包装可以通过调用包装Type属性来获得包装Class对象。
5、实现java反射的类别有哪些?
答:(1)Class:表示Java应用程序中的类和接口正在运行中,注意Class类实现所有获取对象的信息;
(2)Field:提供相关类别和接口的属性信息以及动态访问权限;
(3)Constructor:提供关于类单个结构方法及其访问权限的信息;
(4)Method:在类别或接口中提供某种方法的信息。
6、反射机制的优缺点:
答:优点(1)能够运行时动态获取类的例子,提高灵活性;(2)结合Classs与动态编译相结合.forName('com.mysql.jdbc.Driver.class');//加载MySQL的驱动类
缺点:反射性能低,需要分析字节码,分析内存中的对象。
解决方案是:通过setAccessible(true)关闭JDK安全检查,提高反射速度;当多次创建一个类别的例子时,缓存会更快;ReflflectASM工具通过字节码生成加快反射速度。
7、Java反射API有多少种?
答:反射 API 用来生成 JVM 类别、接口或对象的信息。
(1)Class 类:反射的核心类,可获取类属性、方法等信息。
(2)Field 类:Java.lang.reflec 包中的类,表示类的成员变量,可用于获取和设置类中的属性值。
(3)Method 类:Java.lang.reflec 包中的类,表示类的方法,可用于获取方法信息或执行方法。
(4)Constructor 类:Java.lang.reflec 包中的类,表示类的结构方法。
8、反射使用步骤(获取Class对象,调用对象方法)
答:(1)获取想要操作的Class对象,它是反射的核心,我们可以通过Class对象任意调用。
(2)调用 Class 类中的方法是反射的使用阶段。
(3)使用反射 API 操作这些信息。
9、Java反射机制的作用是什么?
答:作用有(1)在运行过程中判断任何对象的类别;(2)在运行过程中构建任何类别的对象;(3)在运行过程中判断任何类别的成员变量和方法;(4)在运行过程中调用任何对象的方法。
10、编译错误发生在以下代码的哪里?
class Outer {
class Inner {
}
public static void foo() {
new Inner();
}
public void bar() {
new Inner();
}
public static void main(String[] args) {
new Inner();
}
}
答:Java中非静态内部对象的创建取决于其外部对象。在上述面试问题中,foo和main方法是静态方法。静态方法中没有this,即没有所谓的外部对象,因此无法创建内部对象。如果你想在静态方法中创建内部对象,你可以这样做:
new Outer().new Inner();
在在java编程中,还有很多地方可以反射,比如java框架就大量使用反射,还有在加载驱动和读取配置文件反射也是必不可少的。所以在在java面试中,面试官会想调查申请人的反射知识,所以需要面试的朋友必须提前做好准备,并整理出可以收集到的java反射面试问题。此外,java零基础根据这篇文章,小白也可以java反射面试题了解java反射。