原创 數組與字符串

大家都知道什麼是數組與字符串,這裏不再累述。重點放在數據結構相關的一些技巧和問題的總結上。 請注意,數組問題與字符串問題往往是相通的。很多數組問題都可以以字符串的形式出現,反之亦然。 散列表 散列表(Hash table,也叫哈希

原创 【操作系統】進程間通信的方式

進程間通信就是在不同進程之間傳播或交換信息,那麼不同進程之間存在着什麼雙方都可以訪問的介質呢?進程的用戶空間是互相獨立的,一般而言是不能互相訪問的,唯一的例外是共享內存區。但是,系統空間卻是“公共場所”,所以內核顯然可以提供這樣的

原创 【Java核心知識三】抽象類和接口

接口和內部類爲我們提供了一種將接口和實現分離的更加結構化的方法 抽象類和抽象方法 抽象方法:不完整,僅有申明而沒有方法體。 abstract void f(); 抽象類: 包含(一個或者多個)抽象方法的類。 是普通類和接口的中

原创 SpringMVC小結

SpringMVC流程 Spring的模型-視圖-控制器(MVC)框架是圍繞一個DispatcherServlet來設計的,這個Servlet會把請求分發給各個處理器,並支持可配置的處理器映射、視圖渲染、本地化、時區與主題渲染等,甚至還能

原创 【Java核心知識一】基礎知識

相比C++,Java是一種更純粹的面嚮對象語言,在Java中,(幾乎)一切都是對象。 1.1 創建對象 通過標識符操縱對象,操縱的標識符是對象的引用(reference)。類似於遙控器(引用)操作空調(對象)。 創建引用:

原创 代理設計模式(JDK與CGLIB)

靜態代理 動態代理 1JDK動態代理 2CGLIB動態代理 代理模式的定義: 給某個對象提供一個代理對象,並由代理對象控制對於原對象的訪問。 客戶不直接操控原對象,而是通過代理對象間接地操控原對象。 代理模式UML圖:

原创 Java虛擬機小結

內存模型 JVM內存結構 程序計數器:程序計數器是一塊較小的內存空間,可以看做是當前線程所執行的字節碼的行號指示器。(線程私有) JVM棧: 與程序計數器一樣,Java虛擬機棧也是線程私有的,它的生命週期與線程相同。 虛擬機棧描述的是J

原创 Spring和它的AOP

前言: 首先,要了解 Spring 的 AOP 就必須先了解的動態代理的原理,因爲 AOP 主要就是基於動態代理實現的。對動態代理有不明白的同學,可以看我的上一篇博客:代理設計模式(JDK和CGLIB) AOP的概念: AOP(Aspec

原创 模擬死鎖的產生

上一篇介紹死鎖的博客提到了 死鎖是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。 那麼今天,我準備自己寫一個程序來模擬死鎖的產生。 簡單起見,我這裏只設置

原创 【JavaWeb】Spring和它的IOC

Spring的架構 最核心組件:Bean 協同作戰:Core和Context Spring註解 Spring的控制反轉(IOC) IOC的概念: IOC容器如何工作 創建 BeanFactory 工廠 創建 Bean 實例: 如

原创 HTTP及HTTPS協議

HTTP協議 什麼是HTTP 定義: HTTP中文叫做超文本傳輸協議,它完成客戶端到服務端等一系列運作流程。 HTTP 協議規定,請求從客戶端發出,最後服務端響應該請求並返回。 HTTP協議的特點 無狀態 HTTP是一種無狀態協議

原创 死鎖及其預防

什麼是死鎖 死鎖產生的條件 死鎖的預防 什麼是死鎖 定義: 死鎖是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。 此時稱系統處於死鎖狀態,而這些永遠

原创 Redis小結

一、redis數據類型 redis底層的數據結構包括簡單動態字符串,雙端鏈表,字典,壓縮列表,整數集合等等。但是redis並沒有直接使用這些數據結構來實現鍵值對數據庫,而是基於這些數據結構創建了一個對象系統,這個系統包括: 字符串對象(

原创 數據庫優化策略小結

一數據類型的優化 1MySQL數據類型 2優化策略 二索引優化 1索引類型 2高性能索引策略 三查詢優化 1優化數據訪問 2從好到壞的where條件應用 3重構查詢 一、數據類型的優化 (1)MySQL數據類型 整數

原创 樂觀鎖與悲觀鎖的實現

數據庫管理系統(DBMS)中的併發控制的任務是確保在多個事務同時存取數據庫中同一數據時不破壞事務的隔離性和統一性以及數據庫的統一性。 樂觀併發控制(樂觀鎖)和悲觀併發控制(悲觀鎖)是併發控制主要採用的技術手段。下面將分別闡述這兩種“鎖”的