原创 Java中的HashCode

什麼是hashcode hashcode即哈希碼,是方便用於查找而使用的一種方法 1.假如內存中有這樣的位置0  1  2  3  4  5  6  7 ,當我要存儲一個對象時,我就要把這個對象放在8個位置之一,如果不用hashcode而任

原创 實戰java高併發程序之並行程序調試

準備試驗樣本 實現樣本 /** * 兩個線程都過了數組大小檢查,先後插入數據時 引起 out of bound * @author Geym * */ public class UnsafeArrayList { stati

原创 jdk8中的lambda表達式

lambda表達式 lambda的優化 JDK8中可以使用以下簡略寫法 new Thread(() -> System.out.println("多線程任務執行!")).start(); // 啓動線程 Arrays.sort(array,

原创 實戰java高併發程序設計-jdk8,9,10與併發

java8函數式編程簡介 函數作爲一等公民 一個函數可以作爲另一個函數的返回值. //js中 function f1(){ var n=1; function f2(){ alert(n); }

原创 實戰java高併發程序設計第五章--並行模式與算法

單例模式 1 1 2 列表3 定義:一個類在系統中只產生一個實例 優點:對於頻繁使用的對象,可以省略new的時間,對於重量級對象來說是一比客觀的系統性能提升 內存使用頻率低,減少GC次數,縮短GC停頓時間 //餓漢式

原创 實戰java高併發程序設計第四章-鎖優化

鎖的使用建議 減少鎖持有時間 減少鎖粒度 讀寫鎖替代獨佔鎖 鎖分離 鎖粗化 減少鎖的持有時間 減少鎖的持有時間有助於降低衝突的可能性,進而提升併發能力 減少鎖粒度 例如ConcurrentHashMap,內部分爲16個segmen

原创 實戰java高併發程序設計第三章(二)

3. JDK的併發容器 併發集合 ConcurrentHashMap:這是一個高效的併發HashMap.你可以把它理解爲一個線程安全的HashMap。 CopyOnWriteArrayList:這是一個List,從名字看就知道它和

原创 實戰java高併發程序設計第三章

1. 同步控制 synchronized的擴展:重入鎖 重入鎖的搭檔Condition 多線程同時訪問:信號量(semaphore) 讀寫鎖ReadWriteLock 倒計數器CountDownLatch 循環柵欄CyclicBarrie

原创 實戰java高併發程序設計第二章

1.線程的基本狀態 2.線程的基本操作 3. volatile與java內存模型 4.線程組 5.守護線程(Daemon) 6.線程優先級 7.線程安全與synchronized 8.隱蔽錯誤 1.線程的基

原创 實戰java高併發程序設計第一章

1. 基本概念 同步(Synchronous)和異步(Asynchronous) 併發(Conncurrency)和並行(Parallelism) 臨界區 阻塞(Blocking)與非阻塞(Non-Blocking) 死鎖(Deadloc