java类装载器都有自己的命名空间,每个装载器维护自己的命名空间。各个命名空间内的类互相访问是有限制的,必须进行授权。进行授权是基于安全目的考虑的。现在的问题是java的类装载体系采用的是双亲委派模型,即每个类都有自己的父装载器(根装载器Bootstrap除外)。当类装载器需要装载某个类时,首先委派自己的父装载器进行装载,父装载器再委托给它的父装载器进行装载,以此类推,当父装载器装载不了时,才有自己进行装载。根据开始的理路,当前类装载器与父装载器拥有不同的命名空间,因此它们装载的类之间互相访问是收访问限制的,这就导致了它们之间互相访问是受限制的。但考虑下基础类比如java.lang.Object在那个类装载器装载的类都可以进行访问?难道jvm事先进行了授权还是访问父装载器装载的类不需要授权。如果访问父装载器装载的自定义类,是否需要进行授权?父装载器装载的类访问子装载器装载的类呢?
关于类装载器命名空间的疑问?
最新推荐文章于 2023-12-18 08:17:14 发布