看视频时,类加载器没太理解,现在再整理下几个要点

 

类加载器负责把类加载到java虚拟机即JVM中,指定类的名称,类加载器就会定位这个类的定义,每一个java类必须由类加载器加载。

当启动JVM的时候,我们可以使用三个类加载器:引导类加载器、扩展类加载器、应用程序类加载器

1.引导类加载器仅仅负责加载核心的Java库,比如位于<JAVA_HOME>/jre/lib 目录下的vm.jar,core.jar。这个类加载器,是JVM核心部分,是用native代码写成的。

2. 扩展类加载器负责加载扩展路径下的代码,一般位于<JAVA_HOME>/jre/lib/ext  或者通过java.ext.dirs 这个系统属性指定的路径下的代码。这个类加载器是由sun.misc.Launcher$ExtClassLoader 实现的。

3.应用程序类加载器负责加载java.class.path(映射系统参数 CLASSPATH的值) 路径下面的代码,这个类加载器是由 sun.misc.Launcher$AppClassLoader 实现的。

当处理类加载器时,父委托模式是一个需要理解的关键概念,它规定:类加载器在加载自己的类之前,可以委托先加载父类,父类加载器可以是客户化的类加载器或引导类加载器。但是有一点很重要,类加载器只能委托自己的父类加载器,而不能是子类加载器,即只能向上不能向下。

自定义类加载器:虽然在绝大多数情况下,系统默认提供的类加载器实现已经可以满足需求。但是在某些情况下,您还是需要为应用开发出自己的类加载器。比如您的应用通过网络来传输 Java 类的字节代码,为了保证安全性,这些字节代码经过了加密处理。这个时候您就需要自己的类加载器来从某个网络地址上读取加密后的字节代码,接着进行解密和验证,最后定义出要在 Java 虚拟机中运行的类来。


转载于:https://www.cnblogs.com/dongdong230/p/4183118.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术是什么?

学编程的这段时间 。总会听到旁边的朋友 老师提起词&#xff0c;总不假思索的就这样过去。总认为它就是个词&#xff0c;没想过它到底是什么&#xff1f; 怎么衡量自己技术好还是坏&#xff1f;自己技术到了什么程度了&#xff1f; 突然觉得就像煮饭&#xff0c;要怎么做才能做…

漫画人工智能:人工智能简史

这是公众号推荐的第 8 篇好文来源&#xff1a;大鱼AI作者&#xff1a;Dr.Wu点击上方“大鱼AI”&#xff0c;选择“星标或置顶公众号”关键时刻&#xff0c;第一时间送达&#xff01;作者&#xff1a;武博士、宋知达、袁雪瑶、聂文韬本节我们会以生动有趣的漫画来介绍关于人工智…

字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

关于字符串的研究&#xff0c;目前已经有两篇。 原理篇&#xff1a;字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串 实践篇&#xff1a;字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来讲第三篇&#xff0c;如何应用上面所学内容&#xff0c…

Github上的各大高校资料以及国外公开课视频

2019 第 37 篇文章&#xff0c;总第 61 篇文章本文大约 1800 字&#xff0c;阅读大约需要 5 分钟最近发现兴起了一股在 Github 上大学的潮流&#xff0c;目前可以选择的大学包括清华、北大、上海交通大学、中国科学技术大学、中山大学&#xff0c;然后今天还发现还可以选择上国…

Python基础入门_2基础语法和变量类型

Python 基础入门系列第二篇&#xff0c;上一篇简单介绍了为什么用 Python&#xff0c;以及安装和配置环境。 这一篇将先介绍基础的语法&#xff0c;包括标识符&#xff0c;即变量名字&#xff0c;然后 Python 特色的缩进规则&#xff0c;注释、保留字等等&#xff0c;接着就是…

java解析bmp文件

最近想做一个图片查看器&#xff0c;因为bmp的图片简单些&#xff0c;也就从这个入手。 运用的基本知识还是IO的&#xff0c;关键是在于对于“协议”的理解。 一直觉得这些个协议是个很帅气的东西。感觉就像密码一样&#xff0c;你读到了一个文件&#xff0c;你只有知道对方的“…

不到20行代码,用Python做一个智能聊天机器人

这是小编推荐的第 11 篇好文来源&#xff1a;菜鸟学Python作者&#xff1a;小安和小编伴随着自然语言技术和机器学习技术的发展&#xff0c;越来越多的有意思的自然语言小项目呈现在大家的眼前&#xff0c;聊天机器人就是其中最典型的应用&#xff0c;今天小编就带领大家用不到…

详解div+css相对定位和绝对定位用法

1.定位的专业解释&#xff1a; (1)语法 position:static|absolute|fixed|relative 从上面语法可以看出&#xff0c;定位的方法有很多种&#xff0c;它们分别是静态(static)&#xff0c;绝对定位(absolute)&#xff0c;固定(fixed)&#xff0c;相对定位(relative)。在这个教程里…

Python基础入门_3条件语句和迭代循环

Python 基础入门前两篇&#xff1a; Python 基础入门–简介和环境配置Python基础入门_2基础语法和变量类型 这是第三篇内容&#xff0c;主要简单介绍条件语句和迭代循环语句&#xff0c;内容也比较简单&#xff0c;目录如下&#xff1a; 条件语句和迭代循环 1. 条件语句 Py…

排序算法比较总结

冒泡排序 每次从头开始&#xff08;每次结束可以不到最后&#xff0c;因为上一次已经确定最大值在末尾了&#xff09;&#xff0c;比较相邻两个数&#xff0c;每次下沉一个最大值。 123456789101112131415161718192021222324252627282930313233343536 #include <iostream>…

如果你还不了解GBDT,不妨看看这篇文章

作者&#xff1a;Freemanzxp简介&#xff1a;中科大研二在读&#xff0c;目前在微软亚洲研究院实习&#xff0c;主要研究方向是机器学习。原文&#xff1a;https://blog.csdn.net/zpalyq110/article/details/79527653Github&#xff1a;https://github.com/Freemanzxp/GBDT_Sim…

javascript 面向对象编程小记

虽然平常用jquery用的很熟&#xff0c;但是基本都是面向过程的写法。一个事件一个function&#xff0c;很少有面向对象的写法。今天得写一个日期控件&#xff0c;不得不用上面向对象编程。 刚开始我的想法是: var datepicker function(){return new datepicker.fn.init(); }da…