String参数是传值还是传递引用的测试
还是把测试拿来说说吧。。
public class StringTest {
public static void main(String[] args) {
String str = "java";
nochange(str, str);
change(str, str);
}
public static void nochange(String str1,Stringstr2) {
System.out.println("nochange--->>"+(str1 == str2));
}
public static void change(String str1,Stringstr2) {
str1 = str1 + "";
System.out.println("change--->>"+(str1 == str2));
}
}
结果:
nochange--->>true
change--->>false
由此可以看出。String其实还是和其他引用类型一样。进行的是传递引用。
只是string只要对其加等操作的话,就相当于是重新new了一个string,只是没有显示调用new而已。。
其实这点也其他的引用类型还是一样的。。
总之,是传递的引用。