- 1、装载一个类并且对其进行实例化的操作。
- 2、装载过程中使用到的类加载器是当前类。
为了详细描述,Class.forName()方法,这里使用classLoader.loadClass()进行对比描述
- a)Class.forName(String className)使用装载当前类的类装载器来装载制定的类,因为class.forName(String name)方法内部调用了Class.forName(className,true,this.getClass().getClassLoader())方法。
- b)classLoader.loadClass(StringclassName,boolean resolve);需要手动制定装载器的实例。
- c)Class.forName(className)装载的class已经被实例化,classLoader.loadClass().则只是将信息装载给JVM。
- d)在JDBC中Class.forName(“com.mysql.jdbc.Driver”),如果换成getClass().getClassLoader().loadClass(“com.mysql.jdbc.Driver”),就不可以,因为它只是想JVM装载了Driver的类信息,但是没有实例化,也就不能执行相应的操作,因为Driver是需要被初始化才能被使用的。
本文深入探讨了Java中Class.forName()方法与classLoader.loadClass()的区别,解释了类的加载与实例化过程,以及在JDBC中如何正确使用类加载器。
625

被折叠的 条评论
为什么被折叠?



