首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中class是怎么加载到JVM中的(Class.forName("name")和ClassLoader.loadClass(&quo

2013-12-28 
Java中class是如何加载到JVM中的(Class.forName(name)和ClassLoader.loadClass(name)的区别)public cl

Java中class是如何加载到JVM中的(Class.forName("name")和ClassLoader.loadClass("name")的区别)
public class Driver extends NonRegisteringDriver implements java.sql.Driver{ //注意,这里有一个static的代码块,这个代码块将会在class初始化的时候执行 static { try { //将这个驱动Driver注册到驱动管理器上 DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } }}

??? Class.forName("com.mysql.jdbc.Driver")方法以后,他会进行class的初始化,执行static代码块。
??? 也就是说class初始化以后,就会将驱注册到DriverManageer上,之后才能通过DriverManager去获取相应的连接。
??? 但是要是我们使用ClassLoader.loadClass(com.mysql.jdbc.Driver)的话,不会link,更也不会初始化class。
??? 相应的就不会回将Driver注册到DriverManager上面,所以肯定不能通过DriverManager获取相应的连接。
??? ???

1 楼 xsbird 前天   测试了下,貌似不对 2 楼 dyy_gusi 前天   xsbird 写道测试了下,貌似不对
哪里不对,望指正

热点排行