zoukankan      html  css  js  c++  java
  • 不同的类加载器作用与加载动作分析

    在之前【http://www.cnblogs.com/webor2006/p/8905978.html】理论上的介绍了一下关于类加载的一个层次体系,回顾一下:

    那如何来验证上图的这种关系呢?下面用代码来验证,如下:

    实验一:

    那先来看一下这个方法的一个官方说明:

    关于这句话的含义其实可以从如下图中可以看出:

    而简单看一下它的具体实现:

    好对方法有了简单了解之后,回到代码上来:

    在运行之前先来查看一下getParent()的官方说明:

    再来看一下它的具体实现:

    好~~再回来看一下代码的输出:

    是不是跟开篇贴的层次图是一样的。其中系统类加载器也叫应用类加载器,为什么呢?

    秒懂了吧,好接下来再来看另外一个实验:

    实现二:

    这次又用到了一个新的API,所以先了对它做个初步的了解:

    好,那咱们来将这个类加载器打印出来看一下会是啥:

    这样两者就关联上了,接下来去加载一个资源,这里的资源就以工程中的字节码class文件的加载为例,如下:

    这里又有一个新的API,如下:

    【注意】:上两个图片中的资源名称中的classloader写错了,写成了classloadder,人懒这里就不修改了,做个说明~~

    当然也先了解一下这个方法:

    好,继续回到代码:

    通过上面的实例发现有多种获取ClassLoader的方式,下面总结一下:

    其中最后一种方式用得比较少,了解一下既可。下面再来看一下对于不同的类它所对应的类加载器都是什么,其实之前就已经做过实现,这里再来回顾一下:

    因为:

  • 相关阅读:
    set的使用
    dict的使用
    tuple的使用
    Python数据类型字符串
    spring与redis集成之aop整合方案
    MySQL 对于大表(千万级),要怎么优化呢?
    MYSQL千万级数据量的优化方法积累
    Java:按值传递还是按引用传递详细解说
    常用正则表达式
    Java中equals和==的区别
  • 原文地址:https://www.cnblogs.com/webor2006/p/9029910.html
Copyright © 2011-2022 走看看