Java值传递与引用传递
个人理解,不足之处请各位大佬多多指教
值传递:复制参数值并传递:
public class Hello {
public static void main(String[] args) {
Hello hello = new Hello();
// 基本数据类型
int i = 10;
hello.pass(i);
System.out.println("i1 = " + i);
}
public void pass(int i) {// 这里相当于int pas;pas=10;这里接收的值为10,而不是i
i = 20;
System.out.println("i2 = " + i);
}
}
输出:
i2 = 20
i1 = 10
引用传递:传引用参数的地址:
public class Hello {
public static void main(String[] args) {
Hello hello = new Hello();
// 对象
User user = new User(); //假设这里栈中存储的user地址为0x1122
user.setName("wang"); //
hello.pass(user);
System.out.println("main:"+user.getName());
}
public void pass(User user) {// 这里传的是0x1122这个地址值
user.setName("java");
System.out.println("The name is :" + user.getName());
}
}
输出:
The name is :java
main:java

参考:https://blog.csdn.net/SummerOfFoam/article/details/109570841

浙公网安备 33010602011771号