值傳遞:
方法調用時,實際參數把對應的值傳遞給對應的形式參數,方法執行中形式參數的值的改變不會影響到實際參數的值。
比如一個方法:
public static void print(int i){
System.out.println(i*2);
}
我調用print方法,傳參數:5 : print(5);
這樣程序就不會改變這個值了。
引用傳遞:
也稱爲傳地址,方法調用時,實際參數的引用(地址,在內存中指向的地址,而不是參數的值)被傳遞給方法中對應的形式參數,在方法執行中,對形式參數的操作實際上
就是對實際參數的操作,方法執行中形式參數值的改變會影響實際參數的值。
比如:
public static void changeUser(User u){
u.setName("china");
}
這樣,實際參數的值也會改變,因爲傳過來的是一個對象在內存裏面的地址,在方法裏面修改是直接修改內存裏面的值。