原创 【限流算法】java實現滑動時間窗口算法

本文實現了一種基於java的滑動時間窗口計數器算法 滑動時間窗口計數器算法思想:針對固定時間算法會在臨界點存在瞬間大流量衝擊的場景,滑動時間窗口計數器算法應運而生。它將時間窗口劃分爲更小的時間片段,每過一個時間片段,我們的時間窗口就會往右

原创 淺拷貝之ArrayList構造函數源碼解析/Syste.arraycopy()

上週有朋友問我ArrayList的構造函數ArrayList(Collection<? extends E> c)是淺拷貝還是深拷貝,當時一下子也沒反應過來,就寫了一個單元測試驗證了一下,結果是淺拷貝,代碼如下:(淺拷貝的原理可以參考這篇

原创 LeetCode第一題·兩數之和 最優解

//leetcode submit region begin(Prohibit modification and deletion) import java.util.HashMap; class Solution { publ

原创 java常見面試題:java爲什麼是值傳遞

剛接觸java的時候,就被告知,java中都是值傳遞,作爲初學者,不求甚解。直到看到某個博主總結的一句話,才恍然大悟。 java中都是值傳遞,完整的意思是:java中按值傳遞是傳遞的值的拷貝,按引用傳遞其實傳遞的是引用的地址值,所以統稱按

原创 輕鬆理解java淺拷貝和深拷貝

原文比較長,我這邊精簡一下關鍵知識點,原文地址https://www.cnblogs.com/shakinghead/p/7651502.html Java中的對象拷貝(Object Copy)指的是將一個對象的所有屬性(成員變量)拷貝到

原创 用java探究“2020年有五個神奇的週六”是否很罕見

前兩天看到公衆號推送的一篇文章,說是2020年有五個神奇的週六:2020年4月4號是週六,6月6號是週六,8月8號是週六,10月10號是週六,12月12號也是週六。 這個確實挺有意思,我就寫個簡單的demo去測試了一下”五個神奇的週六“是

原创 java常見面試題:finalize final finally

目錄   1.final 1.1 final修飾的類 1.1.1 特殊的final類-String 1.2 final修飾的方法 1.3 final修飾的變量 2.finally 3.finalize 1.final 用途:可修飾類、方法

原创 java ArrayList.remove()的三種錯誤用法以及六種正確用法

java集合中,list列表應該是我們最常使用的,它有兩種常見的實現類:ArrayList和LinkedList。ArrayList底層是數組,查找比較方便;LinkedList底層是鏈表,更適合做新增和刪除。但實際開發中,我們也會遇到使

原创 MyBatis 模糊查詢like 的三種方式

方式一、拼接傳參法 首先在調用DAO前,對需要模糊查詢的參數進行拼接 if (!StringUtils.isEmpty(appName)) { appName = "%" + appName +

原创 【限流算法】java實現令牌桶算法

本文實現了一種基本的令牌桶算法 令牌桶算法思想:以固定速率產生令牌,放入令牌桶,每次用戶請求都得申請令牌,令牌不足則拒絕請求或等待。 代碼邏輯:線程池每0.5s發送隨機數量的請求,每次請求計算當前的令牌數量,請求令牌數量超出當前令牌數量,

原创 【限流算法】java實現redis分佈式時間窗口計數器算法

本文實現一種基於java的分佈式固定時間窗口計數器算法 //每次請求進來,查詢一下當前的計數值,如果超出請求數閾值,則拒絕請求,返回系統繁忙提示 private long limitFlow(String key) {

原创 【限流算法】java實現漏桶算法

本文實現了一種基本的漏桶算法 漏桶算法思想:以固定速率消費請求,漏桶容量固定,每次用戶請求都得放入桶中,桶滿則拒絕請求或等待。達到平滑網絡請求的效果。 代碼邏輯:線程池每0.5s發送隨機數量的請求,每次請求計算當前桶內的水量及剩餘容量,請

原创 解決java poi導出excel中文自適應列寬不生效問題

場景:在使用java poi導出excel表格時,設置了自適應列寬格式,但發現導出的單元格中包含中文會導致自適應列寬不生效。 excel導出異常效果如下圖所示: 解決:網上查了原因,大多說是excel是老外開發的,自適應寬度對於數字和字

原创 解決java poi之SXSSFWorkbook導出大數據量時自適應列寬效果異常問題

場景:使用SXSSFWorkbook導出大數據量(百萬行)excel報表,表格樣式統一使用自適應列寬時,發現導出表頭行格式異常,異常情況如下圖所示: 分析:從導出效果看,應該是忽略了表頭數據長度,根據數據內容的長度進行了自適應列寬調整。

原创 【限流算法】java實現固定時間窗口算法

本文實現了一種基於java的固定時間窗口計數器算法 固定時間窗口計數器算法思想:在固定的時間窗口內,可以允許固定數量的請求進入。超過數量就拒絕或者排隊,等下一個時間段進入。 優點:和令牌桶相比,這種算法不需要去等待令牌生成的時間,在新的時