Launcher类源码分析

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

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/webor2006/p/9240898.html

时间: 2024-10-06 12:41:00

Launcher类源码分析的相关文章

List 接口以及实现类和相关类源码分析

List 接口以及实现类和相关类源码分析 List接口分析 接口描述 用户可以对列表进行随机的读取(get),插入(add),删除(remove),修改(set),也可批量增加(addAll),删除(removeAll,retainAll),获取(subList). 还有一些判定操作:包含(contains[All]),相等(equals),索引(indexOf,lastIndexOf),大小(size). 还有获取元素类型数组的操作:toArray() 注意事项 两种迭代器Iterator和L

CCTextureCache类源码分析 (1)

CCTextureCache类源码分析(1): 1. CCTextureCache类: 这个类跟纹理缓存有关,我们跟着代码分析下这个类是怎么对纹理进行缓存的. /** Returns the shared instance of the cache * 单例 */ static CCTextureCache * sharedTextureCache(); 2.我们在创建精灵的时候会调用 CCTextureCache::sharedTextureCache()->addImage(pszFilen

CCTextureCache类源码分析(2)

CCTextureCache类源码分析(2): 在CCTextureCache类源码分析(1)中,我们分析了CCTextureCache如何实现 纹理缓存的,但是在分析的过程中,我们忽略了很多东西,比如CCImage类 如何加载纹理图片,这一篇我们分析一下CCImage: 源码分析: 1.CCImage继承自CCObject 2.成员变量,这些变量需要我们通过解析图片文件获得 unsigned char *m_pData; //图片数据 CC_SYNTHESIZE_READONLY(unsign

2020了你还不会Java8新特性?(四)Collector类源码分析

Collector类源码分析 jdk8是怎么对底层完成支持的.不了解底层,平时用还可以,但是遇到问题的时候就会卡在那里.迟迟灭有解决方案.在学习一门新技术时,先学习怎么去用,不要执着于源码.但是随着用的越来越多,你去了解底层是比较好的一种学习方法. 有多种方法可以实现同一个功能.什么方式更好呢? 越具体的方法越好. 减少自动装箱拆箱操作 collect : 收集器 Collector作为collect方法的参数. Collector作为一个接口.它是一个可变的汇聚操作,将输入元素累计到一个可变的

Cocos2d-X3.0 刨根问底(六)----- 调度器Scheduler类源码分析

上一章,我们分析Node类的源码,在Node类里面耦合了一个 Scheduler 类的对象,这章我们就来剖析Cocos2d-x的调度器 Scheduler 类的源码,从源码中去了解它的实现与应用方法. 直入正题,我们打开CCScheduler.h文件看下里面都藏了些什么. 打开了CCScheduler.h 文件,还好,这个文件没有ccnode.h那么大有上午行,不然真的吐血了, 仅仅不到500行代码.这个文件里面一共有五个类的定义,老规矩,从加载的头文件开始阅读. #include <funct

Cocos2d-X3.0 刨根问底(三)----- Director类源码分析

上一章我们完整的跟了一遍HelloWorld的源码,了解了Cocos2d-x的启动流程.其中Director这个类贯穿了整个Application程序,这章随小鱼一起把这个类分析透彻. 小鱼的阅读源码的习惯是,一层层地分析代码,在阅读Director这个类的时候,碰到了很多其它的Cocos2d-x类,我的方式是先大概了解一下类的作用,完整的去了解Director类,之后再去按照重要程度去分析碰到的其它类. 一点一点分析 CCDirector.h #ifndef __CCDIRECTOR_H__

C++卷积神经网络实例:tiny_cnn代码详解(11)——层结构容器layers类源码分析

在这篇博文中我们对tiny_cnn卷积神经网络模型中的最后一个网络结构方面的类--layers做简要分析. 首先,layers通俗的讲可以被称为是层结构的vector,即层结构容器.由于卷积神经网络是一个多层的网络模型,因此有必要将网络中各个层进行统一管理,这便引出了本篇博文中所要介绍的layers类.layers类是一个vector类型的变量,其中压入的元素就是网络中的各个层模型,这里给出一个简单的结构图,一目了然: 从上图中可以清晰的看到layers的vector结构,说白了就是一个层结构类

Request类源码分析

通过APIView进入找到Request的源码 可以看见一堆属性和方法,其中request.data其实是一个方法,被包装成一个属性 继续看__getattr__和query_params方法: 代码总结: Request其实就是原生request对象被包装后的Request,即重写了__getattr__,return getattr(self._request, attr) 比如:print(request.GET)就当于print(request.query_params) 原文地址:ht

Boolean类源码分析

Boolean类里面的常量: Boolean.TRUE:这个是调用Boolean的构造函数,新建了一个Boolean对象,所以TRUE是Boolean类型的.用来避免每次都创建新的Boolean对象,可以通过Boolean b =  Boolean.TRUE; public static finalBoolean TRUE = new Boolean(true); Boolean.FALSE:这个是调用Boolean的构造函数,新建了一个Boolean对象,所以FALSE是Boolean类型的.