关于String的一些问题
1、 String和StringBuilder 什么时候用String?什么时候用StringBuilder? String声明之后在内存中大小是不可修改的,而StringBuilder可以自由扩展大小( String分配在栈区,StringBuilder分配在堆区) 字符串一旦创建就不可修改大小,每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。 对字符串添加或删除操作比较频繁的话那就用StringBuilder。 2、"==", "Equals", "Object.ReferenceEquals(obj1,obj2)" 1)==它是比较的栈里面的值是否相等(值比较) 2)Equals它比较的是堆里面的值是否相等(引用地址值比较) 3)Object.ReferenceEquals(obj1,obj2)它是比较的是内存地址是否相等 string s1 = "china"; string s2 = "china"; String