码迷,mamicode.com
首页 > Windows程序 > 详细

C#面向对象9 字符串

时间:2018-02-13 15:43:41      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:alt   pos   示意图   分享   不可   一个   ima   div   info   

 

1.字符串的不可变性

当你给一个字符串重新赋值之后,老的值并没有销毁,而是重新开辟了一块空间(堆)存储新的值。

**当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。

 

示意图:值类型和引用类型在内存中的存储

技术分享图片

 

示意图:s1和s2 在栈中存储着相同的地址,这个地址指向堆中的"张三";s1重新赋值“123”,会在堆中开辟一块新的空间存储“123”,然后栈中的s1存储的地址改变!

技术分享图片

示意图:验证s1="123",s2="123"在栈中存放的内存都是堆中同一个地址

技术分享图片

 

2.

C#面向对象9 字符串

标签:alt   pos   示意图   分享   不可   一个   ima   div   info   

原文地址:https://www.cnblogs.com/youguess/p/8446630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!