String 类型的传递 是引用传递。也即是地址传递。传的是str的地址。把str里“good”的地址传给change()方法里的str。change()里的str赋予新的地址。是“test ok”的地址。此时ex.str对“good”的引用没变。就是还是存放“good”的地址。所以。ex.str还是“good”
基本数据类型传递的是值。
但是数组类型是引用类型。传的也是ch的中{‘a’,‘b’,‘c’}的地址。ch[0]修改为‘g’。基本数据类型的修改改的是其值。所以change()中ch接受传来的ex.ch的地址,指向{‘a’,‘b’,‘c’},修改其中的ch[0]后。修改保持。ex.ch引用不变。变为{‘g’,‘b’,‘c’}
要想修改它们的值,change()传的是Example e
change(Example e){
e.str=“test ok”;
e.ch[0]='g';
}
LZ你说对了,java中,所有对象都是引用传递,LZ可以去查language specication.
String 是写的,见没?
楼说错了,
LZ你画一张内存图就搞定了,
外面的str传递给method中的str,也就是把地址给method中的str,所以···
懂了没?
java中字符串传递的是值,非引用。