62,621
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
StringBuilder str = new StringBuilder("string");
changeStr(str,1);// 重新赋值在改变他的状态,输出还是string
System.out.println(str);
changeStr(str,0);// 直接改变他的状态,输出newString
System.out.println(str);
}
public static void changeStr(StringBuilder str,int changeFlag) {
String newString = "newString";
if(changeFlag == 1) {
str = new StringBuilder(newString); // 指向了新对象
str.replace(0, str.length(), newString);// 改变新对象的状态,并没有影响实参对象的状态
} else {
str.replace(0, str.length(), newString);
}
}
}