来源:http://www.importnew.com/29023.html

在Java中,参数都是按值传递的。被传递到方法中的拷贝值,要不就是一个引用或一个变量,取决于原始参数的类型。从现在开始,下面的几条规则将帮助你理解方法中对于参数的修改怎么影响原始参数变量。

  1. 在方法中,修改一个基础类型的参数永远不会影响原始参数值。
  2. 在方法中,改变一个对象参数的引用永远不会影响到原始引用。然而,它会在堆中创建了一个全新的对象。(译者注:指的是包装类和immutable对象)
  3. 在方法中,传入的参数为对象,修改该对象的任何一个的属性影响原始对象(传入对象)中的属性。
  4. 在方法中,修改集合Maps会影响原始集合参数。