原创 mybatis實現多字段動態排序

背景 在複雜項目中,可能會對數據表多個字段進行排序,不理解的話可結合需求看。 需求 現在有一張User表 男同學先按age降序排序,後按height降序排序,最後按id升序排序 女同學先按age升序排序,後按weight降序排序,最後按i

原创 關於熔斷、限流、降級

慢慢補充 熔斷、限流、降級 熔斷:根據(策略、手動)當多次請求失敗的時候進行熔斷,直接返回錯誤信息,防止大量線程聚集等待。 限流:分爲 QPS(每秒請求數)、CPS(每秒併發數)限流,當qps、cps數量超過限制,直接返回錯誤信息,防止

原创 Windows 禁用筆記本鍵盤

背景 筆記本鍵盤+機械鍵盤組合如下圖: 由此產生一個問題: 筆記本鍵盤現在的用處是什麼? 沒什麼用,那我們何不把桌面的位置利用起來?🐸 這樣怎麼樣? ===》 爲了防止放東西時候誤觸,我們需要把筆記本鍵盤禁用。 教程 第一步:以管理

原创 【懶狗必備】用bat命令解放雙手

背景說明 每天上班,都需要打開本地的一些服務,比如redis、zk等。 作爲懶狗,需要會利用工具。 於是我寫了一個bat腳本,幼兒園水平: chcp 65001 title 一鍵啓動本地環境腳本 start /min cmd /k "D:

原创 Redis循環慢接口優化

原慢接口 List<String> keys = new ArrayList<>(Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11")); List<

原创 BUG排查

1. IDEA debug 出現 no such instance method: ‘XXX‘ 我的情況:明明對應類下面有方法,但是提示no such instance method: 'XXX'+ 運行的時候報錯 java.lang.No

原创 【待完善】關於DDD系統架構

介紹 DDD(Domain Driver Design):簡稱領域驅動設計

原创 Redis爲什麼這麼快之IO多路複用

情景復現 面試官:Redis爲什麼這麼快? 我:1. 基於內存 2. 高效數據結構 3. 單線程 4. IO多路複用 面試官:那你講講Redis的IO多路複用模型是什麼。 我:哦,嗯,啊,呀...IO多路複用、文件描述符、用戶態,內核態、哦

原创 【入門】反射-對理解動態代理有幫助

前言 反射之所以被稱爲框架的靈魂,主要是因爲它賦予了我們在運行時分析類以及執行類中方法的能力。 通過反射你可以獲取任意一個類的所有屬性和方法,你還可以調用這些方法和屬性。 來自:JavaGuide 示例 public class Mai

原创 MYSQL經典練習題

題目來源:https://blog.csdn.net/flycat296/article/details/63681089 Github地址:https://github.com/bladeXue/sql50 添加測試數據庫信息 # 創

原创 一個關於CountDownLatch的併發需求

需求 A,B,C可併發運行,全部成功纔算成功,一個失敗全員回滾。 思考 使用CountDownLatch,可以保證三個線程結束後,才進行提交成功狀態。但是怎麼才能判斷某個任務失敗了呢? 捕獲子線程異常? await(long timeou

原创 個人讀書推薦

評分,與個人主觀判斷影響較大,如有不同見解還請指教。 Redis設計與實現(🌟🌟) 版本過時,不推薦 Java編程思想(🌟🌟🌟🌟🌟) 大型網站技術架構(🌟🌟🌟🌟) 主要講一些大型系統設計的思路,作爲我的入門書,挺不錯 分佈式服務

原创 HashMap 源碼解毒

PUT 方法解毒: hashcode 高低16進行異或運算,儘量降低哈希衝突的概率 如果數組很小,hashcode的高位就不能被很好利用。 final V putVal(int hash, K key, V value, bool

原创 【面試系列5】JUC

並行與併發 並行:多個機器同時執行 併發:一個機器分時執行 Future接口 定義了操作異步任務執行的一些方法,獲取異步任務執行的結果,取消任務的執行,判斷任務是否被取消,判斷任務執行完畢。 多線程/有返回/異步任務 class MyTh

原创 【面試系列6】Redis

redis redis是什麼? 內存數據庫,一切數據操作都在內存中進行,所以速度很快,常被用來做緩存,消息隊列,分佈式鎖。 具有高效的數據結構,String、list、hash、set、zset,bitmaps、hyperloglog、