- class Go{
- public static void main(String args[]){
- String str1 = "abc";
- String str2 = str1;
- str1 += "de";
- System.out.println(str2);
- StringBuffer sb1 = new StringBuffer();
- sb1.append("abc");
- StringBuffer sb2 = sb1;
- sb1.append("de");
- System.out.println(sb2);
- }
- }
class Go{
public static void main(String args[]){
String str1 = "abc";
String str2 = str1;
str1 += "de";
System.out.println(str2);
StringBuffer sb1 = new StringBuffer();
sb1.append("abc");
StringBuffer sb2 = sb1;
sb1.append("de");
System.out.println(sb2);
}
}
首先看以上代码,我们可以看到 System.out.println(str2)输出的是abc,而System.out.println(sb2)输出的是abcde。
如果你对此有疑问就看我接下来的解释。解释很简单,就是从java源码中去看java究竟是怎么存储和动作的。
首先分析 StringBuffer的父类是AbstractStringBuilder,大家可能不能从java api(chm)中发现这个类,因为它是package access 的 客户端不可见的java类。
本文深入解析Java中String与StringBuffer的区别,通过实例代码演示它们在字符串操作上的行为差异,帮助开发者理解Java字符串处理机制。



273

被折叠的 条评论
为什么被折叠?



