【JVM】类的生命周期

目录

类的生命周期

加载阶段

连接阶段

初始化阶段

类的使用阶段

类的加载阶段


类的生命周期

加载阶段

在加载阶段,类加载器首先会通过一个类的全限定名来获取定义此类的二进制字节流。这个步骤主要是将整个Class 文件解析成二进制流。

全限定名是指一个 java 类的完全限定名,例如,对于类  java.lang.String , 其限定名就是

java.lang.String , 全限定名 是在整个 JVM 中绝对名称,可以表示 Class 文件结构的类或接口

的名称

然后,将这个字节流所代表的静态存储结构转化为方法区的运行时数据区,即将字节流的数据存入运行时数据区

最后,在java堆中生成一个代表这个类的 java.lang.Class 对象,作为方法区中这些数据的访问接口。

连接阶段

类的连接阶段是类加载过程的第二个阶段,包括 验证,准备,和解析三个阶段。

1. 验证阶段

验证阶段用于检验被加载的类是否正确的内部结构,并和其他类协调一致。

2. 准备阶段

类准备阶段负责类的静态属性分配内存,并设置默认初始值。

3.解析阶段

将类的二进制数据中的符号引用替换成直接引用

初始化阶段

类的初始化阶段是类的加载过程的最后一个阶段,在这个阶段,JVM 会执行类初始化方法()。该方法由java编译器生成,并由 JVM 调用,程序开发者无法定义同名方法,也无法直接在java程序中调用该方法。该方法包含类静态成员的赋值语句以及 static 语句块合并产生。

类的使用阶段

在类的使用阶段,对象被创建并被赋予特定的初始状态和行为。具体来说,使用阶段的开始标志是JVM 执行到 new 关键字或者使用双冒号(::)进行类的反射调用。在对象的初始化过程中,如果有多个初始化块,那么这些初始化块会按照在源代码中出现的顺序执行。在类的使用阶段,对象可以调用其方法,并使用其属性。

类的卸载阶段

当一个类不再被使用时,他会被卸载,释放其所占用的空间。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于OCR的包装产品生产日期识别系统

基于OCR的包装产品生产日期识别系统 背景技术方案PaddleOCR模型应用数据挑战与解决方案优化策略 项目实施步骤结果与展望 背景 在工业生产中,产品包装上的生产日期信息是至关重要的,它关系到物资的时效性和质量。为了更快、更准确地提取这些信息&#x…

便捷特惠的快递寄件快递物流折扣平台 ,通常都有什么常见问题?

首先,最重要的一点是怎么寄快递更便宜? 我们在寄快递时,尽量把包裹压缩空间大一点,这样在体积上面就会减少一部分的费用呢,另外就是选择有优惠的平台下单。例如在闪侠惠递平台下单,单单打折,单…

Redis分布式锁--java实现

文章目录 Redis分布式锁方案:SETNX EXPIRE基本原理比较好的实现会产生四个问题 几种解决原子性的方案方案:SETNX value值是(系统时间过期时间)方案:使用Lua脚本(包含SETNX EXPIRE两条指令)方案:SET的扩展…

python爬虫,验证码识别,携带cookies请求

古诗词网案例!!! 识别验证码类型: # 此处用到的图片验证码识别网址为:http://ttshitu.com/ 图鉴 import base64 import json import requests # 一、图片文字类型(默认 3 数英混合): # 1 : 纯数字 # 1001&…

@PreAuthorize注解

前言:RuoYi框架中,菜单管理的权限标识字段通常用于定义用户对特定菜单或操作的访问权限。 这个权限标识字段通常会被用在两个地方: 1. 后端:在Spring Security的PreAuthorize注解中,用于控制对特定方法的访问。例如&am…

JavaScript 异步编程解决方案-中篇

天下事有难易乎? 为之,则难者亦易矣;不为, 则易者亦难矣。人之为学有难易乎? 学之,则难者亦易矣;不学,则易者亦难矣。 async 函数 和promise then的规则一样 async function fun() …

ORA-12541:TNS:无监听程序

1.重新配置监听 找到监听程序配置,右键已管理员身份运行 选择第二个:重新配置 这个一般没什么好选的 默认选定的协议TCP,继续下一步 默认的否 继续下一步,完成监听重新配置 之后进行测试看能否连上 2.本地Net服务名配置 …

HTML--表格

表格的基本结构 表格标题&#xff1a;caption 表格&#xff1a;table标签 行&#xff1a; tr标签 单元格&#xff1a;td标签 语法&#xff1a; <!DOCTYPE html> <html> <head> <title>这是一个标题</title><meta charset"utf-8"/&…

Nacos服务注册或发现、Nacos服务分级模型、Nacos负载均衡策略、加权负载均衡、Nacos环境隔离

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、nacos服务搭建&#xff0c;nacos服务注册或发现二、Nacos服务分级模型三、Nacos负载均衡策略四、Nacos注册中心&#xff08;nacos控制台配置&#xff09;-加…

初识Spring

1.Spring官网&#xff1a; 2.官网学习的顺序&#xff1a;先学Spring,再学SpringBoot,然后SpringCloud,Spring Cloud Data Flow。 3.Spring Framework界面&#xff1a; 4.github上的源代码&#xff1a; 5.进入使用说明文档&#xff1a; 主要是根据这个进行学习的。 6.我们用mave…

Vue2.脚手架

全局安装&#xff1a;npm i vue/cli -g检查是否成功安装&#xff1a;vue --version新建项目&#xff1a;vue create 项目名 通过nodejs安装的时候&#xff0c;可以直接代理和仓库&#xff0c;~/.npmrc文件内容如下&#xff1a; proxysocks5://127.0.0.1:7897 registryhttps:/…

QT周五作业

题目&#xff1a;实现简单水果的价格重量计算 点击一次水果重量1 自动计算总价 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QListWidgetItem> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAME…

未来科技五年人工智能行业产业发展趋势最新竞争力

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是近年来快速发展的热门领域&#xff0c;被广泛应用于各个行业。随着技术的不断创新和突破&#xff0c;人工智能行业的竞争力也在不断提升。本文将分析未来科技五年人工智能行业产业发展趋势&#xff0c…

“一键倒放,创意无限!让视频剪辑成为艺术“

你是否厌倦了常规的视频播放方式&#xff0c;想要寻找一种全新的、与众不同的方式来呈现你的视频内容&#xff1f;现在&#xff0c;我们为你带来一个革命性的工具&#xff0c;让你轻松实现视频批量倒放&#xff0c;激发无限创意&#xff01; 第一步。首先&#xff0c;我们要打…

基于SpringBoot的康复中心管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

第十七周周报

文章目录 摘要目标检测锚框交并比NMS 非极大值抑制输出 文献阅读&#xff1a;SMPL: A Skinned Multi-Person Linear ModelIntroductionRelated WorkModel FormulationTraining评估动态SMPL讨论结论 总结 摘要 本周看了三维人体重建的领域&#xff0c;看了一篇SMPL的文章&#…

Windows2012部署项目

目录 1.jdk的安装 2.Tomact安装 3.MySQL安装 4.项目部署 ​5.思维导图 1.jdk的安装 将jdk从主机复制到虚拟机里面&#xff0c;然后双击进行安装 安装完JDK之后&#xff0c;在系统的高级系统设置中点击环境变量&#xff0c;进行增加系统变量 变量名 : JAVA_HOME 变量值 : …

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)

盲点问题解析之HashMap工作原理全揭秘 承接上文创建HashMap对象参考容量&#xff08;capacity&#xff09;Hashmap内部有一个机制扩容阈值&#xff08;threshold&#xff09;负载因子&#xff08;loadFactor&#xff09; HashMap存储元素的过程HashMap的put方法JDK8的扩容机制N…

一键批量翻译,文件夹名称翻译器

文件夹名称往往是我们初步了解文件内容的重要窗口。有时&#xff0c;为了更好地与国际合作伙伴交流或是管理个人文件&#xff0c;我们需要对文件夹名称进行翻译。传统的逐一修改方法既费时又费力&#xff0c;还要借助翻译工具。现在有了【文件批量改名高手】&#xff0c;上面的…

OpenAI ChatGPT-4开发笔记2024-06:最简Embedding

Embedding embedding直译是&#xff1a;嵌入。和实际意思有些差距。其实就是把文本转换为向量表示的过程。用“向量化”更直接&#xff0c;但这又和tensor有点儿混。它是变成向量的一个过程。 embedding 的应用领域&#xff1a; 文本分类&#xff1a; 将文本嵌入转换为向量后…