java 值传递还是引用传递
首先看一下这篇文章 -- 跳
这篇文章就进行了大致的介绍,以及一些简单的例子,但是还缺少一个关键的例子:
public class QQ { public static void main(String[] args) { String[] strArray = new String[] { "1", "2" }; processOne(strArray); System.out.println(strArray[0] + " " + strArray[1]); processTwo(strArray); System.out.println(strArray[0] + " " + strArray[1]); } public static void processOne(String[] strArray) { strArray = new String[] { "3", "4" }; } public static void processTwo(String[] strArray) { strArray[0] = "3"; strArray[1] = "4"; } }
上面代码的输出为:
1 2
3 4
其实这个补充的例子主要想说明的是:如果参数是引用类型,则传递的是该参数所引用的对象在堆中地址值的拷贝
上面的例子中,数组对象可能会造成一点误解;其实不单单是数组对象,任何一个对象都是成立的。