java的值傳遞與引用傳遞

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

相關文章
相關標籤/搜索