我們知道,很多maven官方插件都支持skip參數,命令行指定skip=true即可跳過此插件的執行,非常方便。但是很多第三方的插件根本就不支持skip參數,無法通過命令行傳...

我們知道,很多maven官方插件都支持skip參數,命令行指定skip=true即可跳過此插件的執行,非常方便。但是很多第三方的插件根本就不支持skip參數,無法通過命令行傳...
很多文章搞長篇大論大講特講人類為了讓計算機能夠準確表示各種字符的演化歷史,這完全是沒有必要的,幾句話就能說明白。 "字符集"和"字符集編碼"是兩回事 字符集(Charset ...
用JavaFX寫GUI的朋友肯定少不了SceneBuilder這個神器,拖拖拽拽就能完成窗口布局。但是對于Mac M1的用戶來說, SceneBuilder 并沒有提供M1版...
本篇我們專注invokevirtual這一條指令,先通過簡單粗暴的方式實現指令的功能,然后探究如何通過著名的虛方法表(Virtual Method Table)來進行一些優化...
我們都知道在Java中final字段都是要在定義時完成初始化工作的,否則通不過編譯。但是有一處例外,那就是對于對象的字段來說final字段可以"延遲"到構造方法,或者stat...
首先需要明確幾個問題。 沒有Native方法JVM什么也做不了 可能很多人認為native方法是Java里的禁區,使用本地方法會犧牲可移植性,而且還會有額外開銷,貌似幾乎沒有...
一直以來又長又臭的調用鏈簡直就是Java語言的標志性特色,方法調用可謂是Java世界里表達一切邏輯的基石。現在我們終于具備了實現它的基礎。 JVM中的5條方法調用指令 在JV...
在上一篇中我們實現了一個能跑的解釋器,支持了一些基本的棧操作指令。現在我們就可以開始實現"有點用"的數學運算和條件判斷了。 github: https://github.co...
在上一篇中我們已經完成了class文件的解析工作,雖然沒有解析所有的屬性,但是已經足夠支持一些基本的算法題Java代碼編譯生成的class文件了。有了這一步,日后如果遇到新的...
正確解析class文件是萬里長征第一步。本篇我們會全程使用golang完成class文件的解析工作。 數據類型 JVM的class文件完全是二進制文件,最小單位是字節,也有數...
學習JVM最好的方法,就是實現它,沒有之一。 對JVM感興趣的朋友可能會去主動尋找講解JVM的書,比如《深入理解JVM》、《Java虛擬機規范》、《虛擬機的設計與實現》,但是...
隨著類似Vue、Angular這類通過JS將web頁面"畫"出來的前端框架的流行,爬取網頁不再像以前那樣隨便發個GET請求,解析HTML就能搞定了。對于使用這類框架制作的SP...
在Java應用中,我們往往會使用spring-kafka組件簡單的設置一下group_id, topic就開始消費消息了,其實這樣會埋下巨大的安全隱患,即當消費速度過慢時有可...
常見但是錯誤的實現 在業務系統中防重名是一個非常普遍的需求,例如用戶注冊時不允許用戶名重復、已登錄用戶不可以在自己的賬號范圍內創建同名的某種實體等。很多人在實現的時候都是簡單...
Go1.14即將于2020年2月底發布,這個版本有一些值得注意的性能改進,如下: defer 跟正常的函數調用相比,defer幾乎已經沒有額外的開銷了。你可以在對性能極度敏感...
在討論所有的錯誤處理實踐之前首先要接受一個事實,那就是每調用一個函數/方法都要檢查一下返回值中的err是否為空的操作是無法避免的,這可能是很多從Java轉過來的開發者們除語法...
開門見山 可重復讀僅能保證再次執行同樣的查詢時,先前返回【過】的結果一定跟之前一樣,而不保證會不會多出別的記錄。如果返回了之前沒有出現過的記錄,就是幻讀。 隔離級別 數據庫事...
首先我們來看一下維基百科對零拷貝給出的定義: 零拷貝描述了一種計算機中的操作,即CPU在執行某項任務時不需要先將數據從內存中的一個位置移動到另一個位置就可以完成操作,從而節省...