java中按值传递和按引用传递有何区别

2024-11-19 07:48:56
推荐回答(4个)
回答(1):

默认情况下是引用传递

OjbectA a1 = new ObjectA();
OjbectA a2 = a1;
引用传递时,对a2操作相当与对a1操作
也就是说:a2 与a1 是同一个对象的两个不同的名字

而在值传递时,a2会另外分一个与a1不同的空间
对任何一个对象操作都不影响到对方

回答(2):

对于基本的数值类型,如:int char float,传递的时候是值传递,传递后对变量进行修改不会影响原先的值,即传递的时候出现了一个该变量的副本。

引用传递,基本针对对象而言,它类似于C语言当中的传地址,对传递后的对象修改,同时作用于原来的对象,即他们共享一个对象。

回答(3):

按值传递时,实参本身的值不会随形参的改变而改变
按引用传递时,实参本身的值会随形参的改变而改变

回答(4):

经典:
http://blog.csdn.net/it_man/archive/2006/11/10/1376960.aspx
建议搂住以后要有悬赏哦。这样你的答案会更快,更好