java面试-0141-java反射?优缺点?场景?原理?Class.forName和ClassLoader区别?

允许程序在运行时动态地获取类的信息、调用对象的方法、访问或修改对象的字段和创建对象实例

优点:运行时类型判断,动态加载类,代码灵活

缺点:反射通过解释操作,性能低于直接调用,可能绕过访问控制,增加安全风险。

JDBC 驱动加载:Class.forName("com.mysql.jdbc.Driver") 动态加载数据库驱动。

Spring通过XML配置反射装载Bean

XML/Properties 解析:反射将配置文件映射为实体类对象。

工厂模式:根据全限定类名(如 Class.forName)创建对象实例。

原理:JVM 在加载类时,将字节码信息(类元数据)存储在方法区。反射通过 Class 对象访问

都用于加载类字节码到 JVM,生成 Class 对象。

Class.forName默认会执行类中的static块

ClassLoader在newInstance或访问静态字段/方法才执行

相关推荐
ZTLJQ3 分钟前
序列化的艺术:Python JSON处理完全解析
开发语言·python·json
2401_8914821719 分钟前
多平台UI框架C++开发
开发语言·c++·算法
SuniaWang32 分钟前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
sheji341639 分钟前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
88号技师41 分钟前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t1987512842 分钟前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
m0_726965981 小时前
面面面,面面(1)
java·开发语言
2401_831920742 小时前
分布式系统安全通信
开发语言·c++·算法
~无忧花开~2 小时前
React状态管理完全指南
开发语言·前端·javascript·react.js·前端框架
xuhaoyu_cpp_java2 小时前
过滤器与监听器学习
java·经验分享·笔记·学习