原创 spring單例與線程安全,並行調用服務加速響應

問題:ssm框架,spring中controller和service都是單例的,那是怎麼保證線程安全呢? 通過threadLocal保證, 實際一個實例,tomcat中線程池執行任務時,獲取單例的副本,每個線程的執行都是操作單例的副本

原创 算法中哨兵技巧

哨兵:國家邊界的站崗士兵;這裏引申爲處理邊界值的問題。 實例: 需求:數組中找值key所在的位置 public class GuardTest { public static void main(String[] args)

原创 CPU飆升問題的解決實例

項目使用現象: web項目,頁面打開特別慢,反正就是慢。平常打開頁面需要0.5s,現在需要3-5秒 進入服務器(4核8G內存)查看原因: top發現: 但是cpu波動過大,使用平常在 10%左右,會突然飆升到100%、200%甚至300

原创 時空間複雜度,數組鏈表

時間複雜度的含義 :假設每行代碼執行時間是一定的,都是unit,那有一個很重要的規律: 所有代碼的執行時間 T(n) 與所有行代碼的執行次數 n 成正比:T(n) = O(f(n)) 注意:這裏僅僅從代碼行數的角度考慮,所以你是簡單的計算

原创 分佈式系統唯一id方案-SnowFlake

摘要: SnowFlake算法生成的ID大致上是按照時間遞增的,用在分佈式系統中時,需要注意數據中心標識和機器標識必須唯一,這樣就能保證每個節點生成的ID都是唯一的。它可以滿足Twitter每秒上萬條消息ID分配的請求,這些消息ID是唯一

原创 極度節約內存的算法 --位圖

位圖: 網頁爬蟲,獲取頁面中的url,進一步爬取內容。但是需要避免重複爬取,所以需要查詢是否已經爬取並保存到查詢記錄中。 如果有10億個url,怎麼處理? hash -耗內存-> 位圖 -位太多-> 布隆  --> 多hash 散列表

原创 ueditor增加功能

ueditor帶有添加Iframe的功能,但是我需要將輸入的url修改爲下拉框。 步驟如下: 第一步 添加按鈕描述 找到ueditor.config.js文件中的toolbars數組,增加一個“watermark”字符串,然後找到labe

原创 spring監聽功能的使用

以創建訂單爲例,需要增加短信通知和事物通知,每次寫一個service也可以,最好的方式可以使用spring的事件監聽。   spring監聽器的使用:定義事件實現applicationEvent 定義監聽器是實現smartApplicat

原创 mysql 從主動複製 主從延遲 到分庫分表

爲甚分庫分表? 先集羣:主從,且讀寫分離。 分表:數據量過大 查詢慢 鎖事物衝突。一般先垂直分,再考慮水平分 分庫:機器的寫壓力大,併發量數千級別,讀壓力大,太多slave   分庫分表後:降低磁盤使用率 單表數據量少 併發衝突低 主備延

原创 圖標下載地址

https://www.iconfont.cn/search/index?q=%E5%9B%BE%E8%A1%A8

原创 mac idea常用快捷鍵

編輯: ⌘D 複製當前行或選定的塊 ^+n getter/setter  ⌃⌥I 自動縮進線 ⌘ ⇧ /    註釋/**/ ⌘ + ⌥ + V    自動導入變量定義 例如:new String();  ⌥ + Enter    自動導

原创 mac 終端與文件夾互轉

文件夾上打開終端:右鍵文件夾,新建位於文件夾位置的終端窗口 https://www.jianshu.com/p/2db84e7e38ff  終端上打開文件夾:  # open 指定文件(文件夾)  註釋:a、open 後面接文件,表示默認

原创 JetCache入門

推薦鏈接:https://blog.csdn.net/sinat_32366329/article/details/80260944 JetCache JetCache是由阿里巴巴開源的通用緩存訪問框架,相較於其他緩存框架該框架最大的特點

原创 新的時間處理工具joda

時間處理是在項目中經常用到的,時間處理一共三個, new Date().getYear(); 該方式已經棄用,第二種: calendar,用的最多,但實際用起來並不方便,現在推薦的是第三種: 使用joda包裏面的時間處理工具。 使用方式

原创 redis經典面試問題鏈接

Redis基礎知識,數據結構,分佈式鎖,keys作用與問題,異步隊列,延時隊列,持久化,pipeline。同步機制 https://blog.csdn.net/qq_35190492/article/details/102841400