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

相关推荐
郭郭的柳柳在学FPGA9 小时前
千兆以太网@——帧格式
java·开发语言·网络
真恋寄语枫秋9 小时前
【Java零基础入门20】Java Stream流超全详解:中间操作、终结操作、集合数据处理
java
我还记得那天9 小时前
用C语言实现一个简易扫雷小游戏
c语言·开发语言
段ヤシ.9 小时前
回顾Java知识点,面试题汇总Day10(持续更新)
java·开发语言·spring
小明同学019 小时前
C++后端项目:统一大模型接入 SDK(二)
开发语言·c++
Dicky-_-zhang9 小时前
Elasticsearch聚合查询优化实战
java·jvm
淼淼爱喝水9 小时前
【Ansible 入门实战】三种变量详解
java·linux·数据库·ansible·playbook
我不是懒洋洋9 小时前
【C++】类和对象( 类的定义、实例化、 this指针、 C++和C语言实现Stack对比)
c语言·开发语言·数据结构·c++·经验分享·算法·visual studio
Perry 1239 小时前
Java中的多态
java·开发语言