一圖勝千言,下面圖解均來自Program Creek 網(wǎng)站的Java教程朵栖,目前它們擁有最多的票選近上。如果圖解沒有闡明問題剔宪,那么你可以借助它的標(biāo)題來一窺究竟。
1壹无、字符串不變性
下面這張圖展示了這段代碼做了什么
1 ?String s ="abcd";
2 ?s = s.concat("ef");
2葱绒、equals()方法、hashCode()方法的區(qū)別
HashCode被設(shè)計(jì)用來提高性能格遭。equals()方法與hashCode()方法的區(qū)別在于:
如果兩個(gè)對(duì)象相等(equal)哈街,那么他們一定有相同的哈希值留瞳。
如果兩個(gè)對(duì)象的哈希值相同拒迅,但他們未必相等(equal)。
圖中紅色部分為受檢查異常璧微。它們必須被捕獲,或者在函數(shù)中聲明為拋出該異常硬梁。
注意Collections和Collection的區(qū)別。(Collections包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法)
5荧止、Java同步
Java同步機(jī)制可通過類比建筑物來闡明屹电。
6、別名
別名意味著有多個(gè)變量指向同一可被更新的內(nèi)存塊跃巡,這些別名分別是不同的對(duì)象類型危号。
7、堆和棧
圖解表明了方法和對(duì)象在運(yùn)行時(shí)內(nèi)存中的位置素邪。
8外莲、Java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)域
圖解展示了整個(gè)虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)域的情況。