面试---反射

简介: 面试---反射

☺ 面试聊聊反射机制?

Java的反射机制:是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种 动态获取程序信息以及动态调用对象的功能 称为Java语言的反射机制。


☺ 聊一下反射的原理?

java程序运行前,先会将java程序 编程 生成 .class 字节码文件,在程序运行过程中,使用到某个类,内存还没存在该类,那么 虚拟机就会先将该类加载到内存同时, 虚拟机会产生一个 java.lang.class 对象,代表该字节码文件。

通过Class 对象可以得到大量的Method、Constructor、Filed 等对象,这些对象分别代表该类所包含的方法、构造器、属性等等;反射的工作原理就是通过这些对象来执行实际的功能,例如调用方法、创建实例等等。


☺ 聊一下反射的优缺点?

优点:

  • 增加了程序的灵活性:例如Spring框架中,利用xml 配置文件解析bean的过程,就是反射的典型应用场景。
  • 增加了程序的拓展性:可以在不知道运行哪一个类的情况下,还能获取到类的信息,去创建对象以及操作对象;在程序中我们无须将对象的类型硬编码写死,可以更加方便地实现拓展,降低耦合度。


缺点:

  • 更容易出现运行错误:使用显示的类和接口,编译器可以帮我们做类型检查,但是使用反射却是需要等到程序运行才知道对象的类型
  • 性能比较低:反射是一种解释操作, 在访问字段和调用方法前,需要先获取到Filed、Method ,性能相对会低一些。
  • 安全性问题:通过反射可以修改任意的私有字段和访问私有方法破坏了类的封装,可能会出现逻辑错误等安全隐患。
目录
相关文章
|
12月前
|
缓存 安全 Java
【面试题精讲】反射的应用场景
【面试题精讲】反射的应用场景
|
20天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
12月前
|
开发框架 Java 数据库连接
每日一道面试题之什么是反射?
每日一道面试题之什么是反射?
|
5月前
|
设计模式 安全 Java
面试官:说说反射的底层实现原理?
面试官:说说反射的底层实现原理?
80 0
|
Java 编译器
【java面试】- java反射以及优缺点
java反射以及优缺点
209 0
|
Java 数据库连接
【Java面试】反射中,Class.forName和classloader的区别是什么?
【Java面试】反射中,Class.forName和classloader的区别是什么?
79 0
|
5月前
|
XML Java 数据库连接
Java知识面试题复习(五)JavaIO流和反射
Java知识面试题复习(五)JavaIO流和反射
60 1
|
5月前
|
Java 程序员
面试题:Java里面的反射
面试题:Java里面的反射
46 0
|
5月前
|
Java API Spring
java中的反射原理,为什么要使用反射以及反射使用场景(面试常问)
java中的反射原理,为什么要使用反射以及反射使用场景(面试常问)
59 0
java中的反射原理,为什么要使用反射以及反射使用场景(面试常问)
|
12月前
|
Java 数据安全/隐私保护
【面试题精讲】何谓反射?
【面试题精讲】何谓反射?