原创 Java源碼分析--java.util.HashMap

基礎屬性 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;// 初始容量16 static final int MAXIMUM_CAPACITY = 1 << 30;// 最大

原创 Java基礎--forEach實現原理

針對list的forEach // 源代碼 import java.util.ArrayList; import java.util.List; public class ListTest { public static vo

原创 Java源碼分析--java.lang.Integer

將int轉換爲字符串(指定進制) final static char[] digits = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ,

原创 Java源碼分析--java.util.concurrent.ThreadPoolExecutor

聲明:該博文大部分摘自JoonWhee的博客 文章鏈接:Java併發:線程池詳解(ThreadPoolExecutor) 基礎知識 進程與線程、並行與併發 進程:每個進程都有獨立的代碼和空間,例如QQ和WeChat 線程:

原创 Java源碼分析--java.util.concurrent.ConcurrentHashMap

基礎屬性 static final int DEFAULT_INITIAL_CAPACITY = 16;//默認初始容量 static final float DEFAULT_LOAD_FACTOR = 0.75f;//默認加載因

原创 Java源碼分析--java.util.Hashtable

都說Hashtable是線程安全的,我們看一看Hashtable與HashMap有那些不同。 尋址方式 int hash = hash(key); int index = (hash & 0x7FFFFFFF) % tab.len

原创 Java基礎--static關鍵字解析

static關鍵字的主要用途 修飾方法:令方法可以通過類名直接調用,而不用new一個對象調用。 修飾變量:由static修飾的變量被稱爲全局變量。初始化方式爲:在類中從上到下先分配內存並賦默認值,然後再從上到下初始化 public

原创 Java源碼分析--java.util.ArrayList

序列化問題 /** 使用transient關鍵字,即使繼承了Serializable,也不會序列化 * 一般情況下 elementData.capacity < element.size,我們並不希望將空的元素也序列化 *