1. 程式人生 > 實用技巧 >Java中的引數傳遞

Java中的引數傳遞

實參與形參

  1. 形式引數:是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳入的引數。
  2. 實際引數:在呼叫有參函式時,主調函式和被調函式之間有資料傳遞關係。在主調函式中呼叫一個函式時,函式名後面括號中的引數稱為“實際引數”。
  3. 實際引數是呼叫有參方法的時候真正傳遞的內容,而形式引數是用於接收實參內容的引數。

值傳遞和引用傳遞

  1. 值傳遞(pass by value):是指在呼叫函式時將實際引數複製一份傳遞到函式中,這樣在函式中如果對引數進行修改,將不會影響到實際引數。
  2. 引用傳遞(pass by reference):是指在呼叫函式時將實際引數的地址直接傳遞到函式中,那麼在函式中對引數
    所進行的修改,將影響到實際引數。

傳共享物件呼叫(共享物件傳遞)

  傳共享物件呼叫中,先獲取到實際引數的地址,然後將其複製,並把該地址的拷貝傳遞給被調函式的形式引數。因為引數的地址都指向同一個物件,所以我們也稱之為"傳共享物件",所以,如果在被調函式中改變了形式引數的值,呼叫者是可以看到這種變化的。

Java中引數傳遞

  1. 基本資料型別使用值傳遞
  2. 物件傳遞,把物件的引用當做值傳遞給方法,即共享物件傳遞
  3. Java物件的傳遞,是通過複製的方式把引用關係傳遞了,如果我們沒有改引用關係,而是找到引用的地址,把裡面的內容改了,是會對呼叫方有影響的,因為大家指向的是同一個共享物件。
  4. Java的物件傳遞,如果是修改引用,是不會對原來的物件有任何影響的,但是如果直接修改共享物件的屬性的值,是會對原來的物件有影響的。