java中的參考型別和實值型別

來源:互聯網
上載者:User

標籤:src   不同   bsp   png   內容   棧記憶體   ble   形參   為什麼   

實值型別和參考型別的不同

【定義】

參考型別 表示你操作的資料是同一個,也就是說當你傳一個參數給另一個方法時,你在另一個方法中改變這個變數的值,那麼調用這個方法時,傳入的變數的值也將改變。

實值型別 表示複製一個當前變數傳給方法,當你在這個方法中改變這個變數的值時,最初聲明的變數的值不會變。

【實值型別】

實值型別就是基礎資料型別 (Elementary Data Type) 基礎資料型別 (Elementary Data Type)常被稱為四類 八種

  1. 整型:byte、short、int、long
  2. 浮點型:float、double
  3. 字元型:char
  4. 邏輯型:boolean

【參考型別】

除了四類、八種基本類型外,所有的類型都稱為參考型別(數組,類,介面,字串)

[值傳遞]    

基礎資料型別 (Elementary Data Type)賦值都屬於值傳遞,值傳遞傳遞的是實實在在的變數值,是傳遞原參數的拷貝,值傳遞後,實參傳遞給形參的值,形參發生改變而不影響實參。

在弄清楚實值型別與參考型別之後,最後一點就是值傳遞與引用傳遞

【引用傳遞】

參考型別之間賦值屬於引用傳遞。引用傳遞傳遞的是對象的引用地址,也就是它的本身

引用傳遞:傳的是地址,就是將實參的地址傳遞給形參,形參改變了,實參當然被改變了,因為他們指向相同的地址。

引用和我們的指標差不多,但是它不又不需要我們去具體的操作

【記憶體配置】

一個具有實值型別(value type)的資料存放在棧內的一個變數中。即是在棧中分配記憶體空間,直接儲存所包含的值,其值就代表資料本身。

實值型別的資料具有較快的存取速度。

一個具有參考型別(reference type)的資料並不駐留在棧中,而是儲存於堆中。即是在堆中分配記憶體空間,不直接儲存所包含的值,而是指向所要儲存的值,其值代表的是所指向的地址。當訪問一個具有參考型別的資料時,需要到棧中檢查變數的內容,

該變數引用堆中的一個實際資料。參考型別的資料比實值型別的資料具有更大的儲存規模和較低的訪問速度。

Java中有記憶體回收機制,棧記憶體中的變數隨著方法的結束記憶體自然銷毀了,而用參考型別的時候,當方法結束的時候,這個對象可能被另一個參考型別所應用,不會銷毀,只有當一個對象沒有任何引用變數引用的時候,記憶體回收機制才會回收

2,為什麼Java中資料的存放有堆和棧之分?

 

java中的參考型別和實值型別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.