原创 CPU 利用率高如何分析

CPU 繁忙的原因有以下幾個: 線程中有比較耗時的計算。 系統發生了頻繁的 Full GC。 一 使用 jstack 來打印異常進程的堆棧信息 第一步:通過 ps -ef | grep java  找到 Java pid。 第二步

原创 06. 重構-簡化條件表達式

一 Decompose Conditional (分解條件表達式)        如果有一個複雜的條件(if-then-else)語句。從 if、then、else 三個段落中分別提煉出獨立函數。 二 Consolidate Condit

原创 JMH 性能測試分析工具

一 什麼是 JMH        JMH 是在 method 層面上的 benchmark,精度可以精確到微秒級,是對熱點函數進行優化時,對優化結果進行定量分析的工具。 二 JMH 的應用場景 典型場景: 想定量地知道某個函數需要執行多長

原创 Redis 過期策略、內存淘汰機制和 LRU 算法的實現

一 Redis 過期策略 Redis 過期策略是:定期刪除 + 惰性刪除。 定期刪除        定期刪除,指的是 Redis 默認是每隔 100ms 就隨機抽取一些設置了過期時間的 key,檢查其是否過期,如果過期就刪除。假設 Red

原创 04. 重構-在對象之間搬移特性

一 Move Method (搬移函數)        如果一個類有太多的行爲,或者說如果一個類與另外一個類有太多合作而形成高度耦合,這個時候就應該搬移函數。通過搬移函數,可以使得系統中的類更加簡單,最終也將更乾淨利落實現系統交付的任務。

原创 05. 重構-重新組織數據

一 self Encapsulate Field (自封裝字段)        直接訪問一個字段,與該字段之間的耦合關係將會逐漸變得笨拙。爲該字段建立取值、設值函數,並且只以這些函數來訪問字段。 二 Replace Data Value

原创 Lambda表達式-02.Streams API

目錄 Streams API(I) forEach() filter() distinct() sorted() map() flatMap() Streams API(II) 多面手reduce() 終極武器collect() 接口的靜

原创 Linux scp 上傳和下載操作(Mac版)

一 下載 1.1 將文件從服務器下載到跳板機        跳板機上操作: scp username@servername:/path/filename  /tmp/jump_destination (servername 爲服務器主機或

原创 限流實戰:guava的RateLimiter實現令牌桶算法限流

目錄 1 引入依賴 2 限流實現 3 自定義攔截器,在攔截器中實現限流 4 實現 WebMvcConfigurer 添加自定義攔截器 5 RateLimiterAnnotation 實現 6 Controller 類實現 7 通過 jme

原创 Java利用POI寫Excel

目錄 一 POI 相關依賴 二 POI 基本概念 三 POI 寫 Excel 3.1 Excel 文件格式 3.2 代碼編碼  一 POI 相關依賴 <dependency> <groupId>org.apache.poi</g

原创 mysql 變更自增主鍵id起始值

目錄 account 庫 user 表結構 獲取自增id字段的下一個值 修改自增id字段的初始值 其他 SQL 說明 參考文檔 account 庫 user 表結構 CREATE TABLE `user` ( `id` int(11

原创 如何從大量的 URL 中找出相同的 URL?

題目描述        給定 a、b 兩個文件,各存放 50 億個 URL,每個 URL 各佔 64B,內存限制是 4G。請找出 a、b 兩個文件共同的 URL。 解答思路        每個 URL 佔 64B,5,000,000,00

原创 Lambda表達式-01.Collection和Map新方法

目錄 Collection中的新方法 forEach() removeIf() replaceAll() sort() spliterator() stream()和parallelStream() Map中的新方法 forEach()

原创 限流實戰:Redis+Lua實現分佈式限流

目錄 一 引入依賴 二 配置文件 2.1 Redis 配置  2.2 Lua 腳本文件 三 Bean 配置 四 限流注解 五 攔截器限流 5.1 自定義攔截器,在攔截器中實現限流 5.2 實現 WebMvcConfigurer 添加自定義

原创 rocketmq啓動nameserver異常解決

問題出現:               學習 rocketmq 的時候,啓動 nameserver,執行命令:nohup sh bin/mqnamesrv & ,在 nohup.out 文件裏面報: 問題分析: