对类加载过程的通俗理解

news2024/9/23 9:34:37
开局一张图

一般来说,类加载分为:加载、验证、准备、解析、初始化 5个步骤。

各阶段略叙

1、加载

将.class文件加载进内存

2、验证

判断.class文件的格式是否正确

3、准备

为类的静态变量分配内存并设置初始值。只有b、c会在此阶段进行处理。

//没有被static修饰,所以不在此阶段进行处理。在“初始化”阶段处理
public int a=123//这种情况下,设置的初始值为0 
public static int b=123//如果被final修饰,则初始值为123  
public static final int c=123

4、解析

将常量池内的符号引用转换为直接引用。这个是啥意思?

假设一个场景,A类依赖B类。
在将A类的.java文件编译成.class文件时,还不知道B类的实际地址,所以只能临时用一个“符号”来代替。现在能够知道B类的实际地址了,所以要进行转换。

5、初始化

给普通变量赋初始值。注意此时的变量不包括类的静态变量。

后记

之前一直疑惑“创建对象和类加载是不是一回事”,通过深入了解,发现是一回事。over,下期见。

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

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

相关文章

移动端的帮助中心该如何设计?

随着移动互联网的发展,APP作为一种高效的营销工具,已经成为企业抢占移动端流量的重要手段。同时随着智能手机用户规模不断扩大,以及用户的消费逐渐向移动端转移,使得越来越多企业认识到 APP与其营销模式是成为互补的关系&#xf…

数据驱动未来:基于状态的维修在工业领域的前景

随着科技的不断进步,工业界正迎来一场革命,而其中的一颗明星是基于状态的维修(CBM)。这一技术正在改变工业维护的方式,通过实时数据分析和人工智能驱动,使维护从被动的、计划性的转变为主动的、预测性的。本…

基于多元宇宙算法优化的BP神经网络(预测应用) - 附代码

基于多元宇宙算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于多元宇宙算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.多元宇宙优化BP神经网络2.1 BP神经网络参数设置2.2 多元宇宙算法应用 4.测试结果:5…

3种清除logo的方法,使其干净整洁 自然无痕

信息爆炸的时代,我们每天都和图片打交道经常会遇到一些带有水印的图片。这些水印可能是品牌的标志或者是版权信息,但有时候它们会干扰到我们对图片的欣赏和使用。那么,怎么去掉图片logo水印呢? 毕竟影响图片美感,使用也不方便&a…

torch一些操作

Pytorch文档 Pytorch 官方文档 https://pytorch.org/docs/stable/index.html pytorch 里的一些基础tensor操作讲的不错 https://blog.csdn.net/abc13526222160/category_8614343.html 关于pytorch的Broadcast,合并与分割,数学运算,属性统计以及高阶操作 https://blog.csd…

Spring的基本概念

前言 Spring 究竟是什么?其实Spring简单来说就是一个包含众多工具方法的IOC容器。 那么什么是IOC呢? IoC Inversion of Control 翻译成中⽂是“控制反转”的意思. 既然Spring 是⼀个IoC(控制反转)容器,重点还在“容…

深度学习基本理论下篇:(梯度下降/卷积/池化/归一化/AlexNet/归一化/Dropout/卷积核)、深度学习面试

18、 请说明Momentum、AdaGrad、Adam梯度下降法的特点 Momentum、AdaGrad、Adam是针对SGD梯度下降算法的缺点的改进算法。在SGD算法中,如果函数的形状非均向(参数大小差异较大),SGD的搜索路径会呈“之字形”移动,搜索…

代码随想录打卡—day21—【二叉树】— 8.21

1 530. 二叉搜索树的最小绝对差 530. 二叉搜索树的最小绝对差 想法:先直接中序遍历(升序的序列)过程中相邻两个数的差值取min,自己写一次AC代码: /*** Definition for a binary tree node.* struct TreeNode {* …

JMETER基本原理

Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果; JMETER是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销大&#x…

基于springboot+vue的食材商城(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

ChatGLM的int8量化以及由此对量化的梳理总结

目录 一、ChatGLM的int8量化 二、全流程量化 三、量化校准 目前随着模型规模越来越大,对于没有很多算力的人来说,使用大模型的门槛越来越高,因此ChatGLM提供的模型支持,fp16、int8和int4的量化,来降低加载模型的显存…

Dockerfile制作Nginx应用镜像

文章目录 使用Dockerfile制作基于Centos7的Nginx应用镜像创建Dockerfile创建镜像上传镜像-harbor修改hosts文件修改daemon.json重启DOCKER登录并上传测试镜像 使用Dockerfile制作基于Centos7的Nginx应用镜像 创建Dockerfile FROM centos:7 MAINTAINER "WWW" RUN yu…

多维时序 | MATLAB实现SCNGO-BiLSTM-Attention多变量时间序列预测

多维时序 | MATLAB实现SCNGO-BiLSTM-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现SCNGO-BiLSTM-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现SCNGO-BiLSTM-Attention多变量时间序列预测。 模型描…

论文阅读_条件控制_ControlNet

name_en: Adding Conditional Control to Text-to-Image Diffusion Models name_ch: 向文本到图像的扩散模型添加条件控制 paper_addr: http://arxiv.org/abs/2302.05543 date_read: 2023-08-17 date_publish: 2023-02-10 tags: [‘图形图像’,‘大模型’,‘多模态’] author: …

阿里云服务器-修改ecs操作系统,把window系统跟换成Linux操作系统

其他sql格式也在更新中,可直接查看这个系列,要是没有你需要的格式,可在评论或私信我 总目录 目录-后期更新打算 hive的nvl中的子查询 总目录我这个是window,默认应该都是window,我需要改成Linux系统第一步&#xff…

伦敦金走势图行情值得关注

不知道大家是否了解过伦敦金这个投资品种,或者有否财经网站以及金融终端上看到过它的行情走势图。其实,伦敦金并不是一种实实在在的黄金,而是一种跟踪伦敦现货黄金市场价格走势的黄金保证金交易品种,它每天的行情走势变化&#xf…

基于springboot自习室预约管理

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

基于樽海鞘群算法优化的BP神经网络(预测应用) - 附代码

基于樽海鞘群算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于樽海鞘群算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.樽海鞘群优化BP神经网络2.1 BP神经网络参数设置2.2 樽海鞘群算法应用 4.测试结果:5…

第十五课、Windows 下打包发布 Qt 应用程序

功能描述:讲解了 Windows 下打包发布 Qt 应用程序的三种方法,并对比优缺点 一、利用 windepolyqt 工具打包发布 Qt 提供了一个 windeployqt 工具来自动创建可部署的文件夹。 打包发布流程: 1. 新建一个文件夹,将编译后的可执行…

基于缎蓝园丁鸟算法优化的BP神经网络(预测应用) - 附代码

基于缎蓝园丁鸟算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于缎蓝园丁鸟算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.缎蓝园丁鸟优化BP神经网络2.1 BP神经网络参数设置2.2 缎蓝园丁鸟算法应用 4.测试结果&…