JVM的classLoader体系-一
JVM的classLoader体系-1命名空间:??不同的类加载器具有不同的命名空间?同一命名空间内,类的名称具有惟一性
JVM的classLoader体系-1
命名空间:
?
?不同的类加载器具有不同的命名空间?同一命名空间内,类的名称具有惟一性?同一命名空间内,类之间可以直接交互?不同命名空间之间,除非显示的提供交互的机制,是不能交互的
类加载器:?启动类加载器(Bootstrap classloader)?扩展类加载器(Extended classloader)?系统类加载器(Application classloader)?Bootstrap加载Extended和Application,Extended的父类为Bootstrap,由于Bootstrap是由C++语言编写,所以Extended的父类为null,Bootstrap在加载Application的时候,将其父类设置为Extended
每个类加载器所加载文件的目录:?每个类加载器所加载文件的目录:?可以通过方法:System.getProperty(String str);方法获得?Bootstrap:?? sun.boot.class.path?Extended:??? java.ext.dirs?Application:java.class.path
类加载器的委派模型:?类加载器总是委托其父类去加载所需要的文件?如果一个文件A引用另一个文件B,在没有自定义加载B的加载器的情况下,B类只能由A类的加载器或者其父类加载
?