asp.net

详解String 和 StringBuffer 区别

2011-03-15

举例说明:

String str1 = "abc";    假设地址为0x01

String str2 = "def";     假设地址为0x02

那么 str1.concat(str2);  得出的地址应该是0x03  并不是在str1的内存中添加内容"def"  而是重新开辟一块空间保存"abcdef"

 

 

StringBuffer str3 = new StringBuffer("abc");    假设地址为0x05

StringBuffer str4 = new StringBuffer("def");     假设地址为0x06

那么 str3.append(str4);  得出的地址应该是0x05  而是在str3的内存中继续添加内容"def" 

0x05中变成"abcdef"

 

综上两个例子,说明string 定义的变量的内存空间将是固定不变的,而stringbuffer定义的变量内存空间是可以改变的,所以网上很多人说什么string内存固定,stringbuffer内存可变也就是这个原因,在此给大家做了一个详细的讲解。