1. 程式人生 > >JAVA的值傳遞與引數傳遞

JAVA的值傳遞與引數傳遞

3.引用傳遞和值傳遞

值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,函式接收的是原始值的一個copy,此時記憶體中存在兩個相等的基本型別,即實際引數和形式引數,後面方法中的操作都是對形參這個值的修改,不影響實際引數的值。
引用傳遞:方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,函式接收的是原始值的記憶體地址;在方法執行中,形參和實參內容相同,指向同一塊記憶體地址,方法執行中對引用的操作將會影響到實際物件。

notes: String,以及Integer、Double等幾個基本型別包裝類,它們都是immutable型別,因為沒有提供自身修改的函式,每次操作都是新生成一個物件,所以要特殊對待,可以認為是和基本資料型別相似,為傳值操作。