原创 Java泛型

泛型類型的提出public class GenericTest { public static void main(String[] args) { List list = new ArrayList();

原创 內存泄漏和內存溢出

內存泄漏out of memory是指程序由於錯誤或漏洞造成的內存佔用過多,或佔用內存後無法釋放。內存溢出memory leak是指已有的數據超過了其獲得到的內存所能存儲的範圍,比如用一個字節存放1000這個數字就屬於內存溢出。 memo

原创 java元註解和自定義註解

四個元註解分別是:@Target,@Retention,@Documented,@Inherited , 再次強調下元註解是java API提供,是專門用來定義註解的註解,其作用分別如下: @Target 表示該註解用於什麼地方,可能的值

原创 數據庫鎖機制

一 、樂觀鎖和悲觀鎖 【悲觀鎖】 所謂悲觀鎖就是基於數據庫機制實現的。 比如在在使用select子句的時候加上for update, 那麼直到改子句的事務結束爲止,任何應用都無法修改select出來的記錄。 【樂觀鎖】 所謂樂觀鎖是基於應

原创 HashMap、ConcurrentHashMap

   一、定義        HashMap實現了Map接口,繼承AbstractMap。其中Map接口定義了鍵映射到值的規則,而AbstractMap類提供 Map 接口的骨幹實現,以最大限度地減少實現此接口所需的工作,其實Ab

原创 Hibernate與 MyBatis的比較

Hibernate 是當前最流行的O/R mapping框架,它出身於sf.NET,現在已經成爲Jboss的一部分。 Mybatis 是另外一種優秀的O/R mapping框架。目前屬於apache的一個子項目。 MyBatis 參考資料

原创 JVM GC垃圾回收

對象的存活判斷:可達性分析算法通過一系列的稱爲 GC Roots 的對象作爲起點, 然後向下搜索; 搜索所走過的路徑稱爲引用鏈/Reference Chain, 當一個對象到 GC Roots 沒有任何引用鏈相連時, 即該對象不可達, 也

原创 Java中類的加載順序剖析

Class B public class B{ //靜態變量  static int i=1; //靜態語句塊 static {     System.out.println("Class B1:static blocks"+i); }

原创 JVM內存模型

我們知道,計算機CPU和內存的交互是最頻繁的,內存是我們的高速緩存區,用戶磁盤和CPU的交互,而CPU運轉速度越來越快,磁盤遠遠跟不上CPU的讀寫速度,才設計了內存,用戶緩衝用戶IO等待導致CPU的等待成本,但是隨着CPU的發展,內存的讀

原创 分佈式事務介紹

2 分佈式事務—兩階段提交協議兩階段提交協議(Two-phase Commit,2PC)經常被用來實現分佈式事務。一般分爲協調器C和若干事務執行者S

原创 @Transactional(readOnly = true)

概念:從這一點設置的時間點開始(時間點a)到這個事務結束的過程中,其他事務所提交的數據,該事務將看不見!(查詢中不會出現別人在時間點a之後提交的數據

原创 Java動態代理的兩種實現方法

AOP的攔截功能是由java中的動態代理來實現的。說白了,就是在目標類的基礎上增加切面邏輯,生成增強的目標類(該切面邏輯或者在目標類函數執行之前,或者目標類函數執行之後,或者在目標類函數拋出異常時候執行。不同的切入時機對應不同的Inter

原创 java 異常分類

記錄java異常 java異常結構圖 鼠標移動到該類名處, 直接按快捷鍵ctrl + t。 說明: 此快捷鍵是查看到有這個同名方法的父類、子類、接口。 java異常分爲"檢查"和"非檢查"兩類,"檢查"二字的意思是,代碼編譯時,編譯器會

原创 數據庫的隔離級別

數據庫事務的隔離級別有4種,由低到高分別爲Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。下面通過

原创 單例模式的7種寫法

第一種(懶漢,線程不安全): public class Singleton { private static Singleton instance; private Singleton (){} public s