java基础-值传递、引用传递

本文介绍了Java中参数传递的方式,包括值传递和引用传递。通过示例代码展示了这两种方式的区别,值传递无法改变原始变量的值,而引用传递则可以通过方法内部操作影响到原始变量。
摘要由CSDN通过智能技术生成

值传递、引用传递


形参:在方法生命是用于接收外界传入的数据

实参:调用方法时实际传入的值

值传递:基本数据类型是属于值传递调用。当我们要实现交换时,方法内可以完成交换,指示实参进行了交换,方法结束,栈空间中就会销毁方法内的局部变量。所以在进行值传递的时候,最终值还是实参的初始化,并没有被修改。值改变作用到形参,而不会到实参.

 

    public static void main(String[] args) {

          int a = 4;

          int b = 5;

          Demo1.swap(a,b);

          System.out.println("a="+a+"\tb="+b);

     }

     

     public static void swap(int a,int b) {

          int temp = a;

          a = b;

          b = temp;

          System.out.println("a="+a+"\tb="+b);

     }

 

引用传递:将实参的引用类型的值(即在堆空间中生成的首地址的值)传递给形参的引用类型的变量

    public static void main(String[] args) {

          Demo1_Entity a = new Demo1_Entity();

          a.a = 4;

          a.b = 5;

          swap2(a.a, a.b);//a=5  b=4

          System.out.println("a=" + a.a + "\tb=" + a.b);//a=4  b=5

          

          swap(a);//a=5  b=4

          System.out.println("a=" + a.a + "\tb=" + a.b);//a=5  b=4

          

     }

     public static void swap(Demo1_Entity a) {

          int temp = a.a;

          a.a = a.b;

          a.b = temp;

          System.out.println("a=" + a.a + "\tb=" + a.b);

     }

     

     public static void swap2(int a,int b) {

          int temp = a;

          a = b;

          b = temp;

          System.out.println("a=" + a + "\tb=" + b);

     }

 

//实体类:

public class Demo1_Entity {

     

     public int a ;

     public int b;

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值