原创 java synchronized關鍵字原理

java synchronized關鍵字原理 synchronized關鍵字是jdk內置的同步鎖,它是解決併發問題的一種最常用的方法。synchronized可以修飾普通方法、靜態方法、代碼塊,首先看下synchronized的用

原创 線程池原理(一):基本框架

現代機器CPU基本都是多核系統,利用多線程可以明顯提高系統的效率,但是如果不控制線程的使用,會給系統帶來嚴重的後果,因此,JDK提供了線程池供我們使用。有了線程池,每到達一個任務,從線程池調度一個空閒的線程來執行任務,避免了每次都

原创 HashMap源代碼詳解

HashMap類聲明 HashMap類聲明如下: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Seriali

原创 Java如何處理InterruptedException?

Java 理論與實踐 處理 InterruptedException捕捉到它,然後怎麼處理它? Brian Goetz2006 年 6 月 15 日發佈 這樣的情景您也許並不陌生:您在編寫一個測試程序,程序

原创 設計模式-原型模式

設計模式之原型模式 原型模式指的是通過原型實例拷貝新的對象,其實就是通過對象自身複製自己的能力。 原型模式比較簡單,它能夠讓對象具備複製自己的能力。一般原型模式會有一個抽象原型角色,若對象實例想具備複製自己的能力,需要繼承該抽

原创 redis-壓縮列表

redis-壓縮列表 壓縮列表是列表鍵和哈希鍵的底層實現之一。當列表和哈希表滿足一定條件的時候,底層將採用壓縮列表實現,具體將在之後介紹redis對象的時候詳細講解。 壓縮列表的定義 壓縮列表是Redis爲了節約內存的使用而開

原创 redis對象

redis對象 前面我們學習了redis各種數據結構,包括簡單動態字符串、鏈表、字典、哈希表、整數集合、壓縮列表,其實redis實際不是直接使用這些數據結構的,而是使用稱爲redis對象的數據結構:redisObject。 1.

原创 Java final關鍵字詳解

java - final關鍵字 final是java的保留關鍵字,字面意思是”最終的、不可更改的”,對應到java的使用場景完全適用。 java的final關鍵字可以修飾類、方法、成員變量、局部變量、方法參數。接下來將會分別說明這

原创 java序列化機制詳解

java序列化機制詳解 java序列化是將java對象保存在文件或者通過網絡傳輸的機制,通過實現接口Serializable或者Externalizable標識該類的對象可以序列化和反序列化。 如果希望保存java對象的狀態並

原创 ReentrantLock源碼解析

ReentrantLock ReentrantLock是JDK內置的顯示鎖,相對於隱式鎖synchronized,ReentrantLock提供了比synchronized更精細化的鎖控制。通過情況下,我們會這樣使用顯示鎖…… l

原创 redis持久化

Redis持久化 redis是內存數據庫,所有的數據庫狀態、鍵值對都存儲在內存中,爲了避免數據丟失,可以將數據持久化到磁盤上。redis服務器啓動時可以根據持久化文件還原數據庫的狀態。redis的持久化有兩種方式:RDB持久化和A

原创 適配器模式

適配器模式 適配器模式屬於結構型模式,這個模式將一個類的接口轉換成客戶希望的另外的一個接口。該模式使得原本兩個不兼容的接口可以一起工作。 適配器模式適用於希望利用已經存在的功能,但是接口又和已經存在的功能不適配的情況。例如對於

原创 裝飾器模式

裝飾器模式 簡單的說,裝飾器模式可能動態的給一個對象增加額外的功能。 就像人類通過各種服飾來打扮自己一樣,對象通過裝飾器模式打扮自己,從而擁有更多功能。 先看下裝飾器模式的類圖: UML類圖 圖1 裝飾器模式類圖 類圖中的Com

原创 LinkedHashMap源碼詳解

LinkedHashMap源碼詳解 LinkedHashMap是基於HashMap實現的,如果對HashMap不瞭解,請先學習HashMap:http://blog.csdn.net/luanmousheng/article/de

原创 Map接口和AbstractMap抽象類詳解

爲了更好的理解JDK的哈希表實現,首先研究Map接口和AbstractMap抽象類,打好基礎很重要~ Map接口 先來研究下Map接口,附上了註釋的Map接口定義如下: /** Map接口是鍵、值對接口,Map中的鍵是唯一的