1、
常常搞不清楚,當一個對象作爲參數傳入到方法中時,爲啥有時候值能被改變,有時候又不會改變,如下說明緣由:java
一、當傳入的參數,在方法中能被改變的爲 引用傳遞spa
二、當傳入的參數,在方法中沒被改變的爲 值傳遞code
java的數據類型分爲基本數據類型和引用數據類型,方法的參數分爲實際參數和形式參數。通常狀況下,在數據作爲參數傳遞的時候,基本數據類型是值傳遞,引用數據類型是引用傳遞(地址傳遞)對象
2、值傳遞
public class Test { public static void main(String[] args) { int a = 1; int b = 2; change(a, b); System.out.println("main a:" + a); System.out.println("main b:" + b); } public static void change(int a, int b) { a++; b++; System.out.println("change a:" + a); System.out.println("change b:" + b); } }
輸出結果以下:blog
3、引用傳遞
public class Test { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; change(arr); System.out.println("change :" + arr[0]); } public static void change(int[] array) { array[0] = 0; } }
輸出結果以下:class