1.Java是值传递还是引用传递?
这是一个有点争议,但又没什么争议的问题,如果问起来你大可以回答他是值传递。下面就让我们来了解一下关于Java中有关参数传递的问题
2.什么是值传递,什么是引用传递?
值传递:
值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。(基本数据类型复制的是它本身的值,而引用数据类型复制的是它的地址。所以说如果将一个基本数据类型和一个引用数据类型的变量传进函数,基本数据类型的函数外的实际值是不会受影响的,而引用数据的地址是不会被修改的,但是如果是修改了引用数据类型对象的属性值,函数外的实际参数是会受影响的)
(这是百度词条上面的解释)
引用传递:
引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
(这是百度词条上面的解释)
3.Java只要一种参数传递方式,那就是传值
当你问大多数程序员Java是传值还是传引用的时候,你可能会得到两种答案之一:(1)Java传递原始类型数据时使用的是传值方式;传递对象时则使用传引用方式;String类型的数据采用的是传值方式,因为字符串是不可变的。(2)Java传递所有参数都使用传值方式。
只有第二个答案是正确的。理解传值和传引用的区别的关