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

本文深入探讨了Java中基本类型和引用类型的参数传递机制。通过具体示例,解释了基本类型参数传递时的值复制过程,以及引用类型参数传递时的对象共享特性,展示了不同参数类型在方法调用中的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//基本类型的参数传递
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方法里面的覆盖掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值