深入理解Java虛擬機:JVM高級特性與最佳實踐 讀後感

在這裏插入圖片描述

最開始學編程是學的C語言,後來工作了就使用了Mac電腦,發現C語言沒法移植,感覺很麻煩,代碼都得重寫一遍,畢業後開始做安卓開發,
接觸了java語言,我第一反應就是,會不會我以後換電腦,代碼還需要重寫一遍,這不很麻煩?在開 的時候發現了java會生成.class文件,開始沒覺得怎麼樣,後來一天用windows開發的同事讓我把demo借他看看,發現可以直接在window上運行,這才知道這都是java虛擬機的功勞,後來他推薦給我周志明的《深入理解Java虛擬機:JVM高級特性與最佳實踐 》 一書,是第二版,買回來就愛不釋手,隔段時間就翻看,隨着工作年齡的增加,每次翻看,對立面的內容都有更加深刻的理解。

write once run everywhere 這個功能太讚了!!可以跨平臺了!隨着不斷地研讀 才知道他是 將 .java會生成.class 文件。然後jvm 會將.class 文件翻譯成機器碼(101010) 在不同的平臺上,jvm會將相同的.class文件轉換成不同的機器碼。 在深入就理解Classloader,java將class文件的二進制文件加載到jvm中的內存中,放在了方法區裏面,然後在堆中創建class對象。用來封裝方法區中的數據結構。然後映射爲jvm可以識別的數據結果(class對象),這個class對象就是用來訪問方法區的入口。 然後就是雙親委派,打破雙親委派。 這段內容看似簡單,但是因爲當時水平有限,反覆閱讀了很多遍才能理解。現在還能記得第一次看這段內容的時候,真的是味同爵蠟。通過反覆的看才真正理解周志明書中的意思,真的是書讀百遍其義自見。

感覺jvm真的很難,工作一兩年的去啃英文的java虛擬機規範更是難上加難,幸虧有了周志明的《深入理解Java虛擬機》這本書,讓我們可以最快速的去理解 java虛擬機的實現原理,代碼是怎麼跑起來的。

後來就遇到了更多關於java虛擬機的問題,因爲java虛擬機自己動的進行內存的管理、回收,所以馬上就出現了oom等問題,根本就無從下手,這個時候就想到了《深入理解Java虛擬機》趕緊拿起來翻看,這才得知,內存泄漏,內存溢出等問題。知道了棧上分配,內存逃逸,MLAB等技術,也理解了gc的流程,新生代,來年代,minorgc,fullgc等等。感覺jvm虛擬機內存自動管理真是個雙刃劍,也需要開發者瞭解其內部原理。

同時也很感謝周志明寫出了《深入理解Java虛擬機:JVM高級特性與最佳實踐》 這本書,讓國內java開發者能快速的瞭解java虛擬機的原理,解決了很多開發上的問題。

java還在不斷的進步,jvm也不斷的迭代,作爲java開發者不斷的去研究jvm是非常有必要的,只要不斷地瞭解底層的原理,才能在工作中解決棘手問題,在同事中脫穎而出。

京東購買鏈接爲:https://item.jd.com/12607299.html?dist=jd

噹噹購買鏈接爲:http://product.dangdang.com/28495225.html

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章