public class Example{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); for(int i=0;i<ex.ch.length;i++){System.out.print(ex.ch[i]);} } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } }A good and abc B good and gbc C test ok and abc D test ok and gbc
4 回答

翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
楼上说的不完全对,就算在change方法中不传str参数,change方法依旧无法改变str的值。
说到底,str= "abc"与str=new String("abc")在内存中是完全不同的表现形式。
前者直接指向字符串,而后者指向的是一个String对象。
添加回答
举报
0/150
提交
取消