原创 設計模式 | 觀察者模式介紹、使用案例

目錄 觀察者模式定義 觀察者模式使用案例 觀察者模式定義 觀察者模式定義:定義了對象之間一對多的依賴,讓多個觀察者對象同時監聽一個主題對象,當主題對象發生變化時,它的所有依賴者都會收到通知並更新 適用場景:關聯行爲場景,建立一套觸發的機制

原创 海量數據的甄別工具---布隆過濾器

目錄 布隆過濾器介紹 布隆過濾器的使用 布隆過濾器介紹 考慮兩個業務場景: 1.某商城有一千萬件商品存放到redis中,商品id區間是1-1000萬,現在有惡意用戶訪問商品id不在此區間內的商品,程序查redis中不存在,就去查數據庫,當

原创 設計模式 | 模版方法設計模式介紹、模版方法使用案例

目錄 模版方法概念 模版方法使用案例 模版方法概念 定義:定義了一個算法骨架,並允許子類爲一個或多個步驟提供實現。模版方法使得子類在可以在不改變算法結構的情況下,重新定義算法的某些步驟 適用場景:一次性實現一個算法的不變部分,將可變部分留

原创 設計模式|單例模式的懶漢式爲什麼是線程不安全的,懶漢式如何實現線程安全

目錄 懶漢式爲什麼是線程不安全的 懶漢模式實現線程安全 1.對實例化方法加鎖 2.double check+volatile方案 單例模式是工作中高頻使用的設計模式之一。單例模式可以確保內存中單例類只有一個實例,有效的減少了內存的開銷,避

原创 設計模式|創建型模式

目錄 前言 讀懂UML圖 設計模式六大原則 設計模式分類 創建型模式原則 創建型模式 分析 1.簡單工廠模式 2.工廠方法模式 3.抽象工廠方法模式 4.建造者模式 5.單例模式 6.原型模式 創建型模式 總結 前言 設計模式是一套被反覆

原创 springEvent 源碼分析

SpringEvent使用 開發中常會遇到需要解耦的業務,比較典型的場景是電商系統訂單結算完成通知商品服務減庫存。結算的成功與否也不依賴庫存扣減結果,扣減庫存不需要實時完成(秒殺除外)。分佈式場景可以使用消息隊列方案,單機應用可以起一個線

原创 JVM有什麼可豪橫的!這幾段代碼助你實戰JVM優化

JVM知識專欄JVM-火種,持續更新,喜歡請關注😍  jvm知識對於java開發人員的重要性不言而喻,我們看了各種jvm優化、垃圾回收算法、內存調優的知識點,早就摩拳擦掌想優化實戰,奈何程序偏偏不溢出了,不溢出還怎麼優化啊!下面幾段代碼能

原创 JVM內存分析案例:分析dump文件,發現內存中存在很多代碼無關的int[]數組?

JVM知識專欄JVM-火種,持續更新,喜歡請關注😍  文章轉自:不起眼,但是足以讓你有收穫的JVM內存分析案例 一個同學在perfam社區提問:“分析dump文件,發現內存中存在很多代碼無關的int[]數組?我點進去看了很久,沒有發現有任

原创 UseCompressedOops 壓縮指針、JOL內存分佈工具學習

JVM知識專欄JVM-火種,持續更新,喜歡請關注😍  目錄 爲什麼需要壓縮 壓縮命令 驗證 項目調用 命令行查看 數據驗證 爲什麼需要壓縮 通常64位JVM消耗的內存會比32位的大1.5倍,這是因爲對象指針在64位架構下,長度會翻倍(更寬

原创 IntelliJ IDEA git 項目首次提交

新建項目提交 在開發環境中安裝好IntelliJ IDEA和gitlab後,並且在gitlab進行SSH Key註冊。打開gitlab管理後臺,點擊Groups進入分組管理。 點擊創建新的分組 填寫相應分組信息 再次點擊G

原创 設計模式|序列化、反序列化對單例的破壞、原因分析、解決方案及解析

目錄 序列化、反序列化對單例的破壞 原因分析 解決方案及解析 序列化、反序列化對單例的破壞 單例模式是工作中高頻使用的設計模式之一。單例模式可以確保內存中單例類只有一個實例,有效的減少了內存的開銷,避免了類的重複創建和銷燬。 序列化意義是

原创 JDK1.8 lambda處理stream 常用代碼示例

目錄 處理集合 元素排序 匯聚數據 取某個字段形成新的集合 根據條件過濾,符合條件的數據形成新的集合 多條件過濾,符合條件的數據形成新的集合 針對單個字段去重 處理嵌套list 處理數組 處理集合 建一個商品實體 @Builder @D

原创 設計模式|原型模式的使用案例、克隆複合對象出現的問題及解決方案、深克隆和淺克隆的區別

目錄 原型模式的使用案例 操作複合對象出現的問題及解決方案 深克隆和淺克隆的區別 原型模式的使用案例 原型模式是創建型模式之一,使用原型模式創建對象比直接new對象的性能高、簡化創建過程。原型模式的使用較爲簡單,具體實現如下 publi

原创 你的唯一ID生成器適用於多線程嗎

完整代碼從github獲取:多線程創建唯一ID 昨天逛博客,看到一篇"Java生成唯一ID"的文章,轉載率很高。正好前段時間項目也遇到了多線程情況下唯一鍵重複的問題,正好學習一波大神的代碼,驗證一波大佬的代碼是不是適用於多線程! 代碼拷貝

原创 設計模式|以《安家》爲模型輕鬆理解靜態代理和動態代理

目錄 代理模式概念 代理模式實例 靜態代理 動態代理 代理模式概念 代理模式是設計模式中運用較廣泛且容易理解的一個。代理模式的概念是爲其他對象提供一個代理,以控制這個對象的訪問,代理對象在客戶端和目標對象之間起到中介的作用。代理模式的優