CS-Notes 学习笔记
面试常问Java 后端 · Java 基础

反射的原理是什么?有哪些应用场景?

先自己想一想,再看参考要点

参考要点

  • 类加载时 JVM 根据 .class 文件创建 Class 对象,反射通过它在运行时取得类的信息,类名可以到运行时才确定
  • 用 Field 读写字段,Method 的 invoke() 调用方法,Constructor 的 newInstance() 创建对象
  • 应用:Spring 创建 Bean 并注入、MyBatis 写入结果字段、JUnit 调用 @Test 方法、JDK 动态代理
  • 缺点是有性能开销(框架会缓存 Method 对象),类名和方法名写成字符串、失去编译期检查,JDK 16 起默认不能反射访问 JDK 内部的私有成员,会破坏封装
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。