原创 集合類源碼(七)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