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

相关推荐
程序喵大人6 分钟前
【C++进阶】STL算法与函数对象 - 01 让算法去处理一段迭代器范围
开发语言·c++·算法·函数对象
gugucoding9 分钟前
34.【Java】I/O流(下):NIO与文件操作
java·python·nio
cui_ruicheng11 分钟前
Python数据分析(十三):Seaborn 统计可视化
开发语言·python·信息可视化·数据分析
tianyu23428 分钟前
双指针循环匹配金额——打款记录与账单的自动对账算法
java·算法·双指针循环·匹配金额
YDS82934 分钟前
大营销平台 —— 架构解析和抽奖流程串联
java·springboot·ddd
小贤plus39 分钟前
MyBatis‑Plus IPage 分页踩坑实战:分页与全量查询兼容方案
java
Java内核笔记44 分钟前
BeanRegistrar:Spring Boot 4 最被低估的新特性,彻底改变 Bean 注册方式
java·后端
还是鼠鼠1 小时前
【Spring AI智能体实战 02】Spring Boot 3.4整合Spring AI:项目创建与依赖配置
java·人工智能·spring boot·maven·spring ai
大尚来也1 小时前
HTML5 Web Worker:彻底解决JS阻塞页面卡顿问题
开发语言