原创 金九銀十,查漏補缺:線程池要是像你想的那麼簡單就好了

來源https://juejin.im/post/5ce1f3b6f265da1ba2522f62 前言 原以爲線程池還挺簡單的(平時常用,也分析過原理),這次是想自己動手寫一個線程池來更加深入的瞭解它;但在動手寫的過程中落地到細節時發

原创 金九銀十,查漏補缺:JVM常見面試題解析

前言 總結了JVM一些經典面試題,分享出我自己的解題思路,希望對大家有幫助,有哪裏你覺得不正確的話,歡迎指出,後續有空會更新。 1.什麼情況下會發生棧內存溢出。 思路: 描述棧定義,再描述爲什麼會溢出,再說明一下相關配置參數,OK的話可以

原创 金九銀十,查漏補缺:JVM的內存區域是怎樣劃分的?

  出處:http://www.cnblogs.com/dolphin0520/ 學過C語言的朋友都知道C編譯器在劃分內存區域的時候經常將管理的區域劃分爲數據段和代碼段,數據段包括堆、棧以及靜態數據區。那麼在Java語言當中,內存又是如

原创 金九銀十,查漏補缺:Java GC 分析

https://juejin.im/post/59c070706fb9a00a4455f193 Java GC就是JVM記錄儀,書畫了JVM各個分區的表演。 什麼是 Java GC Java GC(Garbage Collection,垃

原创 金九銀十,每天還在增刪查改,怎麼看透JVM本質?

前言 JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種基於下層的操作系統和硬件平臺並利用軟件方法來實現的抽象的計算機,可以在上面執行java的字節碼程序。 java編譯器只需面向JVM,生成JVM能理解

原创 金九銀十,正在面試嗎?面試官必問:JVM架構解讀,查漏補缺

  來源:www.codeceo.com 前言 每個Java開發人員都知道字節碼由JRE(Java運行時環境)執行。但許多人不知道JRE是Java Virtual Machine(JVM)的實現,它分析字節碼,解釋代碼並執行它。作爲開發

原创 秋招開始了,讀《深入理解JVM虛擬機》總結

重讀 JVM 秋招開始了,前面由於做別的事耽誤了半個月,以前學的東西不用就很容易忘記。所以,這次重新閱讀《深入理解 JVM 虛擬機》時,想做一個記錄。將碎片的知識整合,方便自己以後閱讀,同時也和大家一起分享。內容中會添加我自己的理解,其

原创 連接器在Tomcat中是如何設計的

來源:https://my.oschina.net/luozhou/blog/3097513 上期回顧 上一篇文章《SpringBoot啓動Tomcat》從main方法啓動說起,窺探了SpringBoot是如何啓動Tomcat的,在分析

原创 查漏補缺,JVM系列:(JVM內存組成及分配)

  java內存組成介紹:堆(Heap)和非堆(Non-heap)內存 按照官方的說法:“Java 虛擬機具有一個堆,堆是運行時數據區域,所有類實例和數組的內存均從此處分配。堆是在 Java 虛擬機啓動時創建的。”“在JVM中堆之外的內

原创 金九銀十,查漏補缺:JVM內存模型

來源:https://juejin.im/post/5ad5c0216fb9a028e014fb63 JVM回顧     JVM = 類加載器(classloader) + 執行引擎(execution engine) + 運行時數據區域

原创 SpringBoot啓動Tomcat

來源:https://my.oschina.net/luozhou/blog/3088908 前言 我們知道SpringBoot給我們帶來了一個全新的開發體驗,我們可以直接把web程序達成jar包,直接啓動,這就得益於SpringBoo

原创 百因必有果,JVM調優(工具篇)建議收藏

18年的時候花了一些時間整理了一些關於jvm的介紹文章,到現在回顧起來還是一些還沒有補充全面,其中就包括如何利用工具來監控調優前後的性能變化。工具做爲圖形化界面來展示更能直觀的發現問題,另一方面一些耗費性能的分析(dump文件分析)一般也

原创 探索Java字節碼如何增強

1.字節碼 1.1 什麼是字節碼? Java之所以可以“一次編譯,到處運行”,一是因爲JVM針對各種操作系統、平臺都進行了定製,二是因爲無論在什麼平臺,都可以編譯生成固定格式的字節碼(.class文件)供JVM使用。因此,也可以看出字節碼

原创 Dubbo 源碼分析 - 服務引用

1. 簡介 本文分析服務引用的原理。在 Dubbo 中,我們可以通過兩種方式引用遠程服務。第一種是使用服務直聯的方式引用服務,第二種方式是基於註冊中心進行引用。服務直聯的方式僅適合在調試或測試服務的場景下使用,不適合在線上環境使用。因此,

原创 Nginx源碼閱讀筆記-內存池的設計

nginx的內存池設計的比較簡單了,一個內存池中分爲兩個部分: 超過max大小的內存分配,走大塊內存分配,這部分內存管理由ngx_pool_large_t結構體負責。 否則就是在ngx_pool_t遍歷符合要求的ngx_pool_t結構體