黑马程序员技术交流社区
标题:
关于string的一个特性
[打印本页]
作者:
何圣东
时间:
2012-1-30 00:37
标题:
关于string的一个特性
刚看苏坤老师的视频,讲到字符串不可变:
string s ="abc";
s="888888";
苏坤老师说"abc"在内存中并没有消失,那么我想问"abc"在内存中依然存在的意义是什么?
我感觉"abc"在内存中存在没有意义,而且还占内存。
string.jpg
(233.33 KB, 下载次数: 68)
下载附件
2012-1-30 00:37 上传
作者:
房宝彬
时间:
2012-1-30 10:31
如果单独讲 abc意义的话 那只能根据编程人员的定义不同吧。
string s ="abc";
s="888888";
这里主要是讲解 string类型内存的问题,s所指向的地址值变了,但是对象没变。
作者:
刘少华
时间:
2012-1-30 14:30
在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改,当你声明一个字符串变量赋值时,.NET会检查string内置池中是否有这个字符串,若有则直接返回地址,没有则会在内置池中创建。也就是说,当我们创建了字符串对象a,它的值是“hello”,当我们再创建一个值为“hello”的字符串对象b时,.NET不会再去分配一块内存空间,而是直接指向了a在内存中的地址。这样可以确保内存的有效利用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2