原创 計算一個整數的二進制中,包含1的個數

Q:計算一個整數二進制中包含1的個數 思考:計算二進制中1的個數,考察的是二進制中的運算,實現的方法有: 將1從低位移到高位的過程中,和整數進行與(& ,and)運算,期間有多少次不爲0,二進制中就有多少個1 循環的將整數 n&

原创 Spring 常用註解記錄

@SessionAttributes(value=…,type=…) eg: @SessionAttributes(value={"user"}) @Controller public class UserController {

原创 Redis主從複製、哨兵、集羣

爲了保證高併發,高性能,高可用性。當我們使用單機 Redis 時,將存在: 出現機器故障時,Redis 無法提供服務 會出現容量瓶頸 故,使用如下的三種方案去保證上述的三個特性。 主從複製 數據提供方:master,數據接收

原创 Redis緩存預熱、雪崩、擊穿、穿透以及性能監控

緩存預熱   就是在熱點數據在使用前,就已經被加載到 Redis 中了。避免出現用戶在使用熱點數據時,先去數據庫查,然後再保存到 Redis 中的過程。 緩存雪崩   問題出現原因:在較短時間內,大量的緩存數據集中過期了。如在代碼

原创 Redis中的分佈式鎖

爲什麼需要分佈式鎖?   在分佈式的運行環境中,同一段代碼運行在不同的 JVM 中,無法拿到同一把鎖,所以考慮將整個系統中的鎖,放到 Redis 中實現統一。 分佈式中使用單機鎖(如synchronized、ReentrantLo

原创 Redis兩個方向下的數據刪除策略

時效性數據的刪除 刪除策略的目標   它是爲了在內存和 CPU 佔用之間,尋找一個平衡點,保證 Redis 整體性能不會下降太多。 時效性數據的存儲結構 定時刪除 由定時器任務去執行鍵的刪除操作。 用時間換空間的思想 優點:到時

原创 日常思考

20.4.3記:   通過找工作這段時間,發現想要做後端的很多,大都是一些會點Java基礎、C++基礎的人,競爭非常激烈,部分單位招人,都是看面試官心情,爲更好的發展,覺得有必要做一個發展方向上的抉擇。目前可選有兩個方向: 轉語

原创 隨機數與概率的結合

描述: 假設張三的mp3裏有1000首歌,現在希望設計一種隨機算法來隨機播放。與普通隨機模式不同的是,張三希望每首歌被隨機抽到的概率是與一首歌的豆瓣評分(0~10分)成正比的,如朴樹的《平凡之路》評分爲8.9分,逃跑計劃的《夜空中

原创 反轉鏈表與反轉鏈表中的某一段

描述: 反轉鏈表。請使用一趟掃描完成反轉。 實現: public static void main(String[] args) { Node head = new Node(1, new Node(2, new

原创 責任鏈模式與其在Spring MVC中的應用

責任鏈模式的應用    現有一開發場景,要求設計一個集團採購物品,不同金額交由不同領導審批的流程    現有三級領導,金額在5000以下的,由部門領導審批;金額在10000以下的由院校級領導審批;金額在10000以上的,由校級領導

原创 Linux下的進程

三個特殊的進程:idle(PID = 0), init(PID = 1),kthreadd(PID = 2) idle進程(PID = 0)   由系統自動創建 ,運行在內核態,是唯一一個沒有通過 fork 或者 kernel_t

原创 Blocking IO / Non-blocking IO 操作文件

BufferedReader(字符讀入處理流)讀取文件中的內容 BufferReader適合需要對文件中的內容進行處理的情況 private StringBuilder getFileContent(MultipartFile o

原创 Servlet、DispatcherServlet

Apache Tomcat用Java編寫,是一個Web服務器和Servlet服務器 web服務器的作用:將主機上某個資源映射爲一個URL供外界訪問 Servlet服務器:處理請求邏輯,本質上是一個包含5個抽象方法的接口 在jav

原创 try-catch-finally流程詳解及相關使用、拓展

執行流程 try中沒有異常(不到catch中): finally中無return: 返回的值是在try中該變量的值,與finally中賦值與否 無關 finally中有return: 返回finally中的值,與try

原创 接口和抽象類的特點與使用

接口類的特性: 接口中的方法會被隱式的指定爲 public abstract(使用其他修飾符會報錯) 接口中所有變量會被隱式的指定爲 public static final 變量(使用其他修飾符會報錯) JDK 8 後