public class StringTest { String a = new String("abc"); char[] b = {'a','b','c'}; public void exchange(String a, char[] b){ a = "new avl"; b[0] = 'n'; } public static void main(String[] args) { StringTest st = new StringTest(); st.exchange(st.a, st.b); System.out.print(st.a + "--"); System.out.println(st.b); } }
OutPut:
abc--nbc
1)java中只存在值传递
2)String的赋值操作会新建一个String,然后再指向。所以没有改变原来的值