zoukankan      html  css  js  c++  java
  • Launcher类源码分析

    基于上一次获取系统类加载器这块进行分析:

    关于这个方法的javadoc在之前已经阅读过了,不过这里再来仔细阅读一下加深印象:

    这里有一个非常重要的概念:上下文类加载器:

    它的作用非常之大,在后面会详细进行学习,先有个印象。

    接着来看一下它的具体实现:

    再来看一下是如何初始化的:

    所以接下来将焦点定位到获取Launcher实例上:

    那有没有办法获得它的源代码呢?当然有,这里就需要用到一个开源版本的JDK,叫Open Jdk,它跟Oracle的JDK90%以上的代码是一模一样的,它的网站是:openjdk.java.net,如下:

    除此之外还有一个比较好浏览源代码的网站:grepcode.com,如下:

    然后在里面搜一下咱们要查看的Launcher类:

    好,接下来细读一下它的源码:

    首先看一下具体获取扩展类的代码:

    所以为啥之前在打印相关系统加类加器路径时会用到了“java.ext.dris”系统属性了,原因就是来自于源代码。

    接着就回到了主流程:

    另外我们看一下ExtClassLoader的继承体系:

    所以其最终都是继承至ClassLoader,这次先分析到这,下次继续。

  • 相关阅读:
    Nginx报400 Bad Request
    当前系统代理不是安全代理,是否信任
    nginx反向代理解决跨域问题
    SQL Prompt快捷键
    本地SQL Server怎么连接服务器上的数据库
    进制之间的转换
    计算机知识汇总
    C#语言学习记录
    excel常用技巧
    T-SQL学习记录
  • 原文地址:https://www.cnblogs.com/webor2006/p/9240898.html
Copyright © 2011-2022 走看看