JAVA
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
C#
在.NET中String是不可改变对象,一旦创建了一个String对象并给它赋值,它就不可能再改变,也就是你不可能改变一个字符串的值。这句活初听起来似乎有些不可思议,大家也许马上会想到字符串连接操作,我们不也可以改变字符串吗?看下面的这段代码:
public static void Main(string[] args) { string s = "1234"; Console.WriteLine(s); s += "5678"; Console.WriteLine(s); Console.Read(); } //输出下面的结果: 1234 12345678
看起来我们似乎已经把s的值从"1234"改为了"12345678",实际上并没有改变。string s = "1234";是创建了一个String对象它的值是"1234",s指向了它在内存中的地址,s += "5678";是创建了一个新的String对象它的值是"12345678",s指向了新的内存地址。这时在堆中其实存在着两个字符串对象,尽管我们只引用了他们中的一个,但字符串"1234"仍然在内存中驻留。
StringBuilder strXML = new StringBuilder();
strXML.AppendFormat("<银行卡号>{0}</银行卡号>", cardNo);
strXML.AppendFormat("<ETC卡号>{0}</ETC卡号>", etcCardNo);