日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

无责任书评:每个Java程序员都应该深入理解Java虚拟机!

發布時間:2025/3/21 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 无责任书评:每个Java程序员都应该深入理解Java虚拟机! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java這門語言的發展是很有意思的,它不像Python, Ruby 等完全是開源社區驅動,也不像C#,VB.NET主要由微軟操刀。它是一個以Oracle(之前是Sun)為主,各大巨頭一起參與,一起制定標準的一門語言。

想對Java添加一點特性, 得走JCP流程,巨頭們要審查,看看對自己是否有利,然后投票決定。

在Java的生態中, ?官方曾經制定了很多技術和標準,什么Applet, JSP, EJB,JSF, JavaFX...... ?但是大部分都被淘汰了,原因很簡單,這些標準制定的周期很長, 難以跟上軟件行業迅速的變化,等到各大廠商再把實現給搞定,黃花菜都涼了。 所以大家最常用的反而是開源的框架和工具如Spring。

但是Java 語言本身和Java虛擬機是個例外,因為他們不需要也不可能像應用層那樣劇烈變化,所以作為后端程序員,對他們進行“投資”是最劃算的。

所以我們今天就來聊聊Java虛擬機的書籍。寫這方面的書很多, 比如我最早看的就是這一本。

我個人認為這是相當不錯的一本書,它在講ClassLoader 的時候舉了一個例子,如果沒有雙親委托模型,不懷好意的那些java class 很容易會破壞你的系統,這個例子讓我印象如此深刻,以至于我在寫《我是一個Java Class》的時候,也編了一個類似的例子。

這本書還花了大量的篇幅講解Java Class的文件格式,整數運算,浮點數運算,數組和數組,異常,方法調用等各種實現細節。

相比而言,周志明的那本書就講得比較少。

更好玩的是,這本書還附帶了一個小程序,能夠可視化地、一步步地執行字節碼。如果你要想自己寫個Java虛擬機,可以關注這本書。?

這本書美中不足的就是年代比較久遠,另外翻譯得不太好。

然后我們就要說說周志明的這本神書了 《深入理解Java虛擬機》, 是很多Java程序員的案頭必備。

第一版是2011年出版, 然后每次京東和當當搞活動,我發現這本書總是站在前排,足以說明其經典地位。嗯,希望我的書《碼農翻身》也能有這樣的效果。

?

這本書體現了周志明的深厚功力,把JVM的很多知識講得深入淺出,有很多也是面試之必備。例如Java虛擬機的運行時數據區域,對象的內存布局,垃圾回收算法,性能調優,代碼優化,Java內存模型等等。?

其中的很多內容被博客文章大量抄襲,與其在網上搜了搜去看二手貨,還不如直接看書。

在講理論之外,還舉了很多實踐中的案例,我印象最深刻的就是那個自己動手實現遠程執行功能。

如果說有瑕疵的話,我覺得在講鎖優化,輕量級鎖,偏向鎖,重量級鎖的時候不清楚,讓人看起來云里霧里。 不妨先看看我的文章《我也是一個線程,為什么不讓我阻塞休息呢?》

但是,我必須要說的是:如果剛剛學會Java, 會用Java 框架開發項目,立刻就來看這本書,就需要小心了。?

第一章、第二章估計還不錯,到了第三章“垃圾回收器和內存分配”就會開始犯暈, 堅持到第四章“性能監控和故障處理” 和第五章“調優案例分析和實戰”, 估計就看不行去了, 因為比較枯燥,再加上缺乏經驗,在工作中實際應用得比較少。

這時候可以跳過他們, 直接去看第六、七、八、九章,看看類的文件結構,加載機制,執行引擎 ,都是很有意思的內容。

至于第十章,第十一章,也是比較枯燥,和實戰結合不緊密的部分,也可以跳過,事后慢慢再看。

第十二章,第十三章講Java內存模式、線程安全、鎖,要重點看一下。

總之,這本書可以放到案頭,遇到問題時不時地翻一下,總是會有收獲。

不知道你看完了Java虛擬機的書籍以后有沒有這樣的念頭:自己動手也來寫一個!

其實很多人已經動手做了,并且用了不同的語言來實現,比如《自己動手寫java 虛擬機》一書中用Go語言做了實現。?

GitHub上有人用C語言實現:?

https://github.com/ozy/ToyJVM/

還有用Python實現的:?

https://github.com/gkbrk/python-jvm-interpreter

但是不得不說,這些實現都不是完整的虛擬機,至少都沒有實現垃圾回收功能,但是通過寫一個簡單的虛擬機,你會更加深入地理解Class 文件的字節碼,理解JVM運行時的結構,理解函數調用如何實現,多態如何實現。?

經常抱怨增刪改查沒技術含量的同學可以嘗試下,寫個虛擬機需要駕馭多個類的設計,這是一個不小的工程,很有價值。

總結

以上是生活随笔為你收集整理的无责任书评:每个Java程序员都应该深入理解Java虚拟机!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。