8 张图,看你是否理解 Java
一圖勝千言,下面圖解均來自Program Creek 網站的Java教程,目前它們擁有最多的票選。如果圖解沒有闡明問題,那么你可以借助它的標題來一窺究竟。
1、字符串不變性
堆中常量池決定(畢竟final類型,JVM還特別優(yōu)化了String)
2、equals()方法、hashCode()方法的區(qū)別
HashCode被設計用來提高性能。equals()方法與hashCode()方法的區(qū)別在于:
如果兩個對象相等(equal),那么他們一定有相同的哈希值。
如果兩個對象的哈希值相同,但他們未必相等(equal)。
如果hash相等,其實就是第三個桶的情況,兩個元素(一般情況下,用鏈表或者紅黑樹串起來)
3、Java異常類的層次結構
圖中紅色部分為受檢查異常。它們必須被捕獲,或者在函數(shù)中聲明為拋出該異常。
4、集合類的層次結構
注意Collections和Collection的區(qū)別。(Collections包含有各種有關集合操作的靜態(tài)多態(tài)方法)
5、Java同步
Java同步機制可通過類比建筑物來闡明。
不是人民幣玩家的(VIP),車還沒來就好好等著。
6、別名
這種情況經常出現(xiàn)在使用了的ViewHolder的ListView中
7、堆和棧
圖解表明了方法和對象在運行時內存中的位置。
理解這個可以明白淺拷貝和深拷貝的原理,對象在堆中(除了方法區(qū),常量池外,另外一片可以抽象的說是線程專有的運行時數(shù)據(jù)區(qū))
8、Java虛擬機運行時數(shù)據(jù)區(qū)域
圖解展示了整個虛擬機運行時數(shù)據(jù)區(qū)域的情況。
每個線程PC寄存器,JVM棧,本地方法棧是自己特有的,神圣不可侵犯。堆,方法區(qū),運行時常量是我們大中國??的,時刻幫你,給你和平,給你富有。
總結
以上是生活随笔為你收集整理的8 张图,看你是否理解 Java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MongoDB 是什么 ? 能干嘛 ?
- 下一篇: Spring Web 应用的最大败笔