Java面试:loadClass()和forName()的区别

匿名网友 匿名网友 发布于: 2020-02-28 00:00:00
阅读 236 收藏 0 点赞 0 评论 0

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

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

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

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

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

评论列表
文章目录