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