理解Java機制最受歡迎的8幅圖

jopen 10年前發布 | 21K 次閱讀 Java Java開發

原文鏈接:  Top 8 Diagrams for Understanding Java

翻譯人員: 鐵錨

翻譯時間: 2013年10月29日

 

世間總是一圖勝過千萬言!

下面的8幅圖來自于 Program Creek 的 Java教程 ,目前這是該網站最受歡迎的文章.
希望本文能幫你回顧你已經知道的那些知識。如果圖片講解的不夠清晰,你可能需要閱讀詳細的文章或者進行搜索。

1. String對象不可改變的特性

下圖顯示了如下代碼運行的過程:

</div>

String s = "abcd";  
s = s.concat("ef"); 

  1. </ol> </div> 中文參考: Java String 詳解 

    理解Java機制最受歡迎的8幅圖

    圖1

    2. equals()與hashCode()方法協作約定

    HashCode(哈希編碼,散列碼)是設計了用來提高性能的. 
    equals()與hashCode()方法之間的關系可以概括為:
    2.1 如果兩個對象相等(equal),那么必須擁有相同的哈希碼(hash code)
    2.2 即使兩個對象有相同的哈希值(hash code),他們不一定相等.
    中文參考: HashMap的實現原理

    理解Java機制最受歡迎的8幅圖

    圖2


    3. Java 異常類層次結構
    粉紅色的是受檢查的異常(checked exceptions),其必須被 try{}catch語句塊所捕獲,或者在方法簽名里通過throws子句聲明.
    另一類異常是運行時異常(runtime exceptions),需要程序員自己分析代碼決定是否捕獲和處理。
    而聲明為Error的,則屬于嚴重錯誤,需要根據業務信息進行特殊處理,Error不需要捕捉。
    中文示例: Exception

    理解Java機制最受歡迎的8幅圖

    圖3


    4. 集合類層次結構關系
    注意Collections(工具類) 和 Collection(集合頂層接口) 的區別:
    中文參考: Collections

    理解Java機制最受歡迎的8幅圖

    圖4.1

    理解Java機制最受歡迎的8幅圖

    圖4.2




    5. 鎖——Java同步的基本思想
    Java同步(synchronization)機制可以用一座大樓來比喻:
    中文參考: 線程同步---synchronized

    理解Java機制最受歡迎的8幅圖

    圖5


    6.Java對象引用處理機制
    別名是指多個引用指向同一個內存地址(對象實際地址,可以理解為這就是對象),甚至這些引用的類型完全不一樣.

    理解Java機制最受歡迎的8幅圖

    圖 6


    7. Java 對象在堆中的內存結構
    下圖顯示了運行時內存中方法和對象所處的地盤
    絕大多數情況下:對象(及其屬性域)都保存在堆里面,而方法的參數,局部變量(引用,以及6種基本類型)保存在棧里面.
    當然,極特殊的情況下(極度優化[對象入棧],常量池[String],靜態變量[方法區]等)也會打破這個潛規則。

    理解Java機制最受歡迎的8幅圖

    圖 7


    8. JVM 運行時數據區
    下圖顯示了JVM(Java虛擬機)運行時總體的數據區域劃分

    理解Java機制最受歡迎的8幅圖

    圖8


    相關文章:
    1.  Java中Set的contains()方法

    2. equals()與hashCode()方法協作約定

    3. Java對象引用處理機制

    1. HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!