java中String类型实例的引用传递问题

2024-12-16 17:14:17
推荐回答(3个)
回答1:

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';
}

回答2:

LZ你说对了,java中,所有对象都是引用传递,LZ可以去查language specication.

String 是写的,见没?

楼说错了,

LZ你画一张内存图就搞定了,

外面的str传递给method中的str,也就是把地址给method中的str,所以···

懂了没?

回答3:

java中字符串传递的是值,非引用。