Java 反射机制核心逻辑与面试考点
介绍 Java 反射机制的核心概念、Class 对象获取方式、类加载过程及三大应用场景。涵盖面试高频考点,包括反射性能优化、私有成员访问(暴力反射)、Class.forName 与 ClassLoader 区别,以及反射与注解的关系。旨在帮助开发者理解动态编程原理,为 Spring 等框架学习奠定基础。

介绍 Java 反射机制的核心概念、Class 对象获取方式、类加载过程及三大应用场景。涵盖面试高频考点,包括反射性能优化、私有成员访问(暴力反射)、Class.forName 与 ClassLoader 区别,以及反射与注解的关系。旨在帮助开发者理解动态编程原理,为 Spring 等框架学习奠定基础。

反射是 Java 的动态机制,允许在运行时分析类、执行类中方法。其核心是 java.lang.Class 类:
Class 对象(一个类只有一个 Class 对象),存储类的完整结构信息(属性、方法、构造器等)。Class 对象获取这些元数据,从而突破封装性(如访问私有成员)。获取 Class 对象是反射的起点,四种方式各有适用场景:
String.class);"hello".getClass());类的加载分为三阶段,理解这三阶段是掌握反射和类加载器的关键:
.class 文件读入内存,创建 Class 对象;.class 合法)、准备(静态变量赋默认值)、解析(符号引用→直接引用);static{}),初始化静态变量。
双亲委派机制:子加载器先委托父加载器加载,避免重复加载(如 java.lang.String 由 Bootstrap 加载,防止被篡改)。反射的核心是'操作类内部结构',三大应用场景如下:
clazz.newInstance():调用无参构造器(已过时,推荐用 Constructor);constructor.newInstance(...):调用指定构造器(需处理异常,如 InstantiationException)。getDeclaredField(name):获取本类属性(包括私有);setAccessible(true):暴力反射,强行访问私有属性;set(obj, value)/get(obj):读写属性值(需 setAccessible(true) 突破私有)。getDeclaredMethod(name, paramTypes):获取本类方法(包括私有);method.invoke(obj, args):执行方法(反射最核心的代码,需 setAccessible(true) 突破私有)。application.properties)动态加载类,无需硬编码 new;Class.forName():不仅加载类,还会执行类的初始化(如 JDBC 驱动注册,通过 static{} 代码块);ClassLoader:仅加载类,不执行初始化(适合框架动态加载,避免不必要的初始化)。Class/Method 对象(避免重复查找);setAccessible(true) 关闭安全检查(提升性能,但需谨慎)。field.setAccessible(true) 或 method.setAccessible(true),开启暴力反射,强行访问私有成员(突破封装性)。@Autowired)@Autowired 表示需要依赖注入);getAnnotation()),根据注解逻辑执行操作(如通过反射注入 Bean)。className=com.example.User),用反射创建对象,理解动态性;private void test()),掌握突破封装的技巧;forName() 和 ClassLoader 加载类,观察初始化差异(如静态代码块是否执行)。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online