java map值传递的问题

map=map2和map2=map为什么会有这种区别?

第1个回答  2018-02-27
第一个set方法中map2=map,其实就是把map的指针指向了map2,这时候map2就是map,没区别,但是map还是map,所以改map2就是等于改map。
第二个方法也是一样的道理,map=map2,map就是等于map2了,跟原来的参数map已经完全没关系了。
第2个回答  2018-02-27
set2中把map2赋给map,改变的只是形参map的堆内存的指向,不影响调用set2方法时传递过来的实参map,所以调用方法set2后,测试方法Test中的map并没有发生改变本回答被网友采纳
第3个回答  2018-02-27
哪种区别?追问

为什么set2不能改变map的内容

追答

你把set2中map2.put的操作放到map=map2之前,就可以改变了

相似回答