原创 紅黑樹--原理,性質與應用

概述 紅黑樹是一棵二叉搜索樹, 主要用在更改比查詢更加頻繁的地方(而二叉平衡樹用在搜索比更改頻繁的地方). 已經的一些性質: 二叉搜索樹上基本操作所花費的時間與這棵樹的高度成正比. 對於一棵完全二叉樹, 這些操作的的最壞運行時間

原创 Spring IoC-依賴注入與屬性裝配(1)-概述

概述 對於在容器中的bean而言, 它的工作可能依賴於其他Bean, 比如一臺電腦的工作依賴於鼠標,鍵盤,屏幕和主機. 當我們對每一個Bean完成初始化時候, 需要確定一種裝配方式, 將它所依賴的Bean注入進去. Spring提

原创 Spring AOP 第一個簡單示例

build.gradle dependencies { compile group: 'org.springframework', name: 'spring-aop', version: '5.2.1.RELEASE'

原创 Spring IoC(1)-概述

概述 IoC是指控制反轉, 將本來由對象自己管理的依賴交由容器管理. 而Spring IoC則是一個IoC框架.其中最爲重要的一些概念包括如下: 容器: 是指容納Bean的一個對象, 它包含了所有bean的元數據, 並且能夠對b

原创 Spring IoC-依賴注入與屬性裝配(1)-自動裝配

概述 Spring容器能夠通過檢查ApplicationContext中的內容來實現依賴自動裝配. 自動轉配的模式 Spring IoC定義了幾種裝配模式可供選擇: 模式 解釋 no 不開啓自動裝配 byName

原创 Spring IoC-Bean生命週期

概述 通過依賴注入的方式, 將Bean的生命週期交由容器(ApplicationContext)來管理. 一個Bean生命周是指bean的初始化開始到最終銷燬的一段時間, 這是一個Bean的完整的週期過程. 在Spring IoC

原创 Java併發編程-併發容器

概述 同步容器將所有的操作都串行化,這雖然實現了線程安全, 但是代價是嚴重降低性能和併發性.併發容器是針對多個線程併發訪問來設計的, 通過併發容器, 可以極大的提高伸縮性並降低風險. 併發容器: ConcurrentHashMap

原创 Java併發編程-線程的狀態與相互轉換

概述 解析 根據源碼, 可以看到線程擁有的狀態枚舉. // java.lang.Thread 1742 public enum State { /** * Thread state for a

原创 MySQL事務隔離級別-髒讀,幻讀,不可重複讀

概述 名詞解釋 共享鎖(shared lock): 這種鎖允許事務對讀鎖定的對象進行讀取操作, 同時允許其他的事務也對這個對象施加共享鎖, 但是不能對鎖定的對象進行寫入, 共享鎖的反面是排它鎖. 排它鎖(exclusive loc

原创 Java併發編程-同步容器類

概述 同步容器類包括Vector和HashTable,二者是早前JDK的一部分,這些同步類是由Collections.synchronizedXxx等工廠方法實現的. 這些類線程安全的方式是: 將他們的狀態封裝起來, 並對他們的每

原创 InnoDB存儲引擎-內存-緩衝池

概述 InnoDB存儲引擎是基於磁盤存儲的, 並將其記錄按照頁的方式進行管理. 而磁盤IO與內存IO的速度相差可能接近1000倍, 所以使用緩衝池(Buffer Pool)可以有效提高響應能力. 當數據庫需要進行數據頁讀取的時候,

原创 在CentOS6安裝MySQL5.7安裝完成之後的啓動

在CentOS 6上安裝MySQL5.7 // 安裝repository, el6代表CentOS6, el7代表CentOS7 yum localinstall https://dev.mysql.com/get/mysql57

原创 使用SQL語句快速插入200w測試數據

# 創建表 create table ref_table( id int(11) auto_increment, col1 varchar(233), col2 int(11), primary key(id) ); #

原创 InnoDB中的Cardinality

概述 並不是在所有的查詢條件中出現的列都需要添加索引, 對於添加B+樹索引, 要讓訪問的行數變小纔有意義. 比如性別這樣的字段, 一般只有兩個取值: M或者F, 這時候他們的可取的範圍是很小的, 稱爲低選擇性 使用這個條件執行S

原创 MySQL字符列前綴索引長度的選擇

概述 字符串列具有不定長得特點,可能長度爲0也可能長度爲1024,當我們頻繁查詢這個列的時候,我們可以爲這個字符串列建立一個索引,但是這個索引不應該是不定長的, 我們應該來選擇一個合適的前綴長度來建立索引.下面介紹找到最佳長度的過