- 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是需要被初始化才能被使用的。