引用数据变量的赋值和值传递

引用数据变量的赋值和值传递

关于变量的赋值

  1. 基本数据类型,变量保存的是数据值。

  2. 引用数据类型,变量保存的是数据的地址。

    public class ValueTransferTest{
        public static void main(String[] args){
            Order o1 = new Order();
            o1.orderId = 1001;
            Order o2 = o1; //o1和o2地址相同
            //输出结果为:o1=1001,o2=1001
            
            o2.orderId = 1002;
            //输出结果为:o1=1002,o2=1002
        }
    }
    

引用数据类型的值传递

通常在一个方法调用另一个方法来交换两个值的时候,都会使用 return 或在方法中直接输出交换结果。否则,在方法执行结束后就会销毁,无法达到换值的效果。

可以尝试下面这样👇

class Data{
    int m = 10;
    int n = 20;
}
public static void main(String[] args){
    Data data = new Data();
    v.swap(data);
}
swap(Data data){
    int temp = data.m;
    data.m = data.n;
    data.n = temp;
}
//这样即使方法执行完毕,堆中的值已经交换完毕。

同理,数组也可以这样换值。

public void swap(int[] arr,int i,int j){
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值