image

编辑人: 浅唱

calendar2025-01-16

message5

visits146

loadClass()和forName()的区别

两者都可以返回Class对象,区别就是类加载的程度不同。

loadClass()方法返回的Class对象默认只进行了加载阶段,而连接和初始化阶段是还没进行的,所以说,使用loadClass()方法默认是不会触发该类里面的静态代码块的。

forName()方法返回的Class对象默认已经进行完初始化了,所以说会触发类里面的静态代码块。

比如说像JDBC中的Driver类是通过forName()方法来获取的,就是因为Driver类里面有一个静态代码块,所以需要使用forName()

而loadClass()在Spring IOC中延迟加载用得很广泛



创作类型:
原创

本文链接:loadClass()和forName()的区别

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share