原创 深入理解Java內存模型(一)-- 基礎

很棒的一個關於Java內存模型系列文章 轉載自併發編程網 – ifeve.com 本文鏈接地址: 深入理解java內存模型系列文章 因文章有些配圖已經不完整,所以通過快照找到原圖,並在本人博客中做轉載保存。 提綱 java線程之間

原创 聊聊ReentrantLock的鎖設計(上)

前言 之前看過美團的一篇不可不說的Java“鎖”事,對java鎖的概念做了一次梳理,其實在java類中,ReentrantLock算是一個對鎖概念運用的典範,看懂它的源碼對鎖的理解很有幫助。我也以ReentrantLock爲原型,

原创 深入理解Java內存模型(三)-- 順序一致性

很棒的一個關於Java內存模型系列文章 轉載自併發編程網 – ifeve.com 本文鏈接地址: 深入理解java內存模型系列文章 因文章有些配圖已經不完整,所以通過快照找到原圖,並在本人博客中做轉載保存。 數據競爭與順序一致性保

原创 記一次OOM排查過程(入門版)

第一次線上遇到問題,最近也在學jvm,記錄一下,算是一個入門版jvm故障排查,希望能給新手帶來一點乾貨。 背景 機器 (2c8g) 默認jvm部分關鍵參數配置: Xmx 最大堆內存 Xms 最小堆內存 UseG1GC 使用G1垃

原创 深入理解Java內存模型(五)-- 鎖

很棒的一個關於Java內存模型系列文章 轉載自併發編程網 – ifeve.com 本文鏈接地址: 深入理解java內存模型系列文章 因文章有些配圖已經不完整,所以通過快照找到原圖,並在本人博客中做轉載保存。 鎖的釋放-獲取建立的h

原创 深入理解Java內存模型(七)-- 總結

很棒的一個關於Java內存模型系列文章 轉載自併發編程網 – ifeve.com 本文鏈接地址: 深入理解java內存模型系列文章 因文章有些配圖已經不完整,所以通過快照找到原圖,並在本人博客中做轉載保存。 處理器內存模型 順序

原创 Redis的用武之處--由短信限流引出的分佈式鎖和漏斗限流(下)

分佈式鎖 有些人應該用過Redission這個redis中間件框架,它以 使用者忘記redis本身命令,而更多關注業務爲目標,所以它的api不同於jedis,redission就原生提供了分佈式鎖,限流器等現成的工具類。我以重複"造輪

原创 Redis的用武之處--由短信限流引出的分佈式鎖和漏斗限流(上)

需求 項目有一個羣發短信提醒的模塊,這種東西做出來就需要謹慎,要做好單位時間限流,不然因爲bug而導致短信發送失控那就不得了了,基於此需求,redis就是個理想的中間件來實現我們的需求,最近也在看掘金小冊的《深入理解Redis核心原理

原创 代理模式及FactoryBean的實際運用--Mybatis Mapper文件的華麗轉身

Mybatis的Mapper我們很熟悉,我們只需要提供sql和一個接口,其餘與數據庫的交互全部交給了Mybatis解決,但是,mapper文件我們只提供一個接口,這個接口是怎麼和spring結合完成我們預期的要求? FactoryBe

原创 spring之我見--從Filter機制看設計模式(責任鏈模式,裝飾器模式)

最近爲公司一個項目寫一個簡單的網關,其實也就是一個filter做一些token解析/校驗。但是光這一個filter就不簡單,現在就說說裏面運用的設計模式。 Filter的核心-責任鏈模式 Filter: 屬於javaweb中一個重要

原创 spring之我見--spring的組件化(以logging日誌初始化爲例)

之前寫了java的多級緩存,是一個簡單的util工具包,想着能不能跟springboot 做集成,順便了解下spring boot 組件原理,比如衆多的 xx-spring-boot-starter.這篇文章以 spring boo

原创 實現簡單的JAVA多級緩存(Caffeine + redis)

需求 好久沒寫文章啦,之前寫的文章到現在也沒有收尾,沒辦法,時間不多啊,舊坑沒有填完就開始開新坑,最近項目組長說實現一個多級緩存,通常我們喜歡把cache放到redis裏,可以把訪問速度提升,但是redis也算是遠程服務器,會有IO時

原创 Maven實戰-由一次jar包衝突來詳述 Maven 依賴範圍及依賴調節原則

這篇文章的緣由是剛來搭建的項目有jar包衝突,報下面這個錯基本就是servlet-api包衝突無疑了 Caused by: java.lang.ClassCastException: org.springframework.web.Spr

原创 Simplify-Core -- java對象轉換成Json(Json generator)

先感嘆一波今天正式畢業,拿到了畢業證和學位證,然後博客也有三個多月沒寫了,最近自己寫了一個工具類的項目,Simplify,旨在簡化重複的JAVA代碼,基於JDK8,無其它jar包依賴,提供序列化,json,日期等常見操作。json gen

原创 代理模式的實際運用-以mybatis攔截器實現原理爲例

之前在寫mybatis攔截器的時候,因爲不懂原理,琢磨了很久,不知道怎麼寫,在網上找了很多資料,才知道mybatis的攔截器主要還是通過代理實現的,而且我在之前的博文中剛好學習了代理模式。更精細的是,在mybatis對代理的應用上,不管是