Java之类的生命周期

1.加载(Loading)

Java虚拟机(JVM)通过类加载器根据类的全限定名通过不同渠道以二进制流的方式获取字节码信息并读取到内存中。类加载器在加载完类之后,Java虚拟机会将字节码中的信息保存到方法区中,生成一个InstanceKlass对象。同时,Java虚拟机还会在堆中生成一份与方法区中数据类似的java.lang.Class对象

类信息对象存储区域描述
InstanceKlass对象方法区保存类的所有信息,里面还包含实现特定功能比如多态的信息
java.lang.Class对象堆区作用是在Java代码中去获取类的信息以及存储静态字段的数据(JDK8之后静态字段数据保存在堆区)

2.连接(Linking)

子阶段描述
验证(Verification)验证字节码信息是否满足《Java虚拟机规范》,如文件格式验证、元信息验证、验证程序执行指令的语义、符号引用验证
准备(Preparation)为静态变量赋初始值(注:fianl修饰的基本数据类型,准备阶段会直接将代码中的值进行赋值)
解析(Resolution)将常量池中的符号引用替换成指向内存的直接引用

3.初始化(Initialization)

会执行静态代码块中的代码,并为静态变量赋代码中的值(二者执行顺序取决于代码编写的顺序)。即执行字节码文件中clinit部分的字节码指令。如果类有父类,那么父类的clinit方法会先于子类的clinit方法执行

几种方式会导致类的初始化:
(1)访问一个类的静态变量或者静态方法,注意变量是final修饰的并且等号右边是常量的不会触发初始化
(2)调用Class.forName(String className)
(3)new一个该类的对象时
(4)执行main方法的当前类

4.使用(Using)

在类的初始化完成后,类的信息就准备好了,可以被程序中的其他部分使用。这包括访问类的静态字段、调用类的静态方法,或者创建类的实例等

5.卸载(Unloading)

卸载是类生命周期的最后一个阶段,当类不再被JVM中的任何对象引用时,类加载器会负责将这个类从内存中卸载掉。这个过程是垃圾回收(GC)的一部分,由JVM自动完成,不需要程序员手动干预

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

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

相关文章

SVD求解超定方程

SVD求解超定方程: 正交矩阵的保范性:乘一个正交矩阵,其模大小不变,可以想象成乘一个旋转矩阵。 ∥ A x − b ∥ 2 2 ∥ U [ Σ 0 ] V T x − b ∥ 2 2 (两边同时乘 U T ,不改变模大小) ∥ [ Σ 0 ] V T x…

【PCIe】P2P DMA

PCIe P2P (peer-to-peer communication)是PCIe的一种特性,它使两个PCIe设备之间可以直接传输数据,而不需要使用主机RAM作为临时存储。如下图3的走向 比如EP1要发送和数据给EP2,操作流程如下: 1. 打开EP1的dma控制器;--client侧 …

配置jupyter时出现问题?怎么办?

在自己创建的虚拟环境(nmjpytorch)安装完jupyter,没有跳转到链接,问题如图: 解决方法: 1、查看自己的tornado版本为5.1.1,坑太高了,降低版本为4.5.3 2、卸载tornado-5.1.1 3、安装t…

首个早上提档晚上撤档的电影-《野孩子》——浔川电影报

同一天提档又撤档! 7月3日晚上10点,电影野孩子 发声明官宣撤档,“由于后期进度原因,电影《野孩子》将取消7月10日的公映安排,我们向各影管院线的同仁及所有观众朋友们致以最诚挚的歉意,谢谢大家这段时间的…

firewalld(7)NAT、端口转发

简介 在前面的文章中已经介绍了firewalld了zone、rich rule等规则设置,并且在iptables的文章中我们介绍了网络防火墙、还有iptables的target,包括SNAT、DNAT、MASQUERADE、REDIRECT的原理和配置。那么在这篇文章中,将继续介绍在firewalld中的NAT的相关配…

git常用命令速查表

Git相关概念简述 版本库:git在本地开辟的一个存储空间,一般在 .git 文件里。工作区(workspace): 就是编辑器里面的代码,我们平常开发直接操作的就是工作区。暂存区(index/stage):暂时存放文件的…

如何用Python实现三维可视化?

Python拥有很多优秀的三维图像可视化工具,主要基于图形处理库WebGL、OpenGL或者VTK。 这些工具主要用于大规模空间标量数据、向量场数据、张量场数据等等的可视化,实际运用场景主要在海洋大气建模、飞机模型设计、桥梁设计、电磁场分析等等。 本文简单…

告别写作难题,这些AI写作工具让你文思泉涌

在现实生活中,除了专业的文字工作者,各行各业都避免不了需要写一些东西,比如策划案、论文、公文、讲话稿、总结计划……等等。而随着科技的进步,数字化时代的深入发展,AI已经成为日常工作中必不可少的工具了&#xff0…

学习LLM的随笔

1、信息量、信息熵、交叉熵和困惑度 注:因为真实分布的概率为1,所以在分类任务中交叉熵可以简化为上述形式。 (1)信息熵:信息熵中使用 l o g 2 ( p ( x ) ) log_2(p(x)) log2​(p(x)) 来表示对 x x x 编码需要的…

Linux Vim 最全面教程(Linux)

文章目录 前言一、vim工作模式1、命令模式2、编辑模式3、末行模式 二、常用其他按键说明总结 前言 vim是一款功能文本编辑器,也是早年vi编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。代码补全、编译和错误跳转等…

torch.where()

API和用法: torch.where(condition, x, y) -> Tensorcondition:判断条件,一个布尔类型的张量,表示条件。 若当前index满足条件,则取x中index对应的元素 若当前index不满足条件,则取y中index对应的元…

二叉树基础

一.树 1.树的定义 在计算机科学中,树是一种用于表示层次结构的抽象数据类型和非线性数据结构。树由一组节点(Nodes)和节点之间的关系(通常通过边表示)组成。 2.特性 树是一种递归的数据结构:树可以定义为…

论文学习笔记1:Federated Graph Neural Networks: Overview, Techniques, and Challenges

文章目录 一、introduction二、FedGNN术语与分类2.1主要分类法2.2辅助分类法 三、GNN-ASSISTED FL3.1Centralized FedGNNs3.2Decentralized FedGNNs 四、FL-ASSISTED GNNS4.1horizontal FedGNNs4.1.1Clients Without Missing Edges4.1.1.1Non-i.i.d. problem4.1.1.2Graph embed…

超详细!大模型面经指南(附答案)

目录 大模型(LLMs)基础面 1. 目前 主流的开源模型体系 有哪些? 2. prefix LM 和 causal LM 区别是什么? 3. 涌现能力是啥原因? 4. 大模型LLM的架构介绍? 大模型(LLMs)进阶面 1. l…

3d模型成组后可以弯曲嘛?---模大狮模型网

在展览3D模型设计领域,创新与技术不断推动着模型的复杂性和功能性。一个常见的问题是,当3D模型成组后,是否可以灵活地弯曲或调整形态?本文将深入探讨这一问题,并探索现代设计中的可能性与挑战。 一、灵活性与设计需求 3D模型在展…

小白学webgl合集-绘制有透视颜色不一样的立方体

效果 原理 结合透视矩阵和视觉矩阵进行绘制 知识点 01透视矩阵 透视矩阵将视图空间中的坐标转换为裁剪空间中的坐标,使得更远的物体看起来更小。 function perspectiveMatrix(fov, aspect, near, far) {const f 1.0 / Math.tan(fov / 2);const nf 1 / (near …

德旺训练营称重问题

这是考小学的分治策略,小学的分治策略几乎都是分三组。本着这个策略,我们做看看。 第一次称重: 分三组,16,16,17,拿两个16称,得到A情况,一样重,那么假铜钱在那组17个里面。B情况不…

亚马逊SC账号升级VC账号的新浪潮已然席卷整个电商界!

当前电商市场竞争激烈,亚马逊卖家追求业务增长。现有Amazon SC账号卖家有机会升级为VC账号,提供重要机遇。 SC账号是亚马逊常见卖家类型,为众多个人和企业提供销售平台。而VC账号则代表与亚马逊更紧密的合作关系,享有更多优惠、广…

Linux系统之安装Firefox浏览器

Linux系统之安装Firefox浏览器 一、Firefox浏览器介绍1.1 Firefox浏览器介绍1.2 Firefox浏览器特点 二、环境介绍二、本次实践环境介绍2.1 环境规划2.2 本次实践介绍 三、安装firefox浏览器3.1 安装epel3.2 检查yum仓库状态3.3 安装Firefox浏览器3.4 查看Firefox版本 四、在命令…

【图书推荐】《HTML5+CSS3 Web前端开发与实例教程(微课视频版)》

本书用来干什么 详解HTML5、CSS3、Flex布局、Grid布局、AI技巧,通过两个网站设计案例提升Web前端开发技能,为读者深入学习Web前端开发打下牢固的基础。 配套资源非常齐全,可以当Web前端基础课的教材。 内容简介 本书秉承“思政引领&#…