在Java中关于值传递和引用传递小记
在Java中的数据分为两种:基本数据类型和引用类型。其中引用类型包含类引用(记为类)、接口引用(记为接口)、数组引用类型(记为数组)。
另外对于参数类型在方法中为:在方法的定义时写的参数为形式参数、而在参数的调用中实际传入的参数为实际参数。
一般情况下Java中的数据在进行参数传递的时候,基本数据类型传递是做值传递,而引用数据类型传递是在做引用传递,即将地址进行传递。
(1)基本数据类型的传递
测试String:
public class Test{ public static void main(String[] args) { String xString = new String("博美"); change(xString); System.out.println(xString); } static void change(String xString) { xString = "哈士奇"; } }
测试int:
public class test{ public static void main(String[] args) { // 测试引用传递 int x = new Integer(12); change(x); System.out.println(x); } static void change(int x) { x = 14; } }
(2)测试引用类型,以数组类型为例
public class test{ public static void main(String[] args) { int[] testArray = { 1, 3, 5, 7, 99 }; change(testArray); System.out.println(testArray[0]); } public static void change(int[] array) { array[0] = 0; } }
从以上的测试中可以看出,基本数据类型int,String在进行参数传递的时候都是进行的值传递,即直接将值copy一份传入,函数改变的并不是值的本身,或者说并没有对原来的值产生影响。而引用传递的话就可以在被调用方法中对实参进行修改了。