Java中方法调用时的值传递和引用传递

一、形参和实参

实参:实际参数,是在调用方法时传递给方法的参数。
形参:是在定义方法和在方法体内使用的参数,目的是用来接收调用该方法时传入的参数。在调用方法时,实参将赋值给形参。因而,必须注意实参的个数、类型应与形参一一对应,并且实参必须要有确定的值。

二、值传递和引用传递

1.对于基本数据类型的参数传递,是值传递的方式,形参是实参的值的拷贝,在方法体内部对形参的改变不影响外部实参的值。
2.对于引用类型的参数传递,是引用传递的方式,即传递给形参的值是实参的地址,在方法中对参数所进行的修改,将影响到实际参数。
3.还有一种说法,引用传递实际上也是值传递,只不过此时复制的是实参的地址值,在方法体内改变的也是地址值指向的堆内存中的实际对象,并没有真正改变参数,参数的地址值没有变。所以在Java中参数传递的方式都是值传递。
4.对于String类,虽然是对象,但是由于String类的不可变性,在方法体内部如果对形参进行修改,实际上是新生成了一个对象,而对方法体外部的实参没有改变。
5.对于基本数据类型的包装类,由于和String类一样不可变,所以在方法体内部修改不会影响方法体外部的实参。

你可能感兴趣的:(Java中方法调用时的值传递和引用传递)