天天看點

Java中值傳遞和引用傳遞問題

目錄

  • 1. 形參與實參
  • 2. Java的資料類型
  • 3.JVM記憶體的劃分及職能
    • 1. 虛拟機棧
    • 2. 堆
    • 3. 程式計數器
    • 4. 方法區
    • 5. 本地方法棧
  • 4. 資料如何在記憶體中存儲?
    • A.基本資料類型的局部變量
    • B. 基本資料類型的成員變量
    • C. 基本資料類型的靜态變量
  • 6. 值傳遞和引用傳遞
  • 結語

學過Java基礎的人都知道:值傳遞和引用傳遞是初次接觸Java時的一個難點,有時候記得了文法卻記不得怎麼實際運用,有時候會的了運用卻解釋不出原理,而且坊間讨論的話題又是充滿争議:有的論壇文章說Java隻有值傳遞,有的部落格說兩者皆有;這讓人有點摸不着頭腦,下面我們就這個話題做一些探讨,對書籍、對論壇部落格的說法,做一次考證,以得出信得過的答案。

其實,對于值傳遞和引用傳遞的文法和運用,百度一下,就能出來可觀的解釋和例子數目,或許你看一下例子好像就懂,但是當你參加面試,做一道這個知識點的筆試題時感覺自己會,胸有成熟的寫了答案,卻發現是錯的,或者是你根本不會做。

是什麼原因?

那是因為你對知識點沒有了解透徹,隻知道其皮毛。要熟讀一個文法很簡單,要了解一行代碼也不難,但是能把學過的知識融會貫通,串聯起來了解,那就是非常難了,在此,關于值傳遞和引用傳遞,小編會從以前學過的基礎知識開始,從記憶體模型開始,一步步的引出值傳遞和引用傳遞的本質原理,故篇幅較長,知識點較多,望讀者多有包涵。

......

......

在全面了解值傳遞和引用的基礎上,鞏固練習:

1.《Java值傳遞以及引用的傳遞、數組的傳遞!!》

最後一題的圖解(有點醜,湊合看)

Java中值傳遞和引用傳遞問題

2.《一道題目來分析Java中的值傳遞和引用的傳遞》

如果以上幾題測試都正确,那麼恭喜你,基本掌握了值傳遞和引用的關系~