值传递跟引用传递
值传递跟引用传递
值传递:方法调用时,实际参数把值传给形式参数,函数接收值是其原始值的一个copy,此时内存中存在两个相等的基本类型,实际参数跟形式参数。
后面的操作都是针对其形式参数的操作,不会影响实际参数的值。
引用传递:方法调用时,实际参数的引用内存地址,被传递给相应的形式参数。函数接收的是实际参数的内存地址。
后面的方法执行中,实际参数跟形式参数都指向的是同一个内存地址,所以此刻对引用对象的操作会影响到实际对象。
#特例 :String类型和包装类型都是对象类型,所以必然是引用传递。 但是由于String类和 Integer, Double等包装类是immutable的类型都没有提供value对应的setter方法,
我们无法改变其内容,所以导致我们看起来好像是值传递。