原创 java學習之:HashMap源碼分析

HashMap的put操作源碼學習一、HaspMap集合簡介二、HashMap的數據結構2.1 put操作2.2 擴容機制2.3 繼承關係 一、HaspMap集合簡介 基於哈希表的 Map接口的實現。這種實現提供了所有可選的Map

原创 java學習之:JVM學習與總結

初始JVM虛擬機一、JVM結構1、jvm概述2、jvm體系結構2.1 Class Loader SubSystem2.2 運行時數據區3.2 執行引擎二、JVM分代介紹1、新生代1.1 Eden1.2 Survivor2、老年代三

原创 數據結構之:多路查找樹

數據結構學習之:多路查找樹一、計算機存儲概述二、B樹和B+樹1、B數2、B+數 一、計算機存儲概述 計算機的存儲一般分爲兩種:1、內存存儲,2、硬盤存儲 內存的存儲一般用作cpu的高速緩存,而我們的硬盤的數據可永久存儲。現在我們使

原创 數據結構之:哈希表

數據結構學習之:哈希表一、哈希表概述二、散列函數的設計1、直接定址法2、數據分析法3、平方取中法4、取餘法5、隨機法三、散列衝突解決方案1、開放地址法線性探測法二次探測法再哈希法2、鏈地址法 一、哈希表概述 哈希表又稱爲散列表,哈

原创 數據結構之:平衡二叉樹

數據結構學習之:平衡二叉樹一、 平衡二叉樹概述二、平衡二叉樹單旋轉1、右旋轉2、右旋轉三、平衡二叉樹雙旋轉四、代碼實現平衡二叉樹的單、雙旋轉 一、 平衡二叉樹概述 平衡二叉樹(AVL樹)按個人理解其實是對二叉排序樹的一個升級,它其

原创 數據結構之: 二叉排序樹

數據結構學習之:二叉排序樹二叉排序樹概述二叉排序樹代碼實現 二叉排序樹概述 二叉排序樹的規則比較簡單:二叉排序樹又名二叉搜索樹(BST),對於二叉樹中任何一個葉子節點,要求其左子節點小於當前節點,右子節點大於當前節點。根據名字我們

原创 數據結構之:線索二叉樹

數據結構學習之:線索二叉樹線索二叉樹1、線索二叉樹概述1.1 線索二叉樹的使用背景1.2線索二叉樹創建原理2、線索二叉樹代碼實現2.1 線索二叉樹創建 線索二叉樹 1、線索二叉樹概述 1.1 線索二叉樹的使用背景 對於一顆二叉樹而

原创 數據結構之:赫夫曼樹

數據結構學習之:赫夫曼樹1、赫夫曼書概述2、赫夫曼樹的編碼實現3 、赫夫曼編碼概述4、赫夫曼編碼代碼實現4.1 數據壓縮與解壓4.2 赫夫曼編碼壓縮解壓文件 1、赫夫曼書概述 赫夫曼樹又稱爲最優二叉樹,那什麼叫做最優二叉樹呢?最優

原创 數據結構之:樹結構

數據結構學習之:樹一、樹的概念1、定義2、樹的專用術語二、二叉樹1、概述2、二叉樹遍歷2.1、前序遍歷2.2、中序遍歷2.3、後序遍歷3、滿二叉樹與完全二叉樹3.1、滿二叉樹3.2 完全二叉樹4、二叉樹的代碼實現1、鏈表結構實現2

原创 數據結構之:八常用排序算法總結

數據結構學習之:排序算法總結常用排序算法一、交換排序1、冒泡排序2、快速排序二、插入排序1、直接插入排序2、希爾排序三、選擇排序1、簡單選擇排序1、堆排序四 、歸併排序五、基數排序 常用排序算法 瞭解數據結構,對於我們

原创 Java設計模式——行爲型模式之觀察者模式

一、前言       在生活中我們會遇到這樣的場景:用水壺燒開水。當水燒開時,你會有一個關火的過程。在燒水的過程中,你一直觀察着這個燒水的進度,當它的狀態改變時會觸發你關火的這個動作。觀察者模式就是處理這種場景而設計出來的一種設計模式。

原创 Java設計模式——行爲型模式之模板模式

一、前言    在我們的某些項目中,一些流程步驟或者算法往往都已經是固定好了的,唯一不同的是這些流程步驟或者算法中,某一個小的步驟有不同的實現方式。我們將這些不同實現方式的步驟抽取出來,將整個流程或者算法固定住,不允許子類改變,子類唯一可

原创 Java設計模式——行爲型模式之訪問者模式

一、前言    我們在項目開發中,訪問者模式的使用還是比較少的。訪問者模式主要是爲了將數據結構和數據操作做分離。所以我們在使用這種設計模式的時候常常會要求我們的數據結構不要輕易做出改變,它主要是我瞭解決穩定的數據結構和易變的操作耦合問題。

原创 Java設計模式——行爲型模式之狀態模式

一、前言     對象在不同的狀態可能會有不同的行爲方式,當我們的狀態發生改變的時候,我們相應的行爲也要發生改變,狀態模式就是爲了處理這樣的場景而設計出來的一種開發模式。狀態模式主要是爲了解決對象的行爲依賴於它的狀態(屬性),並且可以根據

原创 Java設計模式——行爲型模式之策略模式

一、前言   策略模式是我們在項目設計中會經常用到的一種設計模式。在一些場景中,一些算法或者類的行爲需要改變,如果用傳統的繼承來實現的話,會使得代碼的設計不合理,而且在有多種算法相似的情況下,使用 if...else 所帶來的複雜和難以維