java虚拟机自带类装载器,同时也允许用户自己制定多个类装载器。java虚拟机自带的类装载器有两个是很重要的,一个是启动类装载器,另外一个是系统类装载器。启动类装载器是所有类装载器的双亲链的最顶端,负责系统里一些核心类的装载,比如java.lang包中的类。
系统类装载器由java虚拟机的开发商实现,用来装载用户自定义的类。同时,系统类装载器也是用户自定义类装载器的默认双亲(parent)。
java类装载的过程遵循父类代理模式,也就是如果类装载器的父类能够装载的类,则一定要由父类装载器来实现装载。这种模式从根本上防止了系统的核心类被一些用户自定义的类装载器来装载,因为这些核心类都是启动类装载器所能够装载的,从而防止了一些恶意程序通过自定义类装载器来实现一些破坏性的功能。
类装载器和命名空间之间的关系。每一个类装载器有自己的一个独立的命名空间。各个命名空间里的类是相互不认识的。
java类装载器是java沙箱体系的重要组成部分,通过双亲代理,命名空间,权限设定等体系结构,有效的加强了java系统的安全性。