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或访问静态字段/方法才执行

相关推荐
秋天的怀念_David1 分钟前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放8 分钟前
Python基础语法练习题(73)
java·前端·python
Wang's Blog12 分钟前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户37215742613538 分钟前
Java 操作 Word 脚注和尾注:添加、读取与删除
java
考研保研资料分享1 小时前
2025公卫保研清华专硕:三校考核、英文读译与择校复盘
面试
小嘉丶学长1 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
字节探索1 小时前
Spring Boot 接口幂等性设计:从唯一索引到 Redis+Lua 的工程实践
java·spring boot
用户3721574261351 小时前
Java 实现 Excel 与 Markdown 相互转换:表格导出、格式设置与多表提取
java
迪菲赫尔曼1 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
SL_staff1 小时前
制造业订单交付总踩坑?用结构化节点协同模型重构计划系统
java·开源·全栈