基本类型和引用类型的参数传递

//基本类型的参数传递
public class Demo01 {
    public static void main(String[] args) {
          int i = 2;
          show(i);
        System.out.println(i);
    }
    public static void show(int i){
        i = 5;
    }
}

基本类型作为参数传递的时候,刚开始时main方法压栈,然后main方法里的变量i,把自己的i空间里的值复制一份给调用的show方法,然后show根据自己收到的i的值,来对自己方法里的变量i进行操作,操作完成之后方法弹栈,最后输出的还是main方法里的i变量,所以show方法里的变量对main方法里的变量没有产生一点影响。这就是基本类型作为参数传递
再往程序里面加点东西看的会更加清晰

public class Demo01 {
    public static void main(String[] args) {
          int i = 2;
          show(i);
        System.out.println(i);
    }
    public static void show(int i){
        i = 5;
        System.out.println("show: "+i);
    }
}

最后的执行结果如下
运行结果
这个进一步说明了基本类型的参数传递的一些要点

//引用类型的参数传递
public class Demo02 {
    int i ;
    public static void main(String[] args) {
        Demo02 d = new Demo02();
       d.i = 5;
           show(d);
        System.out.println(d.i);
    }
    public static void show(Demo02 d){
        d.i = 10;
    }
}

最终的结果是10
这里是引用类型的参数传递,main方法先压栈,然后创建对象,讲引用变量空间地址复制了一份给到了show方法的引用类型的参数,然后现在用两个引用指向了同一个对象,main方法里面的先执行,然后show方法里面的后来才指向对象,所以会把main方法里面的覆盖掉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值