開始:看名字都帶有ClassLoader,叫做類加載器,事實上是可以理解為動態的加載類,不過,也不是只能加載類,也可以加載其他形式的文件,比如說.properties屬性文件。
區別:其實在兩個類加載器有一點小區別,就在於能夠加載的類存放的位置,從JDK源碼上來看其實是URLClassLoader繼承了ClassLoader,也就是說URLClassLoader把ClassLoader擴展了一下,所以可以理解成URLClassLoader功能要多點。ClassLoader只能加載classpath下面的類,而URLClassLoader可以加載任意路徑下的類。他們的繼承關系如下:
public class URLClassLoader extends SecureClassLoader {} public class SecureClassLoader extends ClassLoader {}
寫個小例子測試一下:
首先在classpath和另外在根目錄的webroot文件夾下面新建一個文件:都叫Jay.properties,內容不一樣以示區別。