Java函数参数传递方式详解
在阅读本文之前,根据自己的经验和理解,大家可以先思考并选择一下Java函数的参数传递方式:
A.是按值传递的?
B.按引用传递的?
C.部分按值部分按引用?
此处暂不宣布正确答案,我们通过一个简单的例子让大家自己找答案:
1.先定义一个类型Value
newValue{Value_ref2 = value_ref1; // 按值传入引用value_ref1,得到value_ref1的副本value_obj2 = new Value();// value_obj2被创建、初始化在“堆“中value_ref2 -> value_obj2;// value_ref2 指向value_obj2value_ref2 ->value_obj2.setValue(“xxx”);// value_obj2 的value被修改printValueObj2();// 此处打印的是obj2的值}modifyValue{Value_ref2 = value_ref1; // 按值传入引用value_ref1,得到value_ref1的副本value_ref2 ->value_obj1.setValue(“xxx”);// value_obj1 的value被修改printValueObj1();// 此处打印的是obj1的值}