原创 生產者消費者(singlAll和await誤用)

Conidition中的SinglAll和await誤用 使用Condition的SinalAll和await()方法寫了一個生產者和消費者程序,功能很簡單,只是爲了理解singall和await方法:生產者線程生產message

原创 JAVA泛型詳解(上)

*1.泛型定義* 泛型是在定義接口,類時指定類型形參,這個類型形參將在創建對象,聲明變量時明確指定。JDK5集合框架中的大量使用了泛型,所以在使用集合框架時可以明確指定具體的類型參數。下圖聲明瞭一個類使用泛型: publ

原创 rocketmq總體理解

rocketmq的文章在網絡上有大量的文章分析,而且分析的非常不錯。本人此處發表rocket文章只是學習過程中的心得體會,可能分析不是很準確,希望有緣人指出其中問題,日後改正! rocketmq總體架構 從上圖中可以看出,r

原创 RedisTemplate設計理解

Spring對於redis的集成很大程度上方便了開發人員操作redis的各種數據。屏蔽了對於底層redis連接的獲取,釋放。Spring-data-redis主要集成了jedis第三方客戶端的操作。 redis中主要有5種數據類

原创 ConcurrentLinkedQueue學習

隊列的概念 隊列是一種先進先出的基於結點的數據結構,進入隊列時間長的元素稱之爲隊頭,即head。進入隊列時間最晚的元素稱之爲隊尾,即tail。每次插入新的元素都是從隊列的尾部插入。每次從隊列中獲取元素都是從頭元素獲取。 在JAV

原创 AbstractQueuedSynchronizer深度學習(獨佔鎖)

概念 AbstractQueuedSynchronizer簡稱AQS,即抽象隊列同步器。AQS是JAVA併發編程的核心基礎類。所有的併發都是基於AQS進行擴展。AQS內部採用FIFO隊列進行線程併發的管理。 類AQS採用模板方法

原创 註解Annotation學習基礎篇

1.Annotation是什麼? 註解是JDK5新增的,主要爲程序增加元數據。Annotation是一種接 口,主要用來對JAVA應用程序元素設置元數據。需要通過JAVA反射技術獲得Annotation對象,

原创 Volatile併發理解

Volatile作用 在java中主要用來修飾成員變量和類變量。其中,使用volatile修飾的變量在多線程環境中對所有多線程都是可見的。即,其中一個線程修改了volatile修飾的變量值,則其他線程能夠立即得到最新修改的值。對於

原创 Redis學習--JedisCluster源碼解讀

JedisCluster JedisCluster是針對RedisCluster的JAVA客戶端,它封裝了java訪問redis集羣的各種操作,包括初始化連接,請求重定向等操作。具體內部實現原理主要有如下兩個方面: 1.1. Jed

原创 LockSupport使用

LockSupport功能 LockSupport在JDK中主要提供了線程的阻塞和喚醒功能。提供了更高級別的同步功能。 阻塞方法主要是以park開頭的各種方法,喚醒線程的方法只有unpark一個方法。 LockSupport中的 par

原创 Nginx學習-初步理解

請求方式 Nginx是一款高性能的web服務器,能夠同時處理大量的併發請求,主要是得益於Nginx的master-worker進程模式和異步機制。 master-worker模式 nignx服務器對於接收到的每一個請求,都會有主進程

原创 JVM原理之內存分配參數

調優目標 應用程序的請求量很大時,容易造成頻繁的full gc。full gc頻繁會導致java應用出現停頓。 JVM調優主要從年輕代,老年代,永久代等方面去調整參數,同時需要掌握JVM內存管理機制,設置符合自己應用的參數值。 JVM

原创 Dubbo源碼分析-config

Spring的關係 dubbo中擴展了spring的schema,其中dubbo的schema文件名稱位dubbo.xsd,在META-INF目錄下面。 dubbo.xsd中定義了dubbo中配置文件各種標籤。每一種標籤最終都是被解析成

原创 JVM原理之運行時數據區

JVM虛擬機 1. JVM在運行時主要包含java堆,方法區,程序計數器,JVM棧,本地方法棧。其中JAVA堆和方法區歸所有線程共有,而JVM棧和程序計數器歸線程私有。 程序計數器 程序計數器主要是執行線程中的指令,在多核環境中,線程

原创 Oracle索引原理

索引原理 oracel中索引類型很多,默認採用B樹索引。 oracle中的索引與mysql中的索引不一樣,oracle中索引是存儲了索引列的值以及rowid值。而mysql索引分爲聚集索引,非聚集索引。其中聚集索引只能有一個。 orac