Java数组的传递过程中,值会不会改变
- 最后的运行结果是 String类型的值没有改变,char[]类型的值改变了。
- char[]打印出的并不是值,而是地址。
public class Test1{String str = new String("good");char[] ch = {'a','b','c'};public void change(String str, char ch[]){str = "test ok";ch[0] = 'g';}public static void main(String args[]){Test1 test1 = new Test1();test1.change(test1.str, test1.ch);System.out.print(test1.str + " and ");System.out.print(test1.ch);}}
先看一下运行结果:
D:\a_demo_text>javac Test1.java
D:\a_demo_text>java Test1
good and gbc
最后的运行结果是 String类型的值没有改变,char[]类型的值改变了。
如果把上文中的两个打印语句改为一句:
System.out.print(test1.str + " and " + test1.ch);
则打印为:
good and [C@525483cd
char[]打印出的并不是值,而是地址。
由此可推断,char[]字符数组是地址传递,所以修改值后,原字符数组的值改变。