在Java中,參數傳遞分為值傳遞和引用傳遞兩種方式。值傳遞是傳遞復制后的參數值,而引用傳遞是傳遞參數的引用地址。
public class Main { public static void main(String[] args) { int num = 10; String str = "Hello World"; change(num, str); System.out.println(num); System.out.println(str); } public static void change(int num, String str) { num = 20; str = "Hello Java"; } }
在上面的代碼中,我們可以看到我們傳遞了兩個參數,一個是int類型的num,一個是String類型的str。在change方法中,我們改變了num和str的值。但是在主方法中我們打印出的num和str的值卻沒有變化。
原因是在Java值傳遞中,傳遞的是一個復制后的值。也就是說,在change方法中改變的是num和str的副本,不會影響主方法中的值。
public class Main { public static void main(String[] args) { int[] array = {1, 2, 3}; change(array); System.out.println(array[0]); } public static void change(int[] array) { array[0] = 10; } }
在上面的代碼中,我們傳遞了一個int類型的數組array。在change方法中,我們改變了數組的第一個元素。在主方法中,我們打印出了array的第一個元素,發現它的值變成了10。
這是因為Java引用傳遞中,傳遞的是參數的引用地址,也就是說,在change方法中實際上改變的是參數的值,而不是復制后的值。
總的來說,值傳遞和引用傳遞在Java中都有應用,需要根據具體情況而定。如果我們需要改變一個對象的屬性或內部狀態,應該使用引用傳遞。如果我們只需要操作一個變量的值而不影響其他地方的值,應該使用值傳遞。
上一篇python畫畫填充顏色
下一篇java的關鍵字和常量