一、值传递和引用传递
方法调用是编程语言中非常重要的一个特性,在方法调用时通常需要传递一些参数来完成特定的功能。Java语言提供了两种参数传递的方式:值传递和引用传递。
(1)值传递
在方法调用中,实参会把它的值传递给形参,形参只是用实参的值初始化一个临潼是的存储单元,因此形参和实参虽然有着相同的值,但是却有着不同的存储单元,因此对实参的改变不会影响形参的值。
(2)引用传递
在方法调用中,传递的是对象(也可以看作是对象的地址),形参和实参指向相同的一个地址,因此对形参的修改会影响实参的值。
(3)范围:
- 原始数据类型在传递参数时是按值传递;
- 包装类型在传递参数时是按引用传递;
(4)示例:
package aaa;
public class Test {
public static void testPassParameter(StringBuffer ss1, int n) {
ss1.append(" World"); //引用
n = 8; //值
}
public static void main(String[] args) {
int i = 1;
StringBuffer s1 = new StringBuffer(" Hello");
testPassParameter(s1,i);
System.out.println(s1);
System.out.println(i);
}
}
(5)运行截图: