我已经完成了以下示例来检查我的知识
import java.util.Map;
public class HashMap {
public static Map<String, String> useDifferentMap(Map<String, String> valueMap) {
valueMap.put("lastName", "yyyy");
return valueMap;
}
public static void main(String[] args) {
Map<String, String> inputMap = new java.util.HashMap<String, String>();
inputMap.put("firstName", "xxxx");
inputMap.put("initial", "S");
System.out.println("inputMap : 1 " + inputMap);
System.out.println("changeMe : " + useDifferentMap(inputMap));
System.out.println("inputMap : 2 " + inputMap);
}
}
输出结果为:
original Map : 1 {initial=S, firstName=xxxx}
useDifferentMap : {lastName=yyyy, initial=S, firstName=xxxx}
original Map : 2 {lastName=yyyy, initial=S, firstName=xxxx}
这个方法 useDifferentMap
获取一个映射表并更改值,然后返回相同的映射表。
修改后的映射表将包含修改后的值,并且其作用域仅限于 useDifferentMap
方法的本地。
我的问题是,如果 Java 是按值传递的,那么修改后的值不应该影响原始映射表。
那么 Java 是按值传递还是按引用传递?
谢谢