原创 【死磕 Java 集合】— LinkedHashSet源碼分析

  【死磕 Java 集合】— LinkedHashSet源碼分析   問題 (1)LinkedHashSet的底層使用什麼存儲元素? (2)LinkedHashSet與HashSet有什麼不同? (3)LinkedHashSet是有序的

原创 【分佈式 Zookeepe--Zookeeper的Leader選舉

一、前言   前面學習了Zookeeper服務端的相關細節,其中對於集羣啓動而言,很重要的一部分就是Leader選舉,接着就開始深入學習Leader選舉。 二、Leader選舉   2.1 Leader選舉概述   Leader選舉是保證

原创 【死磕 Java 集合】— HashSet源碼分析

  【死磕 Java 集合】— HashSet源碼分析   問題 (1)集合(Collection)和集合(Set)有什麼區別? (2)HashSet怎麼保證添加元素不重複? (3)HashSet是否允許null元素? (4)HashSe

原创 【死磕 Java 集合】— ConcurrentSkipListSet源碼分析

  【死磕 Java 集合】— ConcurrentSkipListSet源碼分析   問題 (1)ConcurrentSkipListSet的底層是ConcurrentSkipListMap嗎? (2)ConcurrentSkipLis

原创 【死磕 Java 集合】— ConcurrentSkipListMap源碼分析

  【死磕 Java 集合】— ConcurrentSkipListMap源碼分析   前情提要 點擊鏈接查看“跳錶”詳細介紹。 拜託,面試別再問我跳錶了! 簡介 跳錶是一個隨機化的數據結構,實質就是一種可以進行二分查找的有序鏈表。 跳錶

原创 【死磕 Java 集合】— ConcurrentHashMap源碼分析(二)

  【死磕 Java 集合】— ConcurrentHashMap源碼分析(二)   初始化桶數組 第一次放元素時,初始化桶數組。 private final Node<K,V>[] initTable() { Node<K,V

原创 【死磕 Java 集合】— CopyOnWriteArraySet源碼分析

  【死磕 Java 集合】— CopyOnWriteArraySet源碼分析   問題 (1)CopyOnWriteArraySet是用Map實現的嗎? (2)CopyOnWriteArraySet是有序的嗎? (3)CopyOnWri

原创 【死磕 Java 集合】— TreeSet源碼分析

  【死磕 Java 集合】— TreeSet源碼分析   問題 (1)TreeSet真的是使用TreeMap來存儲元素的嗎? (2)TreeSet是有序的嗎? (3)TreeSet和LinkedHashSet有何不同? 簡介 TreeS

原创 【死磕 Java 集合】— ConcurrentHashMap源碼分析(三)

  【死磕 Java 集合】— ConcurrentHashMap源碼分析(三)   刪除元素 刪除元素跟添加元素一樣,都是先找到元素所在的桶,然後採用分段鎖的思想鎖住整個桶,再進行操作。 public V remove(Object

原创 【死磕 Java 集合】— ConcurrentHashMap源碼分析(一)

  【死磕 Java 集合】— ConcurrentHashMap源碼分析(一)   開篇問題 (1)ConcurrentHashMap與HashMap的數據結構是否一樣? (2)HashMap在多線程環境下何時會出現併發安全問題? (3

原创 【死磕 Java 集合】— PriorityQueue源碼分析

  【死磕 Java 集合】— PriorityQueue源碼分析   問題 (1)什麼是優先級隊列? (2)怎麼實現一個優先級隊列? (3)PriorityQueue是線程安全的嗎? (4)PriorityQueue就有序的嗎? 簡介

原创 【BATJ面試必會】JAVA面試到底需要掌握什麼?【下】

【BATJ面試必會】JAVA面試到底需要掌握什麼?【下】 非對稱加密,對稱加密 對稱加密(Symmetric Cryptography),又稱私鑰加密 對稱加密是最快速、最簡單的一種加密方式,加密(encryption)與解密(decr

原创 分佈式-MQ-Kafka史上最詳細原理總結

  Kafka史上最詳細原理總結   Kafka Kafka是最初由Linkedin公司開發,是一個分佈式、支持分區的(partition)、多副本的(replica),基於zookeeper協調的分佈式消息系統,它的最大的特性就是可以實

原创 java併發包和類總結-JUC總結

  java併發包和類總結-JUC總結   多線程課程 JUC課程 實戰Java高併發 Java併發編程的藝術 多線程 程序:是一個靜態的概念,一般對應於操作系統中的一個可執行文件。一組指令的集合。 進程:是一個動態的概念,執行中的程序叫

原创 【死磕 Java 集合】— LinkedList源碼分析

  問題 (1)LinkedList只是一個List嗎? (2)LinkedList還有其它什麼特性嗎? (3)LinkedList爲啥經常拿出來跟ArrayList比較? (4)我爲什麼把LinkedList放在最後一章來講? 簡介 L