目录

值类型

引用类型

修改stu3的值 stu也被修改了 为什么? (对象之间)

值类型中,值全在栈中单独存储,变量之间不会影响

结构体中,结构体全在栈中,结构体与结构体之间也不会相互影响

静态资源区


值类型

值类型的储存只需要一段储存 用来存放实际的数据  在中储存

int a = 10;

引用类型

需要两段内存

第一段(等式前)储存实际的数据 它在中储存
第二段(等式后) 是一个应用指针,指向数据在内存中储存数据的位置  

地址储存在栈中 通过栈中的地址快速的找到堆中的数据
对象与对象之间不会相互影响  通过new出来的对象都会在堆内存中开辟一块新的空间 

class Student
{public int age;public string name;public Student(int age, string name){this.age = age;this.name = name;}
}static void Main(string[] args)
{Student stu = new Student(20,"小明");Student stu1 = new Student(30,"李四");}

修改stu3的值 stu也被修改了 为什么? (对象之间)

因为将stu中存储的地址赋值给了stu3  它们两个是共用的一个地址 指向同一个堆内存 所以一个修改另外一个也会修改

Student类的对象之间,栈中的 stu3 = stu(stu3没有使用new重新开辟一块新的空间 ),其地址指向同一个堆内存中储存的数据

Student stu3 = stu;
stu3.age = 100;
Console.WriteLine(stu3.age);//100
Console.WriteLine(stu.age); // 20? 100?  输出为100

null  空 空对象 空引用  空对象会被垃圾回收机制回收(GC)

栈内存空间小 读取速度快
堆内存空间大 读取速度慢

值类型中,值全在栈中单独存储,变量之间不会影响

int num = 10;
int num1 = num;
num = 20;
Console.WriteLine(num); //20
Console.WriteLine(num1);//10

结构体中,结构体全在栈中,结构体与结构体之间也不会相互影响

static void Main(string[] args)
{
//结构体全在栈中
Dog d1 = new Dog("阿黄",2);
Dog d2 = new Dog();
// 结构体与结构体之间不会相互影响
d1.age = 100;
Console.WriteLine(d1.age);
Console.WriteLine(d2.age);
Dog d3 = d1;
d1.age = 1000;
Console.WriteLine(d1.age); // 1000
Console.WriteLine(d3.age); // 2 
}struct Dog{public string name;public int age;
//结构体即使 自己定义了 有参的构造函数  默认的无参的也会存在,如定义的 d2,但是类中会被覆盖public Dog(string name, int age){this.name = name;this.age = age;}}

在结构体中,即使自己定义了 有参的构造函数  默认的无参的也会存在,如定义的 d2,但是类中会被覆盖,若使用无参的还得再定义一个无参的构造函数。

静态资源区

 对于字符串常量来说 实际是储存在静态资源区的  即使在堆中用的字符串也是存放在静态资源区的  因为 如果用到重复的字符串时 他们指向的地址是一样的  会解决内存问题  字符串在静态资源区中是不会被改变的   看到的修改其实只是修改指向的位置  内容并没有修改

const string name = "小明";//const 定义常量

 

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

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

相关文章

解锁永久会员的白噪音软件:睡眠助手

如今的年轻人压力普遍较大,学会解压至关重要。这期就为大家推荐一款优秀的白噪音软件,在压力大时听听,能起到不错的解压效果。 睡眠助手 文末获取 这款软件的特别版本十分出色,知晓的人不多。它已解锁永久会员,无需登…

uniapp使用css实现进度条带动画过渡效果

一、效果 二、实现原理 1.uni.createAnimation 动画函数 2.初始化uni.createAnimation方法 3.监听值的变化调用动画执行方法 三、代码 1.实现方式比较简单&#xff0c;目前是vue3的写法&#xff0c;vue2只需要稍微改动即可 <template><view class"layout_progre…

高级分布式系统调试:调试的科学与 USE 方法实战

高级分布式系统调试:调试的科学与 USE 方法实战 前言:从“救火”到“探案” 当一个复杂的分布式系统出现“灰色故障”——例如“服务有时会变慢”、“偶尔出现超时错误”——我们该从何处着手?随机地查看 Grafana 仪表盘,或者漫无目的地 tail -f 日志,往往效率低下,甚至…

栈算法之【有效括号】

目录 LeetCode-20题 LeetCode-20题 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每…

大模型——Data Agent:超越 BI 与 AI 的边界

Data Agent:超越 BI 与 AI 的边界 1. 数据工具的演进路径 在数据分析领域,技术工具经历了多个阶段的演进。这些演进不仅反映了技术的进步,也体现了用户需求和使用场景的变化。 Excel 时代:告别手工作业,陷入“表格泥潭“,早期数据分析依赖 Excel,实现基础数据记录、计…

数据空间技术在智慧水库管理平台中的赋能

数据空间技术在智慧水库管理平台中的赋能&#xff1a;设备到应用的数据传输优化 数据空间技术为智慧水库管理平台提供了革命性的数据传输、处理和安全保障能力。以下是数据空间技术在设备到应用数据传输过程中的全面赋能方案&#xff1a; 数据空间赋能架构设计 #mermaid-svg-R2…

SpringBoot学习路径二--Spring Boot自动配置原理深度解析

SpringBoot最核心的功能就是自动装配&#xff0c;Starter作为SpringBoot的核心功能之一&#xff0c;基于自动配置代码提供了自动配置模块及依赖的能力&#xff0c;让软件集成变得简单、易用。使用SpringBoot时&#xff0c;我们只需引I人对应的Starter&#xff0c;SpringBoot启动…

音视频中一些常见的知识点

1. GCC是如何进行带宽评估的 GCC(Google Congestion Control)是一种专为实时音视频传输设计的拥塞控制算法,它主要通过发送端和接收端的协同工作来进行带宽评估。具体过程如下: 接收端处理 计算延迟梯度:接收端通过统计数据包到达时间的变化,即RTT(往返时间)波动,来计…

STM32硬件I2C的注意事项

文章目录软件模拟I2C硬件的实现方式最近在研究I2C的屏幕使用。有两种使用方式&#xff0c;软件模拟I2C、硬件HAL使用I2C。软件模拟I2C 发送数据是通过设置引脚的高低电平实现的。 /*引脚配置*/ #define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_6, (BitAction)(x)) #de…

Python捕获异常

Python捕获异常主要通过try-except语句实现&#xff0c;以下是核心语法和使用场景&#xff1a;一、基础捕获结构try: # 可能引发异常的代码 result 10 / 0 except ZeroDivisionError: # 处理特定异常 print("除数不能为零") 二、捕获多种异常try: # 可能引发…

Scala 和 Spark 大数据分析(六)

原文&#xff1a;annas-archive.org/md5/39eecc62e023387ee8c22ca10d1a221a 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十三章&#xff1a;我的名字是贝叶斯&#xff0c;朴素贝叶斯 “预测是非常困难的&#xff0c;尤其是当它涉及未来时” -尼尔斯玻尔 机器学…

【kubernetes】-6污点与污点容忍

文章目录污点与污点容忍1、 污点&#xff08;taint&#xff09;2、操作命令3、污点容忍4、污点扩展污点与污点容忍 1、 污点&#xff08;taint&#xff09; 污点是节点的属性&#xff0c;用于排斥一类特定的 Pod。通过污点&#xff0c;可以避免 Pod 被调度到不合适的节点上 …

定义损失函数并以此训练和评估模型

基础神经网络模型搭建 【Pytorch】数据集的加载和处理&#xff08;一&#xff09; 【Pytorch】数据集的加载和处理&#xff08;二&#xff09; 损失函数计算模型输出和目标之间的距离。通过torch.nn 包可以定义一个负对数似然损失函数&#xff0c;负对数似然损失对于训练具有多…

电子书转PDF格式教程,实现epub转PDF步骤

EPUB 格式属于流式文档&#xff0c;在屏幕尺寸各异的设备上都能自动适配显示。然而&#xff0c;要是你使用的是特定的阅读设备&#xff0c;像打印机、不支持 EPUB 格式的电子阅读器&#xff08;例如某些早期的 Kindle 型号&#xff09;&#xff0c;或者需要在固定尺寸的屏幕上展…

Java学习第六十九部分——RabbitMQ

目录 一、前言提要 二、基本信息 1. 关键定义 2. 核心角色 3. 交换机类型 三、消息生命周期与可靠性机制 四、生态集成——与Java 五、应用场景 六、性能与选型对比 七、生产级最佳实践——基于Java 八、应用场景 九、一句话总结 一、前言提要 Spring AMQP是…

MDAC2.6问题解决指南:解决.NET Framework数据访问烦恼

MDAC2.6问题解决指南&#xff1a;解决.NET Framework数据访问烦恼 【下载地址】MDAC2.6问题解决指南 MDAC 2.6 问题解决指南为您提供了针对.NET Framework数据提供程序要求使用Microsoft Data Access Components (MDAC) 2.6或更高版本的全面解决方案。本指南详细介绍了如何在开…

会话跟踪模式

一、图片讲了什么&#xff1f;这张图片主要讲的是“会话跟踪技术”&#xff0c;也就是网站怎么记住你是谁、你做了什么。1. 什么是会话&#xff1f;会话&#xff08;Session&#xff09;就像你和网站的一次聊天&#xff0c;从你打开网页到关闭网页&#xff0c;这段时间就是一次…

C语言开发工具Win-TC

如你所知&#xff0c;WIN-TC是一个turbo C2 WINDOWS 平台开发工具&#xff0c;最大特点是支持中文界面&#xff0c;支持鼠标操作&#xff0c;程序段复制&#xff0c;为初学 c 语言、对高等编程环境不熟悉的同志们非常有帮助。该软件使用 turbo C2 为内核&#xff0c;提供 WINDO…

lwIP学习记录5——裸机lwIP工程学习后的总结

1、ping包的TTL生存时间如何修改当我们把工程烧录到板子上是&#xff0c;我们对板子的IP进行ping包&#xff0c;看到信息如下图这时候我好奇TTL是什么作用&#xff0c;为什么有的设备是64有的设备是128有的是255&#xff1f;解&#xff1a;TTL&#xff08;Time to Live&#xf…

利用Trae将原型图转换为可执行的html文件,感受AI编程的魅力

1、UI设计原型效果2、通过Tare对话生成的效果图&#xff08;5分钟左右&#xff09;3、查资料做的效果图&#xff08;30分钟左右&#xff09;&#xff09;通过以上对比&#xff0c;显然差别不多能满足要求&#xff0c;只需要在继续优化就能搞定&#xff1b; 4、Trae生成的源码&l…