类加载的过程(简单介绍)

news2024/10/6 22:25:31

目录

一、类加载过程一览

 加载:

验证:

准备:

解析:

初始化:

二:类加载器分类

启动类加载器(bootstrap class loader)

扩展类加载器(extensions class loader)

应用程序类加载器(application class loader)

自定义类加载器

三:类加载器的代理模式

双亲委派模型


一、类加载过程一览

 加载:

将硬盘上的Java二进制文件(class文件)转为内存中的Class对象

验证:

确保加载入内存的class文件没有问题

准备:

正式为类变量(static变量)分配内存并设置类变量初始值的阶段,这些内存都将在方法区中进行分配。注意此时的设置初始值为默认值,具体赋值在初始化阶段完成

解析:

虚拟机常量池内的符号引用替换为直接引用(地址引用)的过程。

初始化:

执行类变量(静态变量)的赋值动作和静态语句块(按定义的顺序从上往下执行)

1、父类的静态变量
2、父类的静态代码块
3、子类的静态变量
4、子类的静态代码块
5、父类的非静态变量
6、父类的非静态代码块
7、父类的构造方法
8、子类的非静态变量
9、子类的非静态代码块
10、子类的构造方法

二:类加载器分类

 

启动类加载器(bootstrap class loader)


(1)它用来加载 Java 的核心库(JAVA_HOME/jre/lib/rt.jar,sun.boot.class.path路径下的内容),是用原生代码(C语言)来实现的,并不继承自 java.lang.ClassLoader。
(2)加载扩展类和应用程序类加载器。并指定他们的父类加载器。

扩展类加载器(extensions class loader)


(1)用来加载 Java 的扩展库(JAVA_HOME/jre/ext/*.jar,或java.ext.dirs路径下的内容) 。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java类。
(2)由sun.misc.Launcher$ExtClassLoader实现。

应用程序类加载器(application class loader)


(1)它根据 Java 应用的类路径(classpath,java.class.path 路径下的内容)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。
(2)由sun.misc.Launcher$AppClassLoader实现。

自定义类加载器


(1)开发人员可以通过继承 java.lang.ClassLoader类的方式实现自己的类加载器,以满足一些特殊的需求。

三:类加载器的代理模式

双亲委派模型

它是首先尝试去加载某个类,如果找不到再代理给父类加载器

 

 

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

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

相关文章

Nginx外网访问内网如何实现

1、背景 项目要求:将甲方内网的项目能够对外访问,甲方提供一个中间过渡服务器,中间过渡服务器与外网互通,且中间服务器可以访问内网; 外网客户端->中间过渡服务器开放端口:80 中间过渡服务器->内网服…

Cadence Allegro PCB设计88问解析(三十一) 之 Allegro 中 打印(Plot)设置

一个学习信号完整性仿真的layout工程师 在PCB进行投板时,往往会打印一下装备层(Assembly),给贴片,用于核对器件的信息等。下面简单介绍Allegro中打印(Plot)设置。 1. 在Allegro的菜单下选择File命令,点击Plot Setup,会…

无线振弦采集仪应用于岩土工程安全监测的解决方案

无线振弦采集仪应用于岩土工程安全监测的解决方案 随着现代岩土工程的发展,工程规模越来越大,地质灾害频发,安全监测成为岩土工程的重要组成部分。传统的安全监测方法存在一些局限性,如无法实时监测,监测精度不高等问…

途乐证券-沪指震荡跌0.25%,半导体等板块走弱,地产等板块拉升

19日早盘,沪指窄幅震动下探,深成指、创业板指均走低;两市半日成交约4300亿元,北向资金净卖出超40亿元。 截至午间收盘,沪指跌0.25%报3189.81点,深成指跌0.51%,创业板指跌1%;两市合计…

《2023购物中心运营数字化白皮书》正式发布!|爱分析报告

在国家政策鼓励线下实体经济发展、鼓励消费的大背景下,购物中心的发展潜力巨大。但另一方面,随着行业进入存量时代,竞争愈发激烈,品牌扩张乏力,购物中心招商压力增大。以数字化手段加持的精细化运营,成为购…

侦听器watch

在代码逻辑中监听某个数据的变化&#xff0c;这个时候就需要用侦听器 watch 来完成了&#xff1b; 1.data的watch <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge&q…

备战秋招 | 笔试强训6

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、十进制变量i的值为100&#xff0c;那么八进制的变量i的值为&#xff08;&#xff09; A. 146 B. 148 C. 144 D. 142 2、执行下面语句后的输出为 int I1; if(I<0)printf("****\n") …

Java框架 Mybatis入门

0目录 Java框架Mybatis 1..框架介绍 2.Mybatis实战 1.框架介绍 补充MVC思想 为什么使用框架&#xff1f; 效率高&#xff0c;成本低 框架是别人写好的&#xff0c;可以直接调用 框架是基于MVC的思想 框架包中含有MVC思想的所有组成模块&#xff1a;控制层&#xff1b;模型…

zabbix 企业级监控(1) 监控自己

重点一 Zabbix简介在企业网络运维过程中&#xff0c;管理员必须随时关注各服务器和网络的运行状况&#xff0c;以便及时发现问题&#xff0c;尽可能减少故障的发生。当网络中的设备&#xff0c;服务器等数量较多时&#xff0c;为了更加方便&#xff0c;快捷的获得监控信息&…

欧姆龙CP系列PLC以太网通讯欧姆龙cp1e怎么用以太网通讯

大家好&#xff0c;今天要和大家分享的是一款在工控领域中非常实用的产品——捷米特JM-ETH-CP转以太网模块。这款模块采用了即插即用的设计&#xff0c;不仅不会占用PLC的通讯口&#xff0c;而且可以通过复用接口让触摸屏与PLC进行通讯。这个设计真的非常巧妙&#xff0c;相信会…

7-Spring cloud之路由网关zuul

7-Spring cloud之路由网关zuul 1. 前言2. 关于zuul2.1 zuul基本原理2.2 为什么要使用zuul 3. 搭建zuul3.1 项目结构3.2 基本配置3.2.1 pom文件3.2.2 yml文件3.3.3 启动类 3.3 测试看效果3.3.1 演示3.3.1 架构图 4. zuul路由访问映射规则4.1 映射服务提供者的服务名4.2 访问加前…

概率论的学习和整理--番外13:一个经典dubo模型的概率计算等

目录 1 经典模型知识科普 1.1 知识来源 1.2 下面是摘取的部分规则 2 这个经典dubo的概率和期望 2.1 网上计算的概率&#xff0c;期望全是负&#xff0c;赌徒悲剧 2.2 为什么会这样呢 3 假设把下注庄家不抽水&#xff0c;获得100%收益而不是95&#xff0c;多少次后可以赢…

桥梁监测需要哪些设备?

随着我国经济的发展&#xff0c;我国桥梁建设也迈上了新的台阶。截至2022年底&#xff0c;我国的公路桥梁总数达到了103.32万座。然而&#xff0c;随着在役桥梁使用时间的增长&#xff0c;承载能力受到荷载、环境以及结构退化等因素的影响&#xff0c;桥梁安全问题日益凸显。桥…

生成式AI管理规则落地 大模型后时代到来

国家网信办等七部门联合颁布的《生成式人工智能服务管理暂行办法》&#xff0c;给中国生成式AI产业树立了发展规范。 这份监管文件的用意并不止于管控&#xff0c;还用大量的笔墨传递出推动产业发展的原则&#xff0c;尤其强调“鼓励生成式人工智能技术在各行业、各领域的创新…

Unity 锚点 Anchors的通俗易懂详解

一、锚点Anchors是什么 当你在Canvas下建子物体的时候&#xff0c;选中子物体就会自带四个△&#xff0c;如下 这个三角也可以是分开的&#xff0c;如下 值得一提的是&#xff0c;这四个三角只能组成一个矩形&#xff0c;或者一个点&#xff0c;例&#xff08;矩形&#xff09…

YOLO数据集实现数据增强的方法(裁剪、平移 、旋转、改变亮度、加噪声等)

前言 最近我在做论文实验时从MSCOCO数据集中筛选了符合条件的1260张图片&#xff0c;但数据样本太少了&#xff0c;于是我就利用数据增强的方法实现了带标签的样本扩充&#xff0c;最后扩充为7560张图片。本文就来记录一下过程&#xff0c;有不懂的地方欢迎留言噢~ 目录 前言…

40.构造函数与析构函数

目录 1.构造函数 构造函数在以下情况被调用&#xff1a; 构造函数可以具有以下特点&#xff1a; 下面是一个简单的示例代码&#xff0c;展示了一个类的构造函数的定义和用法&#xff1a; 构造函数的特征 2.析构函数 析构函数的声明和定义如下&#xff1a; 以下是一…

信息安全-1网络信息安全概述

文章目录 一、概述1.1 网络安全现状 二、 网络信息安全现状与问题三、网络安全防御3.1 基本属性3.2 安全目标和功能 四、基本技术4.1 基本技术4.2 管理内容&方法4.2.3 管理要素&#xff1a; 五、信息安全管理流程六、法律法规 对网络安全和信息化工作作出重要指示 昨天突然…

OOM--除堆栈溢出外,其他几种溢出

从实践经验的角度出发&#xff0c;在处理小内存或者32位的应用问题时&#xff0c;除了Jaya堆和方法区之外&#xff0c;我们注意到下面这些区域还会占用较多的内存&#xff0c;这里所有的内存总和受到操作系统进程最大内存的限制: 直接内存:可通过-XX:MaxDirectMemorySize调整大…

CS 144 Lab Zero -- 可靠的内存字节流

CS 144 Lab Zero -- 可靠的内存字节流 环境搭建使用socket写一个网络程序In-memory reliable byte stream 对应课程视频: 【计算机网络】 斯坦福大学CS144课程 Lab 0 对应的PDF: Lab Checkpoint 0: networking warmup Lab 0 会省去Telnet部分内容。 环境搭建 Run Ubuntu ver…