java代码,说说输出结果,跟原因,刚学java ,有点不是很理解
java代码,说说输出结果,和原因,刚学java ,有点不是很理解。classTest{public static void main(String[] ar
java代码,说说输出结果,和原因,刚学java ,有点不是很理解。
class Test{
public static void main(String[] args) {
String s1 = new String("java");
String s2 = new String("hello");
method_1(s1,s2);
System.out.println(s1+"...."+s2); //java....hello
StringBuilder s11 = new StringBuilder("java");
StringBuilder s22 = new StringBuilder("hello");
method_2(s11,s22);
System.out.println(s11+"-----"+s22);
}
public static void method_1(String s1,String s2){
s1=s1.replace('a','k');
s1 = s2;
}
public static void method_2(StringBuilder s1,StringBuilder s2){
s1.append(s2);
s1 = s2;
}
}
[解决办法]
字符串类型和int等基本类型是有差别的
[解决办法]

[解决办法]
输出结果为
java....hello
javahello-----hello
[解决办法]
这个操作其实是有效果的,在method_1()方法内你用System.out.println()语句将s1和s2打印出来可以验证s1和s2被"暂时"改变了,只是在调用此方法之后,该方法占用的内存会被释放,也就是说,传参数的时候是传的一份原变量s1和s2的拷贝,所以对原变量无影响,楼主如果有c语言的基础应该这些能够理解
[解决办法]