精华内容
下载资源
问答
  • 总结Java反射面试题(附答案)

    千次阅读 2021-03-08 05:48:55
    今天总结了java反射面试题10道,各位java程序员可以根据这篇java反射面试题,来回顾一下java反射的相关知识。1、java反射的作用是什么?答:反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法...

    反射机制是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。今天总结了java反射面试题10道,各位java程序员可以根据这篇java反射面试题,来回顾一下java反射的相关知识。

    1、java反射的作用是什么?

    答:反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意个对象,都能够调用它的任意一个方法。在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

    2、Java反射创建对象效率高还是通过new创建对象的效率高?

    答:通过new创建对象的效率比较高。通过反射时,先找查找类资源,使用类加载器创建,过程比较繁琐,所以效率较低。

    3、除了使用new创建对象之外,还可以用什么方法创建对象?

    答:使用Java反射可以创建对象。

    4、反射的实现方式都有什么?

    答:获取Class对象,有4种方法:(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)与动态编译结合Class.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反射。

    展开全文
  • 大家对于java反射机制应该都是很了解的吧,那么下面要给大家分享的就是一组和java反射机制有关的java面试题,下面一起来看看java反射面试题都有哪些吧!java反射机制面试题:1、java反射机制的作用是什么?答案:在运行...

    大家对于java反射机制应该都是很了解的吧,那么下面要给大家分享的就是一组和java反射机制有关的java面试题,下面一起来看看java反射面试题都有哪些吧!

    java反射机制面试题:

    1、java反射机制的作用是什么?

    答案:在运行的时候构造任意一个类的对象;在运行的时候判断任意一个对象所属的类;在运行的时候任意调用一个对象的方法;在运行的时候判断任意一个类所具有的成员变量以及方法。

    2、反射机制的优点和缺点是什么?

    19560b7de26a4ae77d9adccfe6a4a4f2.png

    3、反射机制是什么?

    答案:反射是在运行状态当中,对于任意一个类,都可以知道这个类的所有属性和方法,对于任意一个对象,都可以调用它的任意一个方法和属性,这样的动态获取的信息以及动态调用对象的方法的功能被叫做java语言的反射机制。

    4、哪里要用到反射机制?

    答案:很多的框架都是需要用到反射机制的,例如hibernate、struts等等,都需要用到反射机制来实现。

    5、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工具网来了解哦。

    推荐阅读:

    展开全文
  • Java 反射 面试题

    万次阅读 2018-11-26 21:02:57
    1)Java反射机制的作用 1. 在运行时判断任意一个对象所属的类 2. 在运行时构造任意一个类的对象 3. 在运行时判断任意一个类所具有的成员变量和方法 4. 在运行时调用任意一个对象的方法 2)什么是反射机制? 简单说,...

    1)Java反射机制的作用
    1. 在运行时判断任意一个对象所属的类
    2. 在运行时构造任意一个类的对象
    3. 在运行时判断任意一个类所具有的成员变量和方法
    4. 在运行时调用任意一个对象的方法

    2)什么是反射机制?
    简单说,反射机制值得是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。

    3)java反射机制提供了什么功能?
    1. 在运行时能够判断任意一个对象所属的类
    2. 在运行时构造任意一个类的对象
    3. 在运行时判断任意一个类所具有的成员变量和方法
    4. 在运行时调用任一对象的方法
    5. 在运行时创建新类对象

    4)哪里用到反射机制?

    1. 各种框架用的最多的就是反射
    2. 加载驱动
    3. 读取配置文件

    5)运用反射的优缺点
    优点:
        反射提高了程序的灵活性和扩展性,降低耦合性,提高自适应能力。它允许程序创建和控制任何类的对象,无需提前硬编码目标类
    缺点:
       (1)性能问题:使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此反射机制主要应用在对灵活性和扩展性要求很高的系统框架上,普通程序不建议使用。
       (2)使用反射会模糊程序内内部逻辑:程序员希望在源代码中看到程序的逻辑,反射等绕过了源代码的技术,因而会带来维护问题。反射代码比相应的直接代码更复杂。

    6)如何使用java的反射?
    a. 通过一个全限类名创建一个对象
    1)、Class.forName(“全限类名”); 例如:com.mysql.jdbc.Driver Driver类已经被加载到 jvm中,并且完成了类的初始化工作就行了
    2)、类名.class; 获取Class<?> clz 对象
    3)、对象.getClass();

    b. 获取构造器对象,通过构造器new出一个对象
    1). Clazz.getConstructor([String.class]);
    2). Con.newInstance([参数]);

    c. 通过class对象创建一个实例对象(就相当与new类名()无参构造器)
    1). Clazz.newInstance();

    d. 通过class对象获得一个属性对象
    1)、Field c=clz.getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
    2)、Field c=clz.getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段 e.
    e、通过class对象获得一个方法对象
    1). Clazz.getMethod(“方法名”,class……parameaType);(只能获取公共的)
    2). Clazz.getDeclareMethod(“方法名”);(获取任意修饰的方法,不能执行私有)
    3) M.setAccessible(true);(让私有的方法可以执行)
    f. 让方法执行
    1). Method.invoke(obj实例对象,obj可变参数);-----(是有返回值的)

    展开全文
  • java面试题--反射机制

    2018-11-14 17:31:05
    面试经典题型,很值得分享的。 我们面试经常会遇到的问题。
  • 反射面试题

    2019-10-24 11:07:27
    反射面试题什么是反射?什么是 java 序列化?什么情况下需要序列化?动态代理是什么?有哪些应用?怎么实现动态代理? 什么是反射? 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力 Java反射: 在...

    什么是反射?

    反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力

    Java反射:

    在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法

    Java反射机制主要提供了以下功能:

    • 在运行时判断任意一个对象所属的类。

    • 在运行时构造任意一个类的对象。

    • 在运行时判断任意一个类所具有的成员变量和方法。

    • 在运行时调用任意一个对象的方法。

    什么是 java 序列化?什么情况下需要序列化?

    简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种更好保存对象状态的机制,那就是序列化。

    什么情况下需要序列化:

    a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
    b)当你想用套接字在网络上传送对象的时候;
    c)当你想通过RMI传输对象的时候;

    动态代理是什么?有哪些应用?

    动态代理:

    当想要给实现了某个接口的类中的方法,加一些额外的处理。比如说加日志,加事务等。可以给这个类创建一个代理,故名思议就是创建一个新的类,这个类不仅包含原来类方法的功能,而且还在原来的基础上添加了额外处理的新类。这个代理类并不是定义好的,是动态生成的。具有解耦意义,灵活,扩展性强。

    动态代理的应用:

    • Spring的AOP

    • 加事务

    • 加权限

    • 加日志

    怎么实现动态代理?

    首先必须定义一个接口,还要有一个InvocationHandler(将实现接口的类的对象传递给它)处理类。再有一个工具类Proxy(习惯性将其称为代理类,因为调用他的newInstance()可以产生代理对象,其实他只是一个产生代理对象的工具类)。利用到InvocationHandler,拼接代理类源码,将其编译生成代理类的二进制码,利用加载器加载,并将其实例化产生代理对象,最后返回。

    展开全文
  • 下述是我收录整理的Android面试题汇总,由于篇幅原因,在这只把Java反射的题目列举出来,后续还会更新其余面试题内容,大家可以关注一下我,及时知晓我更新的知识点,同时这份面试集锦的整理也花费了我...
  • 反射面试题-请了解下

    千次阅读 2018-06-14 10:44:46
    什么是反射反射就是动态加载对象,并对对象进行剖析。在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法...
  • Java反射面试题

    2021-03-08 20:43:25
    再网上看了很多的java面试题,有很多都是零... Java反射面试题 1、除了使用new创建对象之外,还可以用什么方法创建对象? 使用Java反射可以创建对象! 2、Java反射创建对象效率高还是通过研 new创建对象的效率高? 通过
  • 06-Java反射面试题(11题)-新增
  • Java反射面试题 1、除了使用new创建对象之外,还可以用什么方法创建对象? 使用Java反射可以创建对象! 2、Java反射创建对象效率高还是通过new创建对象的效率高? 通过new创建对象的效率比较高。通过反射时,先找查找...
  • java反射面试题

    2021-03-23 16:52:55
    1 谈谈你对反射的理解 Java 中 的 反 射 首 先 是 能 够 获 取 到 Java 中 要 反 射 类 的 字 节 码 , 获 取 字 节 码 有 三 种 方 法 : Class.forName(className) 类名.class this.getClass()。 然后将字节码中...
  • Java反射常见面试题

    万次阅读 多人点赞 2019-04-16 19:47:21
    1. 什么是反射反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言...
  • 反射常见面试题

    千次阅读 2019-11-08 10:10:41
    什么是反射反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的...
  • 25、java反射面试题

    万次阅读 2018-07-14 14:26:09
    1、java反射机制的作用 1)在运行时判断任意一个对象所属的类; 2)在运行时构造任意一个类的对象; 3)在运行时判断任意一个类所具有的成员变量和方法; 4)在运行时调用任意一个对象的方法;反射就是动态加载对象,并...
  • 1.什么是反射?  反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的...
  • 反射机制是Java语言中一个非常重要的特性,它允许程序在运行时自我检查,同时也允许对其内部的成员进行操作。由于反射机制能够实现在运行时对类进行装载,因此能够增加程序的灵活性,但是不恰当地使用反射机制,也会...
  • 1.GC 机制  垃圾收集,Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的... (6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件...
  • Java面试题反射

    2021-07-02 13:12:56
    四、反射 57. 什么是反射? 在运行过程中,对任何一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能改变其属性. 58. 什么是 java 序列化?什么情况下需要序列化? 序列化就是一种用来处理对象流...
  • //住址 } public static void main(String args[]) { //通过反射获取 Class catClasse=cat.class; //1. Field[] fields=catClasse.getFields(); Arrays.asList(fields).forEach(field -> System.out.println(field....
  • 反射的方法:获取Class对象的方式:Class对象获取功能:成员变量对象的功能:构造方法对象的功能:方法对象的功能:面试题1:反射可以获取私有成员变量的值吗?面试题2:怎么获取配置文件上的数据?注解:什么是注解...
  • Java 反射相关面试题

    2020-04-07 20:13:01
    反射
  • 什么是反射机制,反射机制是Java语言中一个非常重要的特性。它允许程序在运行时进行自我检查。他同时也允许对其内部的成员进行操作,虽然这个特性在实际开发时使用的不多。但是像C/C++等语言根本没有提供这样的特效...
  • 史上最全的Android面试题集锦

    万次阅读 多人点赞 2019-07-17 11:58:06
    Android基本知识点 1、常规知识点 1、 Android类加载器 在Android开发中,不管是插件化还是组件化,都是基于Android系统的类加载器ClassLoader来设计的。只不过Android平台上虚拟机运行的是Dex字节码,一种对class...
  • Golang进阶面试题整理

    万次阅读 多人点赞 2020-01-03 15:00:24
    1. 简述Golang的方法有什么特别之处 函数的定义声明没有接收者。 方法的声明和函数类似,他们的区别是:方法在定义的时候,会在func和方法名之间增加一个参数,这个参数就是接收者,这样我们定义的这个方法就和接收...
  • Reflect反射面试题

    千次阅读 2013-04-08 17:28:12
    1: Class.forName的作用?...2: 通过反射,有几种方法可以实例化Class类对象?  3种,第一种:Class.forName()方法  第二种: 类名.Class  第三种:对象.getClass();方法 3:什么是反射?  JAVA反
  • 最新Java面试题,常见面试题及答案汇总

    万次阅读 多人点赞 2019-07-12 08:56:55
    Java最新面试题面试题答案汇总
  • 这份面试题总内容包含了十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、...
  • 经典C#面试题集锦

    2012-11-26 22:09:34
    经典C#面试题集锦

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,441
精华内容 16,976
关键字:

反射的面试题