首页 > 代码库 > 值传递和引用传递

值传递和引用传递

public static

*值传递

如果参数类型是基本数据类型,就属于值传递

*引用传递

如果参数类型是引用类型(比如数组)的,就属于引用的传递

*区别:

若方法是无返回值类型的交换值,则值传递后,打印输出的仍然是局部变量的值,

若是引用传递,则打印输出的是方法里交换后的值

 1 //引用传递 2 package com.wh.Object3; 3  4 import java.util.Arrays; 5  6 public class Demo { 7     public static void fun(int[] arr,int[] arr2){ 8         for(int i=0;i<arr.length;i++){ 9             int temp=arr[i];10             arr[i]=arr2[i];11             arr2[i]=temp;12         }13     }14     public static void main(String[] args) {15          int[] num={1,2,3,4,5,6,7,8,9,10};16          int[] num2={51,52,53,54,55,56,57,58,59,60};17          System.out.println("交换前");18          System.out.println("数组一     "+Arrays.toString(num));19          System.out.println("数组二     "+Arrays.toString(num2));20          fun(num,num2);21          System.out.println("交换后");22          System.out.println("数组一     "+Arrays.toString(num));23          System.out.println("数组二     "+Arrays.toString(num2));24     }25 }
1 //运行结果2 交换前3 数组一     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]4 数组二     [51, 52, 53, 54, 55, 56, 57, 58, 59, 60]5 交换后6 数组一     [51, 52, 53, 54, 55, 56, 57, 58, 59, 60]7 数组二     [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

值传递和引用传递