原创 Java序列化與反序列化中,你可能會忽略的細節知識點

文章目錄前言一、爲什麼要序列化二、先看一個Demo三、序列化的ID四、父子類序列化五、自定義序列化六、多對象序列化的存儲6.1 多次寫入同一個類的同一個對象6.2 多次寫入同一個類的同一個對象(先後修改屬性)6.3 多次寫入同一個

原创 從源碼角度深度分析JVM虛擬機監控工具

前言 上一篇文章JVM虛擬機性能監控與故障處理工具介紹了常用虛擬機監控工具的使用方法以及參數含義,這一篇就從源碼角度來看一下它們的內部構造。因爲筆者時間有限,目前爲止只看了jps、jstat、jstack的源碼,同時筆者也準備寫一

原创 記一次非Maven項目發佈到中央倉庫爬過的坑!

今天有朋友和我聊天說筆者已經有兩天沒有寫文章了,都去幹嘛了?我很無奈地回答說被maven弄自閉了。到底是什麼樣的問題導致我花了這麼長時間去解決它?這篇文章告訴你。 一、我想要做的事 筆者前幾天一直在看Hotspot提供的tools

原创 一文解讀JDK8中HashMap的源碼

文章目錄前言一、HashMap簡介二、HashMap源碼解讀1. 類定義2. 常量定義3. 內部類Node4. 靜態工具方法5. 屬性變量6. 構造函數7. 幾個常規方法(不完整)8. 查詢方法 get()9. 插入/更新方法 p

原创 平時常說的ThreadLocal,今天就徹底解決它

文章目錄前言一、瞭解ThreadLocal的作用二、ThreadLocal簡單使用三、ThreadLocal原理3.1 ThreadLocal的存取過程3.2 探究ThreadLocalMap對象3.3 ThreadLocal對象

原创 深入理解synchronized底層原理,一篇文章就夠了!

文章目錄前言一、synchronized的特性1.1 原子性1.2 可見性1.3 有序性1.4 可重入性二、synchronized的用法三、synchronized鎖的實現3.1 同步方法3.2 同步代碼塊四、synchroni

原创 用Java寫一個簡單的緩存操作類

前言 使用緩存已經是開發中老生常談的一件事了,常用專門處理緩存的工具比如Redis、MemCache等,但是有些時候可能需要一些簡單的緩存處理,沒必要用上這種專門的緩存工具,那麼自己寫一個緩存類最合適不過了。 一、分析 首先分析一

原创 Java面試常問的SE基礎知識

面試Java必定會問到SE部分的基礎知識,我也被問過很多次,這篇文章記錄一些常問的問題和答案。 一、理解JDK、JRE、JVM JDK(Java Development Kit)Java開發工具包,是整個Java開發的核心,其

原创 介紹一個我開發的Java虛擬機監控API

前段時間我在看《深入理解Java虛擬機》一書,打算好好學學虛擬機的知識,在看到《第4章 虛擬機性能監控與故障處理工具》時產生了諸多靈感。首先是瞭解這些監控工具能幹嘛?然後發現了其中一些侷限性,接着視圖解讀部分命令源碼,自己也想做一

原创 淺談一個Java類的生命週期

前言 一個Java類從被加載到虛擬機內存開始,到卸載出內存爲止,它經過了哪些步驟呢?這篇文章就來簡述一下關於Java類生命週期相關的知識,其中每個生命週期的具體內容不會細講,因爲內容太多,我準備專門花一篇文章介紹類生命週期中的詳細

原创 手寫一個基於NIO的迷你版Tomcat

筆者也建立的自己的公衆號啦,平時會分享一些編程知識,歡迎各位大佬支持~ 掃碼或微信搜索北風IT之路關注 本文公衆號地址:手寫一個基於NIO的迷你版Tomcat 在很久之前看到了一篇文章寫一個迷你版的Tomcat,覺得還是很有意思

原创 深入淺出生產者-消費者模式

筆者也建立的自己的公衆號啦,平時會分享一些編程知識,歡迎各位大佬支持~ 掃碼或微信搜索北風IT之路關注 生產者-消費者模式是一個經典的多線程設計模式,它爲多線程間的協作提供了良好的解決方案。也經常有面試官會讓手寫一個生產者消費者