类装载器ClassLoader 、执行引擎ExecutionEngine【Java培训】

news2024/11/24 4:49:38

1. 定义

负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。

Java培训

2. 类加载器分类

  • 虚拟机自带的加载器
  • 启动类加载器(Bootstrap)C++
  • 扩展类加载器(Extension)Java
  • 应用程序类加载器(AppClassLoader)Java (也叫系统类加载器,加载当前应用的classpath的所有类)

Java培训

  • 用户自定义加载器
  • Java.lang.ClassLoader的子类,用户可以定制类的加载方式
  • 双亲委派与沙箱安全机制
  • 双亲委派机制:某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。
  • 沙箱安全机制:网络上有个名叫java.lang.Integer的类,它是某个黑客为了想混进java.lang包所起的名字,实际上里面含有恶意代码,但是这种 伎俩在双亲模式加载体系结构下是行不通的,因为网络类加载器在加载它的时候,它首先调用双亲类加载器,这样一直向上委托,直到启动类加载器,而启动类加载 器在核心Java API里发现了这个名字的类,所以它就直接加载Java核心API的java.lang.Integer类,然后将这个类返回,所以自始自终网络上的 java.lang.Integer的类是不会被加载的。

Java培训

  • 示例代码

package com.atguigu.jvm;

public class Demo01 {

private static final String NUMBER=”7″;

public static void test01() {     

}

public static void test02() {

         System.out.println(“trst02”);

}

    public static int add(int x,int y) {

    int result = -1;

    result = x + y;

         return result;

}

public static void main(String[] args) {

         Object obj = new Object();

         Demo01 d01 = new Demo01();

         String str = new String(“abc”);

         System.out.println(obj.getClass().getClassLoader());

         System.out.println(d01.getClass().getClassLoader().getParent().getParent());

         System.out.println(d01.getClass().getClassLoader().getParent());

         System.out.println(d01.getClass().getClassLoader());

}

}

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

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

相关文章

【现代机器人学】学习笔记六:闭链运动学

这一章的内容主要讲并联机器人的相关算法,内容在全书中属于比较少,仅仅介绍概念的章节。 恰好部门中有一位同事就是专门做并联机器人出身的博士,也请他帮忙看了一下内容,但他觉得写书的这个人可能也不是非常懂并联机器人&#xf…

Java集合——Collection

Collection集合 Collection接口下主要有三大子接口 List Queue Set 1. List List是有序可重复集合,根据索引下标来访问元素 List接口常见的三个实现类:ArrayList 、LinkedList、Vector 特点: 集合中的元素允许重复集合中的元素有序&…

UE4 Cook指定平台资源

内容烘焙 | 虚幻引擎文档 (unrealengine.com) 虚幻引擎以内部使用的特定格式存储内容资源,如PNG用于存储纹理 数据,WAV用于音频数据。但是,该内容需要针对各平台转换为不同的格式, 因为平台使用专有格式,或者平台不支…

Revit中“幕墙网格”编辑斜向网格和柱断墙梁

一、Revit中“幕墙网格”编辑斜向网格 我们可以为幕墙添加任意间距的水平和垂直的网格线,但是对于斜向网格线我们却只能通过设置其实例属性中的角度来控制其生成一系列等间距的斜向网格,那么如果遇到不等间距的斜向网格线我们应该如何绘制呢? 首先通过设…

博宜OJ练习题基础题目中个别问题的题(欢迎一起讨论)

中国博宜练习题个别问题,望讨论前言题目1解题思路提交后正确代码:个人写的错误代码题目2正确代码2个人写的错误代码2以上是个人目前遇到的两个问题,不知道是直接使用“max”函数的问题 还是什么,如果是“max”函数问题第一个测试点…

多线程与高并发(二)

【锁的底层实现】: 【 简介 】: JDK早期的时候是重量级的 , 会去找OS系统申请锁 ,效率非常低。 后来的改进——《锁升级过程》。 【锁升级过程】: sync( Object ) 【偏向锁】: markword记录这个线程ID&…

[附源码]Python计算机毕业设计Django基于JEE平台springbt技术的订餐系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

以太网 MSTP多实例生成树的简介、MSTP与RSTP、STP之间的联系、MSTP BPDU格式介绍、MSTP关键名词介绍)

2.12.0 以太网 MSTP多实例生成树(简介、MSTP与RSTP、STP联系、MSTP BPDU格式、MSTP关键名词介绍) 主要参考:华为S2750, S5700, S6700 V200R005(C00&C01&C02&C03) 产品文档 《MSTP基本概念》 MSTP快速生成树简介MSTP关键名词介绍1…

springboot+mybatis+mysql实现的个人博客管理系统(功能包含登录,栏目管理、文章管理、评论管理、系统设置、用户管理、发布博客、评论等)

博客目录springbootmybatis实现的个人博客管理系统实现功能截图系统功能使用技术代码完整源码springbootmybatis实现的个人博客管理系统 本系统是一个个人博客管理系统,比较新的框架springbootmybatis实现,分为普通用户和管理员,普通用户可以…

【软件测试】测试人接手新应用程序怎么测?看看这几个方法......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 应用程序很复杂的&a…

三、数据链路层(三)差错控制

目录 3.1检错编码 3.1.1奇偶校验码 3.1.2循环冗余码(CRC) 3.2纠错编码 3.2.1海明码 传输差错可分为两种: 位错:帧中某些位出现了差错,也称比特差错、误码。帧错:帧的丢失、重复或失序等错误。 通常利…

面试题:数据结构和算法

1、时间复杂度解释一下 算法的时间复杂度,用来度量算法的运行时间,记作: T(n) O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。 当 T(n) c,c 为一个常数的时候,我们说这个…

[附源码]Python计算机毕业设计Django基于vue+mysql开发的考试系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Java web 2022跟学尚硅谷(九)书城项目

Java web 2022跟学尚硅谷九书城项目需求分析数据库设计ER图书城1.0简单部署项目类图相关代码UserControllerUserDAOImplUserDAOBookCartItemOrderOrderItemUserUserServiceImplUserServiceapplicationContext.xml书城1.1实现功能1. 用户登录2. 首页图书列表展示3. 首页价格筛选…

Vue3-ElemenPlu,全栈开发后台系统1-1-2-9第一章,第二章前端系统架构设计

Vue3+ElementPlus Lo2+MongoDB 菜单按钮权限,JWT认证,审批流,常规的CRUD,模块化,组件化 技术栈: 架构设计,vue3全家桶,koa2, 权限: Role-Based A

[附源码]Node.js计算机毕业设计辅导员班级量化管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

IMX6启动流程

目录 1. 流程图 2. u-boot.imx的构造 1. 流程图 正常情况下,一台IMX6设备的启动路径就是图中自上而下最左边那条路: 启动/复位后先检查CPU的ID(每颗芯片独一无二) ------> 检查复位状态(有没有按下复位键) ------> 检查boot模式(mmc? USB? SPI…

ARM寄存器组织(常见专用寄存器、控制寄存器CPSR)

目录 一、寄存器的概念 1、什么是寄存器? 2、寄存器的分类 3、不同工作模式下使用的寄存器 二、常见专用寄存器 1、R15(PC,Program Counter) 2、R14(LR,Link Register) 3、R13(SP,Stack Pointer&am…

FineReport大数据分析工具- 统一切换轮播图表接口

1. 概述 1.1 版本 报表服务器版本 功能变动 11.0 - 1.2 预期效果 某些场景下,需要让一张报表内的多个轮播图表同时切换。那么该如何实现呢?效果如下图所示: 1.3 实现思路 按钮添加点击事件,通过 JS 脚本调用接口统一切换轮播…

【模拟电路】431基准电压源

项目简介 概述 431电压基准芯片为3脚稳压集成电路,431基准电压源具有良好的热稳定性能的,三端可调分流,也被称为电压调解器或三端取样集成电路。凭借体积小、重量轻、精度高、稳定可靠、基准电压精密可调、输出电流大,且价格便宜…