zoukankan      html  css  js  c++  java
  • 类加载器双亲委派机制

    public class String {
        @Override
        public java.lang.String toString() {
            return "hello";
        }
    //双亲委派机制是安全的
        public static void main(String[] args) {
            String string = new String();
            string.toString();
        }
    }

     这就涉及到了双亲委派机制

    在介绍双亲委派机制的时候,不得不提ClassLoader。说ClassLoader之前,我们得先了解下Java的基本知识。  
      Java是运行在Java的虚拟机(JVM)中的,但是它是怎么就运行在JVM中了呢?我们在IDE中编写的Java源代码被编译器编译成.class的字节码文件。然后由我们得ClassLoader负责将这些class问价加载到JVM中去执行。  
      JVM中提供了三层的ClassLoader:

      • Bootstrap classLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。

      • ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展的jar。

      • AppClassLoader:主要负责加载应用程序的主函数类

    1.类加载器收到类加载的请求

    2.将这个请求向上委托给父类加载器去完成,一直向上委托,直到启动类加载器

    3.启动类加载器检查是否能够加载当前这个类,能加载就结束,使用当前的加载器,否则,抛出异常,通知子加载器进行加载

    4.重复步骤3

  • 相关阅读:
    搭建Android开发环境(linux x86_64)
    prisoner of love
    今天火箭和太阳打架了?
    归途,奋斗的起点
    年轻的希望
    老师:节日快乐!
    今天是我的生日吗?
    我亲爱的弟弟
    我的08,期盼09
    只是向往
  • 原文地址:https://www.cnblogs.com/IanIan/p/13840315.html
Copyright © 2011-2022 走看看