【Rust中级教程】1.6. 内存 Pt.4:静态(static)内存与‘static生命周期标注
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
1.6.1. 静态(static)内存
static内存实际上是一个统称,它指的是程序编译后的文件中几个密切相关的区域。当程序执行的时候,这些区域会自动加载到内存里。
static内存里的值会在程序执行期间一直存活。
程序的static内存是包含程序的二进制代码的(通常映射为只读的)。随着程序的执行,它会在文本段的二进制代码中挨个指令进行遍历,而当函数被调用时就进行跳跃。
static内存会持有使用static声明的变量的内存,也包括某些常量值,例如字符串。
1.6.2. ‘static
生命周期标注
‘static
是一个特殊的生命周期,它的名字来源于static内存区。它将引用标记为只要static内存还存在(也就是程序关闭之前),那么引用就合法。
static变量的内存在程序开始运行时就分配了。指向static内存中变量的引用,按定义来说,就是'static
的,因为在程序关闭之前它不会被释放;但是有'static
生命周期标注的引用可以不指向static内存。
既然'static
生命周期标注的引用可以不指向static内存,为什么还要把这种生命周期命名为'static
呢?有'static
标注但不存储在static内存里这不是误导人吗?
'static
这个名称仍然适用的原因在于:一旦你创建了一个'static
的生命周期的引用,就程序的其余部分而言,它所指向的内存都可能在static内存中,因为程序想要使用它多久都没问题
话句话说:'static
这个名字可能会让人误以为所有带有'static
生命周期的引用都指向静态内存区(即程序运行期间一直存在的全局变量或常量)。但实际上,'static
只是表示这个引用在整个程序生命周期内都是有效的,至于它指向的内存是否真的存储在静态区,并不一定。换句话说,'static
生命周期的引用意味着 “这个引用可以一直存在,程序可以随时使用它”,但并不强制要求它的内容必须是静态分配的。
在写Rust代码的时候,遇到更多的会是'staic
生命周期标注而不是static内存。'static
经常出现在类型参数的trait bounds上。
例如T: 'static
就代表类型T
可以存活我们想要的任何时长(知道程序关闭),同时这也要求T
是拥有所有权的并且是自给自足的。这代表着这个类型要么它不借用其它(非static)值,要么它借用的东西是static的。这样就能保证类型能活到程序结束。
1.6.3. const
与static
的区别
const
关键字会把紧随它的东西声明为常量,例如:
const X: i32 = 123;
X
被声明为了常量
常量可在编译的时候完全计算出来。在计算期间,任何引用常量的代码会被替换为常量的计算结果值。
例如:
const X: i32 = 123;
println!("{}", X);
这句话中的打印操作就会在编译时被改为:
println!("{}", 123);
所以常量没有内存或关联其它存储(因为它不是一个地方)。你可以把常量理解为某个特殊值的方便的名称。
相关文章:
【Rust中级教程】1.6. 内存 Pt.4:静态(static)内存与‘static生命周期标注
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 1.6.1. 静态(static)内存 static内存实际上是一个统称,它指的是程序编译后的文…...
Python爬虫实战:股票分时数据抓取与存储 (1)
在金融数据分析中,股票分时数据是投资者和分析师的重要资源。它能够帮助我们了解股票在交易日内的价格波动情况,从而为交易决策提供依据。然而,获取这些数据往往需要借助专业的金融数据平台,其成本较高。幸运的是,通过…...
HTML之JavaScript对象
HTML之JavaScript对象 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…...
【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】
凌晨三点的ICU病房,AI辅助诊断系统将一位患者的肺炎误判为普通感冒——当主治医生要求查看诊断依据时,系统只能给出冷冰冰的概率数值。这场惊心动魄的误诊事件,掀开了深度学习可解释性危机的冰山一角。 一、模型透明的"第一性原理" 1.1 可解释性的三维度量 ![可…...
SOCKET建立简单的tcp服务端与客户端通信
socket是什么 socket可以使两台机子建立连接,就像连接风扇与电源的插座一样,socket可以使服务端与客户端建立连接,服务端就像供电厂,而客户端就像用电器,而socket就是连接二者的插座。 建立简单的连接 如果我们想在客…...
最新智能优化算法: 阿尔法进化(Alpha Evolution,AE)算法求解23个经典函数测试集,MATLAB代码
一、阿尔法进化算法 阿尔法进化(Alpha Evolution,AE)算法是2024年提出的一种新型进化算法,其核心在于通过自适应基向量和随机步长的设计来更新解,从而提高算法的性能。以下是AE算法的主要步骤和特点: 主…...
HTML之JavaScript常见事件
HTML之JavaScript常见事件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>&…...
《云原生安全攻防》-- K8s镜像安全:镜像全生命周期安全管理
从攻击者的角度来看,针对容器镜像的软件供应链攻击和镜像投毒等攻击方式,不仅攻击成本低,而且还能带来更高且持久的收益。因此,镜像安全问题变得日益突出。 在本节课程中,我们将深入探讨镜像全生命周期的安全管理&…...
【Copilot】Redis SCAN SSCAN
目录 SCAN 命令SSCAN 命令使用示例原理Redis SCAN 和 SSCAN 命令的注意事项及风险注意事项风险 以下内容均由Github Copilot生成。 SCAN 和 SSCAN 命令是 Redis 提供的用于增量迭代遍历键或集合元素的命令。它们的主要优点是可以避免一次性返回大量数据,从而减少对 …...
【含开题报告+文档+PPT+源码】基于Spring+Vue的拾光印记婚纱影楼管理系统
开题报告 本论文旨在探讨基于Spring和Vue框架的拾光印记婚纱影楼管理系统的设计与实现。该系统集成了用户注册登录、个人资料修改、婚庆资讯浏览、婚庆套餐查看、婚纱拍摄预约、婚纱浏览与租赁、客片查看以及在线客服等多项功能,为用户提供了一站式的婚纱影楼服务体…...
静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片
这个问题可能有几个原因导致,我来分析一下并给出解决方案: 首要问题是懒加载实现方式的兼容性问题。当前的懒加载实现可能在 iOS 上不够稳定。建议修改图片懒加载的实现方式: // 使用 Intersection Observer API 实现懒加载 function initLazyLoading() {const imageObserver…...
【Qt】QObject类的主要功能
在 Qt 中,QObject 类是所有 Qt 对象的基类,提供了许多基础功能,使得 Qt 的对象系统能够有效地工作。它为其他类提供了核心的机制,比如信号和槽机制、对象树结构、内存管理等。 QObject 类的主要功能: 信号和槽机制&am…...
第 16 天:游戏 UI(UMG)开发,打造主菜单 血条!
🎯 目标 ✅ 使用 UMG 创建 UI 并在游戏中显示 ✅ 实现血条(HP Bar)系统,动态显示角色生命值 ✅ 创建主菜单 UI,并添加开始/退出按钮 ✅ 保存当前场景,创建新场景作为主菜单 ✅ 点击 StartGameButton 后&am…...
兔兔答题应用于微信考试、付费考试、社会调查问卷、明星知识问答、员工培训考核、模拟自测、企业面试、试题库等多种场景。
“兔兔答题系统”是一个面向教育、培训和在线测评场景的智能化答题平台(兔兔答题官网地址)。其设计目标是帮助用户高效完成题目练习、考试组织及学习效果分析,通常具备以下核心功能和特色: 一、核心功能 题库管理 支持多题型录入&…...
【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)
背景需求: 做了中班的四类活动安排表,我顺便给大班做一套 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次࿰…...
19.4.6 读写数据库中的二进制数据
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 需要北风数据库的请留言自己的信箱。 北风数据库中,类别表的图片字段在【数据表视图】中显示为Bitmap Image࿱…...
使用 Python 爬虫获取微店快递费用 item_fee API 接口数据
在电商运营中,快递费用是影响商家利润和用户体验的重要因素之一。微店作为国内知名的电商平台,提供了丰富的 API 接口供开发者使用,其中也包括查询商品快递费用的接口。通过调用微店的 item_fee 接口,开发者可以获取指定商品的快递…...
蓝桥杯篇---温度传感器 DS18B20
文章目录 前言DS18B201. DS18B20 引脚说明2. 单总线通信协议3. DS18B20 操作流程初始化写操作读操作 4. 示例代码5. 代码说明6. 注意事项总结 前言 本文简单介绍了IAP15F2K61S2中温度传感器模块DS18B20的使用。 DS18B20 DS18B20 是一款数字温度传感器,采用单总线&…...
NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证
NAC网络接入控制三种认证方式802.1X认证、MAC认证和Portal认证 1.NAC简介2.802.1X认证3. MAC认证4. Portal认证 1.NAC简介 NAC(Network Access Control)称为网络接入控制,通过对接入网络的客户端和用户的认证保证网络的安全,是一…...
字节Trae使用感想(后端)
前言 昨天分享了字节哥的Trae从0到1创作模式构建一个vue前端项目,今天又来试试她的后端项目能力。不是我舔,不得不说确实不错。可惜现在曾经没有好好学习,进不了字节。既然进不了字节,那我就用字节哥的产品吧。 后面有惊喜…...
蓝桥杯 Java B 组之简单动态规划(爬楼梯、斐波那契数列)
Day 6:简单动态规划(爬楼梯、斐波那契数列) 动态规划(Dynamic Programming,简称 DP)是计算机科学中的一种算法设计思想,用来解决最优解问题,它的核心思想是将大问题分解为小问题&am…...
传统 I/O 和 NIO 的主要区别
在 Java 中,文件读写可以通过传统的 I/O 方式(如 InputStream 和 OutputStream)或 NIO(New I/O)方式(如 FileChannel)来实现。NIO 的 FileChannel 提供了更高效的文件操作方式,尤其是…...
0基础学LabVIEW
对于零基础的朋友来说,学习LabVIEW需要一个科学的学习路径和方法。通过观看优质的B站教程打好基础,再结合实际项目进行实践操作,能够快速提升LabVIEW的应用能力。以下是从入门到进阶的学习建议。 一、利用B站入门教程打基础 筛选优质教程…...
二〇二四年终总结
写在前面 简单总结一下告诉自己,曾经活着 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树 原本应该 24 年年中的时候写 23 年年终的总结,但是一直拖着&…...
设计模式:状态模式
状态机有3个要素:状态,事件,动作。 假如一个对象有3个状态:S1、S2、S3。影响状态的事件有3个:E1、E2、E3。每个状态下收到对应事件的时候,对象的动作为AXY。那么该对象的状态机就可以用如下表格来表示。S1收到事件E1的…...
SQLite Select 语句详解
SQLite Select 语句详解 SQLite 是一个轻量级的数据库管理系统,以其简洁的设计和高效的性能被广泛应用于各种场景。在 SQLite 中,SELECT 语句是用于查询数据库中的数据的命令。本文将详细介绍 SQLite 的 SELECT 语句,包括其基本语法、常用功…...
【深度学习】计算机视觉(CV)-目标检测-Faster R-CNN —— 高精度目标检测算法
1.什么是 Faster R-CNN? Faster R-CNN(Region-based Convolutional Neural Network) 是 目标检测(Object Detection) 领域的一种 双阶段(Two-Stage) 深度学习方法,由 Ross Girshick…...
静默安装OGG for MySQL微服务版本,高效开展数据同步和迁移
一、背景 本文从Oracle GoldenGate微服务版的概念和组件介绍开始,从零介绍了怎么开始安装GoldenGate 21c for Oracle微服务版本的软件及部署。当然了,微服务版除新功能外包含传统版所有的功能。 二、安装部署 (一)下载OGG for …...
排序算法衍生问题
排序算法衍生问题 引言 排序算法是计算机科学中的基本问题之一,广泛应用于各种实际场景中。尽管有多种排序算法可供选择,但每种算法都有其特定的优势和局限性。本文将探讨排序算法中的一些衍生问题,包括算法效率、稳定性、内存占用等方面&a…...
DeepSeek自动化写作软件
DeepSeek写作软件的三大核心功能 对于内容创作者来说,写作不仅是表达思想的过程,更是一项需要投入大量时间和精力的任务。面对日益增长的内容需求,写作效率低下、内容质量不高等问题,常常让创作者感到焦虑。而 DeepSeek 写作软件…...
Python数据可视化 - Matplotlib教程
文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…...
集成测试总结文档
1. 集成测试的定义 集成测试(Integration Testing)是在单元测试之后,将多个独立的软件模块或组件组合在一起进行测试的过程,目的是验证这些模块之间的接口、数据传递、协作逻辑是否符合设计要求,并发现因集成引发的缺…...
Retrieval-Augmented Generation for LargeLanguage Models: A Survey
标题:Retrieval-Augmented Generation for Large Language Models: A Survey 作者:Yunfan Gaoa , Yun Xiongb , Xinyu Gaob , Kangxiang Jiab , Jinliu Panb , Yuxi Bic , Yi Daia , Jiawei Suna , Meng Wangc , and Haofen Wang 1. By referencing ext…...
Day3 25/2/16 SUN
【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…...
使用maven-archetype制作项目脚手架
使用maven-archetype制作项目脚手架 maven plugin依赖 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.0.1</version> </plugin>导出模板 在模板项目执行…...
Spring AOP源码解析
前言 Spring AOP(面向切面编程)是 Spring 框架的核心模块之一,其底层通过 动态代理 和 字节码增强 实现。以下是 Spring AOP 的源码解析,涵盖核心流程、关键类及实际应用场。 一、Spring AOP 的核心组件 核心接口 Joinpoint&am…...
1.buuctf [BJDCTF2020]EasySearch
进入题目页面如下 尝试输入弱口令密码都显示错误 看题目是search,扫描一下根目录试试 /index.php.swp 得到源码 进行一下代码审计 <?php//开启输出缓冲,将所有的输出内容先保存到缓冲区,而不是直接输出到浏览器。ob_start();//定义一个…...
小米 R3G 路由器刷机教程(Pandavan)
小米 R3G 路由器刷机教程(Pandavan) 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而,原厂固件的功能相对有限,难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能,还能通过第三方固…...
【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析③】
ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase03 作者:车端域控测试工程师 更新日期:2025年02月15日 关键词:UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-003测试用例 用例ID测试场景验证要点参考条款预期…...
deepseek与gpt,核心原理对比
DeepSeek与GPT作为AI大模型,在自然语言处理等领域展现出强大的能力,它们的核心原理对比主要体现在模型架构、训练策略、资源效率以及应用场景优化等方面。 一、模型架构 DeepSeek 混合专家(MoE)框架:DeepSeek采用了混合专家框架,其内部包含多个“专家”子模块,每个子模…...
第1章大型互联网公司的基础架构——1.1 单机房的内部架构
所谓的应用后台就是指机房。机房架构是一个庞大的工程,你可能听说过很多大型互联网公司曾在各种技术峰会上介绍它们的“三地五中心”多机房,甚至是全球异地多活机房等,这些“高大上”的话题讨论的都是机房架构的内容。机房最简单的形式是单机…...
如何在 Vue 3 中使用 Vue Router 和 Vuex
在 Vue 3 中使用 Vue Router 1. 安装 Vue Router 在项目根目录下,通过 npm 或 yarn 安装 Vue Router 4(适用于 Vue 3): npm install vue-router4 # 或者使用 yarn yarn add vue-router42. 创建路由配置文件 在 src 目录下创建…...
网络安全月度报告
3.1.1网络现状及安全挑战 网络的出现给人们的工作和生活带来了极大的便利,但同时也带来了极大的安全风险。在信息传输和交换时,需要对通信信道上传输的机密数据进行加密;在数据存储和共享时,需要对数据库进行安全的访问控制和对访…...
人大金仓国产数据库与PostgreSQL
一、简介 在前面项目中,我们使用若依前后端分离整合人大金仓,在后续开发过程中,我们经常因为各种”不适配“问题,但可以感觉得到大部分问题,将人大金仓视为postgreSQL就能去解决大部分问题。据了解,Kingba…...
Python的imutils库详细介绍
imutils 是一个专为简化OpenCV(计算机视觉库)常见操作而设计的Python工具库,提供了一系列便捷函数,使图像和视频处理更加高效和简洁。以下是对其功能、安装及用法的详细介绍: 1. 安装方法 通过pip安装: p…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第三节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(安全访问0x27服务) 作者:车端域控测试工程师 更新日期:2025-02-12 关键词:UDS安全访问、0x27服务、ISO 14229-1:2023、ECU安全验证 一、服务概述 安全访问服务࿰…...
DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析
一、引言 1.1 研究背景与意义 在医疗信息化快速发展的当下,电子病历系统已成为医院信息管理的核心构成。电子病历(EMR)系统,是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图标、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的…...
⚡️《静电刺客的猎杀手册:芯片世界里的“千伏惊魂“》⚡️
前言: 在这个电子产品无孔不入的时代,我们每天都在与一群隐形刺客打交道——它们身怀数千伏特的高压绝技,能在0.1秒内让价值百万的芯片灰飞烟灭。这就是静电放电(ESD),电子工业界最令人闻风丧胆的"沉默…...
GPU 英伟达GPU架构回顾
1999 年,英伟达发明了 GPU(graphics processing unit),本节将介绍英伟达 GPU 从 Fermi 到 Blackwell 共 9 代架构,时间跨度从 2010 年至 2024 年,具体包括费米(Feimi)、开普勒&#…...
Git 分布式版本控制
Git 是分布式版本控制 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 git基本流程 本地git安装并将bin目录配置到环境变量path中,右键git bash后配置本地用户名与邮箱 git congig --global user.name "" || …...