原创 集合類源碼(七)Map(ConcurrentHashMap, ConcurrentSkipListMap, TreeMap)
ConcurrentHashMap 內部結構 在JDK1.8之前的實現結構是:ReentrantLock+Segment+HashEntry+鏈表 JDK1.8之後的實現結構是:synchronized+CAS+Node+鏈表或紅黑樹(與
原创 集合類源碼(六)Map(HashMap, Hashtable, LinkedHashMap, WeakHashMap)
HashMap 內部結構 內部是一個Node數組,每個Node都是鏈表的頭,當鏈表的大小達到8之後鏈表轉變成紅黑樹。 put操作 final V putVal(int hash, K key, V value, boolea
原创 CycleBarrier與CountDownLatch原理
CountDownLatch 衆所周知,它能解決一個任務必須在其他任務完成的情況下才能執行的問題,代碼層面來說就是隻有計數countDown到0的時候,await處的代碼才能繼續向下運行,例如: import java.util.*;
原创 Volatile和Synchronized
線程安全可以概括爲三個方面:原子性、可見性和有序性。 原子性:對於涉及共享變量的操作看做一個整體,在同一時間內,只能由一個線程執行,在其它線程看來,這部分操作要麼尚未開始,要麼已經完成。Java中,基本類型除了long和double,其它類
原创 集合類源碼(五)Collection之BlockingQueue(LinkedTransferQueue, PriorityBlockingQueue, SynchronousQueue)
LinkedTransferQueue 功能 全名 public class LinkedTransferQueue<E> extends AbstractQueue<E> implements TransferQueue<E>, S
原创 集合類源碼(四)Collection之BlockingQueue(ArrayBlockingQueue, DelayQueue, LinkedBlockingQueue)
ArrayBlockingQueue 功能 全名 public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, Ser
原创 二叉樹 & 平衡二叉樹 算法(Java實現)
二叉樹 比如我要依次插入10、3、1、8、23、15、28。先插入10作爲根節點: 然後插入3,比10小,放在左邊: 再插入1,比10和3小,放在3左邊: 再插入8,比10小,比3大,放在3右邊: 再插入23,比10大,放在10
原创 JVM調優工具
JMap 首先要知道Java進程的pid。 Windows: .. .. .. Linux: ps -ef | grep java 查看堆棧信息(jmap -heap pid) jmap -heap 8512 Attachi
原创 集合類源碼(三)Collection之List(CopyOnWriteArrayList, Stack)
CopyOnWriteArrayList 功能 全名 public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.S
原创 集合類源碼(一)概述
一個簡單知識點,List和Set都是繼承Collection接口,HashMap實現了Map接口,而這兩個頂級接口的實現類都有哪些呢? Collection<E> 子接口:BlockingDeque<E>, BlockingQueue<E>
原创 Spring(或者SpringBoot)整合Spring-Session實現共享session
傳統Spring 先引入依賴 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
原创 集合類源碼(二)Collection之List(ArrayList, LinkedList, Vector)
ArrayList 功能 完全命名 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Seri
原创 Java ReentrantLock中tryLock與lock的區別(非公平鎖與公平鎖)
設置同步狀態,利用CAS操作。 // CAS操作:如果當前狀態值等於期望值,則自動將同步狀態設置爲給定的更新值 protected final boolean compareAndSetState(int expect, int upd
原创 是可忍孰不可忍!!notepad++作者臺獨分子,惡毒言論!!!
本來用了兩年這個軟件吧,不帶任何情感的,單純輔助工具。直到今天,在GitHub上,發現了這個作者以及一些同黨都是一羣尼瑪生在中國罵中國的狗幣。 https://github.com/notepad-plus-plus/notepad-plu
原创 Spring BeanFactory繼承結構圖
結構圖 高清大圖:https://img2018.cnblogs.com/blog/813478/201910/813478-20191030114422275-1092084932.jpg 源文件(可導入https://www.proc