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

      在方法中,如果传递的是借本数据类型,会把基本数据类型的值赋值一份放到方法中, 在方法中的是复制的值,相互不影响,在调用方法没有返回值的时候 ,两个值相互不影响。
 public static void main(String[] args) {
   int a=10;
   int b=20;
   int[]arr={1,2,3,4,5};
   change( a,b);
   /*change(arr);
   for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
   }*/
   System.out.println("a:"+a+"b:"+b);
  }

  private static void change(int a, int b) {
   a=b;
   b=a+b;
   System.out.println("a:"+a);
   System.out.println("b:"+b);
   
  }

A:20
b:40
a:10b:20

在方法中  如果传递的是引用数据类型,实际传递的是引用数据类型所代表的地址值 都是指向堆内存的中的引用数据。当一个修改地址值所对应的引用数据时,另一个也会发生变化。

public class Arrays2 {
  public static void main(String[] args) {
   int[]arr={1,2,3,4,5};
   //change( a,b);
   change(arr);
   for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
   }
  }
  private static void change(int[] a) {
   for (int i = 0; i < a.length; i++) {
    if(a[i]/2==1){
     a[i]*=2;
    }
    System.out.println(a[i]);
   }
  }
}

1 4 6 4 5
1 4 6 4 5   数组都会变化

内存图解如下 

 


在java中只有值传递


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值