sb === stringbuilder,我变量都用sb开头的。。

 

为啥用stringbuilder,因为string的改变会分配新内存空间;

为啥要新分配内存,因为string的设计原理造成的;

为啥这么设计,因为string是引用类型;

为啥是引用类型,因为string大小可变,不像int,char等等;

可变就要这么设计?因为值类型每次都分配内存,string这样做会占大量内存;

那怎么办?所以把所有string值存在一个hash表里,统一管理,创建新string在里面找有一样的就把地址给他,没有再加新的;

这样的好处?内存占用少,避免相同实例,作参数时只传地址,当然还有其他优点;

不能当值类型用了?当然可以,因为重写了==和!=;

还有啥要说的?想起来再说吧;

你说的对嘛?不知道。。

那我不白看了?答对了,我就是写给自己看得。。

参考以下两贴:

http://topic.csdn.net/t/20040818/11/3285753.html

http://blog.joycode.com/qqchen/archive/2004/08/21/31216.aspx