值类型和引用类型

简介: 值类型和引用类型

值类型和引用类型

值类型:直接将内存存储在栈内,由系统自动释放资源的数据类型.与值类型相对应的有引用类型.C#语言中还对应指针类型

引用类型 由类型的实际值引用(类似于指针)表示的数据类型。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型。      

下面是结构体(值类型)和类(引用类型的区别)

值类型和引用类型的区分 (360doc.com)

为什么对象是引用类型,为什么string是引用类型,底层原理是什么?

引用是一种别名,本质上是指向同一块地址,底层实现是通过指针。

c#与c++做联系,引用类型相当于指针变量,值类型相当于普通变量。

值类型是复制的,对象一般都会占据比较大的内存空间。所以采用引用类型,不然效率低。理论上来说,在语言设计的时候,采用值类型还是引用类型没有严格的意义,这样的划分主要是为了效率。 正是因为这样的考虑,虽然struct是值类型,但也不建议用值类型的方式进行传参。

string指向常量空间的地址,常量是不能直接被改变的,如果想改变字符串的值是不能通过直接修改字符串常量来达到修改字符串的目的,必须是开辟另一个常量空间存放新的字符常量。

(91条消息) 为什么string是引用类型_kenniszy的博客-CSDN博客_string为什么是引用类型

我认为底层原理就是值类型存储在栈上,栈空间小,对象比较大,字符串也一样,所以在栈上存地址,new之后再在堆上分配空间存内容。


那我们来看看

堆和栈的区别


相关文章
|
12月前
|
容器
vllm+vllm-ascend本地部署QwQ-32B
本指南介绍如何下载、安装和启动基于Ascend的vLLM模型。首先,可通过华为镜像或Hugging Face下载预训练模型;其次,安装vllm-ascend,支持通过基础镜像(如`quay.io/ascend/vllm-ascend:v0.7.3-dev`)或源码编译方式完成;最后,使用OpenAI兼容接口启动模型,例如运行`vllm serve`命令,设置模型路径、并行规模等参数。适用于大模型推理场景,需注意显存需求(如QwQ-32B需70G以上)。
4473 17
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
2053 160
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
902 0
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
机器学习/深度学习 数据采集 搜索推荐
使用Python实现深度学习模型:智能食品消费行为预测
使用Python实现深度学习模型:智能食品消费行为预测
627 8
|
机器学习/深度学习 数据采集 人工智能
智能化运维在企业IT管理中的应用与实践####
本文深入探讨了智能化运维(AIOps)的核心技术原理,通过对比传统运维模式,揭示了AIOps如何利用大数据、机器学习等先进技术提升故障预测准确性、优化资源分配及自动化处理流程。同时,文章详细阐述了智能化运维平台的实施步骤,包括数据收集与分析、模型训练与部署、以及持续监控与优化,旨在为企业IT部门提供一套切实可行的智能化转型路径。最后,通过几个典型应用案例,如某大型电商平台的智能告警系统和金融企业的自动化故障排查流程,直观展示了智能化运维在实际业务场景中的显著成效,强调了其在提升运维效率、降低运营成本方面的关键作用。 ####
430 4
|
存储 关系型数据库 MySQL
MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
一篇短文让你明白MySQL数据库的表中 NULL 和 空值之间的区别!
5371 0
MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
|
存储 NoSQL PHP
如何用Redis高效实现点赞功能?用Set?还是Bitmap?
在众多软件应用中,点赞功能几乎成为标配。本文从实际需求出发,探讨如何利用 Redis 的 `Set` 和 `Bitmap` 数据结构设计高效点赞系统,分析其优缺点,并提供 PHP 实现示例。通过对比两种方案,帮助开发者选择最适合的存储方式。
534 3
|
Python
掌握pandas中的transform
掌握pandas中的transform
400 3
|
消息中间件 分布式计算 搜索推荐
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
991 0
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:Transformer模型
使用Python实现深度学习模型:Transformer模型
1992 0
使用Python实现深度学习模型:Transformer模型