1.可以确保Java核心库的类型安全:所有的Java应用都至少会引用java.lang.Object类,也就是说在运行期,java.lang.Object这个类会被加载到Java虚拟机;如果用户自定义的类加载器可以加载Object类,那么很可能就会在JVM中存在多个版本的java.lang.Object类,而且这些类之间还是不兼容的,相互不可见的(正是命名空间在发挥着作用)。借助于双亲委托机制,Java核心类库中的类加载工作都是由启动类加载器来同意完成加载工作,从而确保了Java应用所使用的都是同一个版本的Java核心类库,他们之间是相互兼容的;

2.可以确保Java核心类库所提供的类不会被自定义的类所替代。假设我们自己定义了一个java.lang.Object,这个类是无法被加载到JVM中的,因为系统启动时,首先会由启动类加载器加载rt.jar包中的java.lang.Object,之后我们的类在被加载时会因为名字相同而被认为是已经加载过了,不会进行加载。  

3.不同的类加载器可以为相同名称(binary name)的类创建额外的命名空间,相同名称的类可以并存在Java虚拟机中,只需要用不同的类加载器来加载它们即可。不同的类加载器所加载的类是不兼容的,这相当于在JVM中创建了一个又一个相互隔离的Java类空间,这类技术在很多框架中都得到了实际应用(比如OSGI)

最新文章

  1. 自己实现简单的string类
  2. Python无聊的总结
  3. bzoj3192 [JLOI2013]删除物品
  4. Python是编译运行的
  5. nagios plugin 开发
  6. Hibernate从入门到精通(十)多对多单向关联映射
  7. .net mvc Authorization Filter,Exception Filter与Action Filter
  8. ASM丢失disk header导致ORA-15032、ORA-15040、ORA-15042 Diskgroup无法mount
  9. python之路——面向对象
  10. cookie的增删改查函数
  11. [翻译] 使用 Python 创建你自己的 Shell:Part II
  12. Monkey
  13. react native (1) 新建页面并跳转
  14. shiro授权测试
  15. MySQL的log_bin和sql_log_bin 的区别
  16. bzoj4448 情报传递
  17. WPF和js交互 调用窗体中的方法
  18. SMS
  19. Vue之双向绑定原理动手记
  20. FreeBSD查看即时网络流量

热门文章

  1. 牛客小白月赛12 D 月月给华华出题 (欧拉函数,数论,线筛)
  2. z-index无效失效的解决
  3. zencart清空产品商品实用命令
  4. 测试工具jmeter
  5. Task底层实现原理探秘
  6. 帝都之行9day:正式上班第一天
  7. docker限制容器日志大小
  8. matlab函数 bsxfun浅谈(转载)
  9. Java Web项目案例之---登录注册和增删改查(jsp+servlet)
  10. AcWing:109. 天才ACM(倍增 + 归并排序)