C#基础(11—14)值类型和引用类型:使用与储存、特殊引用类型string 、 调试查看内存

文章探讨了值类型与引用类型在赋值、内存分配及存储区域的区别。值类型在栈中存储,复制内容,而引用类型在堆中存储,复制指针。特别地,string虽表现得像值类型,但其内部行为可能导致内存垃圾。当一个引用类型对象被多个引用共享时,修改会同步影响所有引用。然而,通过new创建新实例则避免这种同步修改。
摘要由CSDN通过智能技术生成

分类

引用类型

string,数组,类

值类型

有符号整形,无符号整形 ,浮点数, char ,bool,结构体

值类型和引用类型的区别

 //值类型在相赋值时 把内容拷贝给对方  它变我不变
 //引用类型的相互赋值 是 让两者指向同一个值   它变我也变


  2.为什么有以上区别
 //值类型 和 引用类型 存储在的 内存区域 是不同的  存储方式是不同的
 //所以造成了  使用上的区别

 //值类型存储在  栈空间  一系统分配,自动回收 ,小而快
 //引用类型 存储在 堆空间  一手动申请和释放 , 大而慢

引用类型在栈空间存储的是一个地址,该地址指向堆空间,堆空间才是真正储存着引用类型数据的地方。

所以公用一个数据库的两个引用类型,当其中一个修改了数据,那么两个都会变。

除非是 通过 new 重新赋值时,相当于又申请开辟了新的数据库,这时再更改其中一个就不会是同步修改了。 

string非常的特殊 它具备 值 类型的特征 它变我不变
            //string 虽然方便 但有缺点  频繁改变string 重新赋值
            //会产生  内存垃圾(申明了但没有任何一处引用的话,如果不回收,会影响性能) 

调试查看内存

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值