Java按值传递和按引用传递

这个问题在这里已经有了答案:

  • Java是“通过引用传递”还是“按值传递”? 78个答案

  • Java总是只传值 ,只是在这种情况下,HashMap的引用是按值传递的。 valueMap引用与inputMap相同的对象。

    这就是为什么当你使用valueMap添加一个键值对时,它会反映回inputMap ,因为两者都指向相同的HashMap对象。

    Eng.Fouad的这个答案很好地解释了这个概念。


    Java是通过价值传递的。 但你的怀疑是参考,甚至参考在Java通过价值。

    所以通过参考值,地图就会生效。

    你对通过价值传递感到困惑。 按值传递的意义引用中的值传递。


    当调用useDifferentMap(inputMap) ,将inputMap分配给参数Map<String, String> valueMap

    Map<String, String> valueMap = inputMap;
    

    赋值之后,两个引用inputMapvalueMap现在引用内存中的同一个对象,因此通过一个引用修改该对象将反映到另一个引用。

    链接地址: http://www.djcxy.com/p/3523.html

    上一篇: Java Pass By Value and Pass By Reference

    下一篇: Why can't my Java method change a passed variable?