画图实现:需求:演示java基本数据类型值传递机制和引用数据类型值传递机制的区别
以下是一种可能的实现方式:
public class ValuePassingDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("Before swapping:");
System.out.println("a = " + a);
System.out.println("b = " + b);
swap(a, b);
System.out.println("After swapping:");
System.out.println("a = " + a);
System.out.println("b = " + b);
int[] array = {1, 2, 3};
System.out.println("Before modifying array:");
System.out.println("array[0] = " + array[0]);
System.out.println("array[1] = " + array[1]);
System.out.println("array[2] = " + array[2]);
modifyArray(array);
System.out.println("After modifying array:");
System.out.println("array[0] = " + array[0]);
System.out.println("array[1] = " + array[1]);
System.out.println("array[2] = " + array[2]);
}
public static void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
public static void modifyArray(int[] arr) {
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
}
}
输出结果:
Before swapping:
a = 10
b = 20
After swapping:
a = 10
b = 20
Before modifying array:
array[0] = 1
array[1] = 2
array[2] = 3
After modifying array:
array[0] = 10
array[1] = 20
array[2] = 30
解释:
- 在第一个示例中,
swap()方法使用了值传递机制。当swap(a, b)被调用时,a和b的值被复制到x和y,在方法内部进行交换操作,并不会影响到a和b的值。因此,在交换后,a和b仍然保持原来的值。 - 在第二个示例中,
modifyArray()方法使用了引用传递机制。当modifyArray(array)被调用时,array的引用被复制到arr,在方法内部修改arr所指向的数组元素,会影响到原始的array。因此,在修改后,array的元素值发生了变化
原文地址: https://www.cveoy.top/t/topic/hSSj 著作权归作者所有。请勿转载和采集!