参数传递

参数传递

参数传递实际上传递的是变量中保存的具体的值(这里的值可能是字面值也可能是令一个Java对象的内存的地址)
例:

  1. int i = 10;
    int j = i;
    //i传递给j,实际上只是将i变量中保存的10传递给j了,j实际上是一块全新的内存空间。

  2. User u = 0x1234;
    User u2 = u;
    //u传递给u2,实际上是将0x1234这个值赋值给了u2,u和u2实际上是两个不同的局部变量,但是它们这两个变量指向堆内存中的同一个Java对象。

    	具体参见下面两例:
    	例1:
    
	public class CanShuChangeTest01 {

	public static void main(String [] args) {
		
		int i = 10;
		
		add(i);
		
		System.out.println("main -->" + i);//10
		
	}
	
	public static void add(int i) {
		
		i++;
		System.out.println(i);//11
	}
}

在这里插入图片描述

例2:

public class CanShuChangeTest02 {

	public static void main(String [] args) {
		User u = new User(20);
		
		add(u);
		
		System.out.println("main-->" + u.age);//21
		
	}
	
	public static void add(User u) {
		
		u.age++;
		System.out.println("add-->" + u.age);//21
	}
}

class User{
	
	int age;
	
	public User(int i) {
		
		age = i;
	}
}
```cpp

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值