java值传递一瞥

xiaoxiao2021-02-28  83

阅读说明: code中的注释号码与文档中的段落标号对应。 本程序意图在于说明当方法外的对象在调用方法的时候,是如何传递引用的。

主程序

import java.util.HashMap; import java.util.Map; public class Main1 { public static void main(String[] args) { Main1 m1 = new Main1(); Map<String, String> outterMap = new HashMap<String, String>();//1 outterMap.put("outterKey1", "outterValue1");//2 m1.newAInnerMap(outterMap);//3 System.out.println(outterMap.hashCode() + "==" + outterMap);//8 } public void newAInnerMap(Map<String, String> innerMap) {//4 innerMap = new HashMap<String, String>();//5 innerMap.put("innerKey1", "innerValue1");//6 System.out.println(innerMap.hashCode() + "==" + innerMap);//7 } }

1、新建一个outterMap 2、将一个键值对(outterKey1:outterValue1)放入outterMap,内存图如下: 3、调用m1对象的newAInnerMap方法 4、调用过程 a)建立临时变量innerMap b)将outterMap的引用赋值给innerMap 5、innerMap指向新建的HashMap对象 6、将一个键值对(innerKey1:innerValue1)放入innerMap 7、输出innerMap的关键信息:32041982=={innerKey1=innerValue1} 8、退出m1对象的newAInnerMap方法, 输出outterMap的关键信息:155194038=={outterKey1=outterValue1} outterMap的值从最开始就没有受到影响。

转载请注明原文地址: https://www.6miu.com/read-78400.html

最新回复(0)