zoukankan      html  css  js  c++  java
  • jvm的双亲委派机制 一

    先上一段代码:

    main方法:

    package com.sailmalan.malan.controller;
    
    /**
     * 功能描述 原子操作 atomic类 java.util.concurrent.atomic
     *
     * @author yaoqihui
     * @version 2021/7/3
     * @see [相关类/方法]
     * @since [malan-rabbitmq]
     */
    public class Test {
    
        public static void main(String[] args) {
            java.lang.String str=new java.lang.String();
            System.out.println("双亲委派机制代码演示===");
        }
    }

     

    其中我们在定义一个String类,如下:在项目下建立包:java.lang:

    然后看看执行main方法,看看输出是否在控制台顺序输出:我是自定义String类,双亲委派机制代码演示===

    结果并不是我们想象的结果!!!为啥?明明我们在main方法已经引入:java.lang包,意思是已经制定引入的自定义String类,为啥???

    这就是双亲委派机制!!!下面详细讲解(涉及到引导类的问题):我们先看一个图:

    图解析为:系统类加载器(jvm的默认加载器),系统加载器开始加载java.lang.String类,开始委托了上一个  扩展类加载器,扩展类加载器再向上委托 引导类加载器,即这些加载器有多少个父类加载器,就以此递归直到最顶层的加载器,jvm只有三个加载器,所以这里最顶层的加载器是 引导类加载器。

    图一:

    图二:

    看到最后的图二,恍然大悟!!!原来引导类加载器(Bootstrap ClassLoader)强制加载 java 开头的类

  • 相关阅读:
    查询缓存
    Indexes
    计院生活第三章 狂轰乱炸(上)
    JAVA实现文件树
    OGNL表达式语言介绍
    DOM4J使用教程
    css 优先级
    《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
    Drools 规则引擎
    OLTP和OLAP区别
  • 原文地址:https://www.cnblogs.com/qq1141100952com/p/14992867.html
Copyright © 2011-2022 走看看