Java -暫時無法解釋的現象
阿新 • • 發佈:2018-12-13
Java 給方法傳入不同的引數型別(引數本身抑或是引數的成員變數)會不會改變本身的引數的值?
public class Main { private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){ b = true; //形參,不會改變原有值 boo = new Boolean(true); //引用變數的直接操作相當於值傳遞,不會改變原來的引用變數 arr[0] = true; //引用變數的屬性的操作,會改變原有引用的屬性,相當於傳址呼叫 } //測試 public static void main(String[] args) { boolean b = false; Boolean boo = new Boolean(false); Boolean[] arr = new Boolean[]{false}; getMiddleOne(b, boo, arr); System.out.println(b); System.out.println(boo.toString()); System.out.println(arr[0]); /** * output: * false * false * true */ } }