原创 重學數據結構與算法(08)--字符串:搞定字符串匹配算法

字符串:搞定字符串匹配算法1)字符串是什麼2)字符串的基本操作2.1)字符串的新增操作2.2)字符串的刪除操作2.3)字符串的查找操作子串查找(字符串匹配)查找出兩個字符串的最大公共字串3)總結 1)字符串是什麼 字符串(stri

原创 重學數據結構與算法(09)--樹和二叉樹:分支關係與層次結構下如何有效實現增刪查?

樹和二叉樹:分支關係與層次結構下如何有效實現增刪查?1)樹是什麼2)二叉樹是什麼3)樹的基本操作3.1)二叉查找樹的特性3.2)二叉查找樹的查找操作3.3)二叉查找樹的插入操作4)樹的案例5)總結 1)樹是什麼 樹是由結點和邊組成

原创 Java 源碼剖析(06)--synchronized 和 ReentrantLock 的實現原理

synchronized 和 ReentrantLock 的實現原理1)synchronized 和 ReentrantLock的區別2)知識擴展2.1)ReentrantLock 源碼分析2.2)公平鎖 VS 非公平鎖3)JDK

原创 Java 源碼剖析(08)--如何實現動態代理

如何實現動態代理1)動態代理是如何實現的?2)JDK Proxy 和 CGLib 的使用及代碼分析2.1)JDK Proxy 動態代理實現2.2)CGLib 的實現2.2)Lombok 原理分析3)動態代理和靜態代理的區別?4)小

原创 Java 源碼剖析(05)--淺談對鎖的理解

淺談對鎖的理解1)死鎖2)知識擴展2.1)悲觀鎖和樂觀鎖2.2)可重入鎖2.3)共享鎖和獨佔鎖3)小結 在併發編程中有兩個重要的概念:線程和鎖,多線程是一把雙刃劍,它在提高程序性能的同時,也帶來了編碼的複雜性,對開發者的要求也提高

原创 Java 源碼剖析(03)--線程的狀態有哪些?

線程的狀態有哪些?1)線程是如何工作的?2)知識擴展2.1)BLOCKED 和 WAITING 的區別2.2)start() 和 run() 的區別2.3)線程優先級2.4)線程的常用方法 線程(Thread)是併發編程的基礎,也

原创 Java 源碼剖析(02)--HashMap 底層實現原理是什麼?

HashMap 底層實現原理是什麼?1)HashMap 底層實現2)知識擴展2.1)HashMap 源碼分析2.2)什麼是加載因子?2.2)HashMap 死循環分析3)總結 1)HashMap 底層實現 在 JDK 1.7 中

原创 Java 源碼剖析(07)--簡述深克隆和淺克隆

深克隆和淺克隆的實現原理1)深克隆和淺克隆的區別2)知識擴展2.1)clone() 源碼分析2.2)Arrays.copyOf()2.3)深克隆實現方式彙總2.3.1)所有對象都實現克隆2.3.2)通過構造方法實現深克隆2.3.3

原创 Java 源碼剖析(01)--String 的特點是什麼?

String 的特點是什麼?1)String 有哪些重要的方法1.1)多構造方法1.2)equals() 比較兩個字符串是否相等1.3) compareTo() 比較兩個字符串1.4) 其他重要方法2)知識擴展2.1)== 和 e

原创 Java 源碼剖析(04)--詳解 ThreadPoolExecutor 的參數含義

詳解 ThreadPoolExecutor1)ThreadPoolExecutor 的參數含義2)線程池任務執行的主要流程3)知識擴展3.1)execute() 和 submit() 的區別3.2)線程池的拒絕策略3.3)自定義拒

原创 圖解數據結構(02) -- 鏈表

鏈表1、什麼是鏈表單向鏈表雙向鏈表鏈表的存儲方式2、鏈表的基本操作【1】查找節點【2】更新節點【3】插入節點【4】刪除元素3、數組VS鏈表 1、什麼是鏈表 單向鏈表 鏈表(linkedlist)是一種在物理上非連續、非順序的數據結

原创 Docker備份遷移

Docker備份遷移 6.1 容器保存爲鏡像 可以通過以下命令將容器保存爲鏡像 docker commit 容器名稱 myredis 此鏡像的內容就是當前容器的內容,接下來可以用此鏡像再次運行新的容器 例: docker com

原创 圖解排序算法(04) -- 堆排序

堆排序1、初識堆排序2、堆排序代碼實現3、堆排序總結 1、初識堆排序 二叉堆的特性: 最大堆的堆頂是整個堆中的最大元素 最小堆的堆頂是整個堆中的最小元素 以最大堆爲例,如果刪除一個最大堆的堆頂(並不是完全刪除,而是跟末尾的點交

原创 圖解數據結構(05) -- 二叉樹

二叉樹1、什麼是樹2、什麼是二叉樹滿二叉樹完全二叉樹二叉樹的物理存儲結構鏈式存儲結構數組存儲結構3、二叉樹的應用【1】查找【2】 維持相對順序 1、什麼是樹 在數據結構中,樹的定義如下: 樹(tree)是 n(n≥0)個節點的有限

原创 圖解數據結構(09) -- 優先隊列

優先隊列1、優先隊列的特點2、優先隊列的實現3、優先隊列的代碼實現4、總結 1、優先隊列的特點 隊列 的特點是 先進先出, 入隊列,將新元素置於隊尾: 出隊列,隊頭元素最先被移出: 優先隊列不再遵循先入先出的原則,而是分爲兩種