值传递和引用传递

Posted 奋斗的少年WH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了值传递和引用传递相关的知识,希望对你有一定的参考价值。

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]

 

以上是关于值传递和引用传递的主要内容,如果未能解决你的问题,请参考以下文章

值传递和引用传递的区别

Android 我应该在异步任务中将片段作为弱引用传递吗?

Python 值传递和引用传递

值传递和引用传递

java值传递和引用传递

Python 值传递和引用传递