命名空间:
•不同的类加载器具有不同的命名空间
•同一命名空间内,类的名称具有惟一性
•同一命名空间内,类之间可以直接交互
•不同命名空间之间,除非显示的提供交互的机制,是不能交互的
类加载器:
•启动类加载器(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类的加载器或者其父类加载