原创 Spring Data Redis配置+源碼解讀+擴展

簡介 Spring Data Redis是spring基於Redis做的一些模塊化功能,屬於spring全家桶其中之一,本篇文章主要是講其中關於數據緩存方面的實現+源碼解讀+優化。都知道Redis的其中一個很好的應用場景就是做數據緩存,在

原创 Nacos-配置中心搭建

啓動Nacos Server 這裏通過docker來啓動Nacos Docker github上最新的nacos-docker項目與官網描述的有一點不同,這裏須要修改幾個地方: 修改standalone-derby.yaml versi

原创 Spring容器初始化全過程

spring容器主要有三種初始化方式,xml;註解;JavaConfig+註解形式,這裏以目前最前衛的JavaConfig初始化方式來解讀整個容器的初始化。(畢竟spring官方都強烈建議這種初始化方式,但可悲的是,國內的大部分中小企業還

原创 ReentrantLock源碼解析

前言: ReentrantLock是java併發包中的同步組件,屬於排他鎖,其通過CAS的加鎖方式相比較synchronized更加輕便,不會造成死鎖,其核心實現是其兩個內部類FairSync和NonfairSync,意爲公平鎖和非公平鎖

原创 Git使用教程:最詳細、最傻瓜、最淺顯、真正手把手教!

轉載自 Git使用教程 預警:因爲詳細,所以行文有些長,新手邊看邊操作效果出乎你的預料)一:Git是什麼? Git是目前世界上最先進的分佈式版本控制系統。 工作原理 / 流程: Workspace:工作區 Index / Stage:暫存

原创 Redis Cluster集羣的搭建與實踐

轉載自:Redis Cluster集羣的搭建與實踐Redis Cluster集羣一、redis-cluster設計Redis集羣搭建的方式有多種,例如使用zookeeper等,但從redis 3.0之後版本支持redis-cluster集

原创 FastJson對複雜的泛型對象的解析問題

首先要說的是FastJson提供了一個用於處理泛型反序列化的類TypeReference,在知道具體泛型類型的情況下可以實現反序列化,這裏由於應用場景不適用不對其進行討論。如下場景:public class PieChartVO<T ex

原创 源碼上分析ArrayList/LinkedList的性能

環境:JDK8概述:ArrayList底層是一個數組,數組有容量限制,超出限制時會增加50%容量,默認第一次插入元素時創建大小爲10的數組。LinkedList底層維護一個Node的雙向鏈表參考其內部類Node<E>private sta

原创 Java線程池 ExecutorService

一、ExecutorService介紹 ExecutorService是Java中對線程池定義的一個接口,它java.util.concurrent包中,在這個接口中定義了和後臺任務執行相關的方法:  Java API對Exe

原创 Mybatis 緩存特性的使用及源碼分析

文章摘自公衆號importNew:Mybatis 緩存特性的使用及源碼分析 有興趣的同學可以關注這個公衆號。 前言 主題是Mybatis一級和二級緩存的應用及源碼分析。希望在本場chat結束後,能夠幫助讀者朋友明

原创 面試必備:LinkedHashMap源碼解析(JDK8)

概括的說,LinkedHashMap 是一個關聯數組、哈希表,它是線程不安全的,允許key爲null,value爲null。  它繼承自HashMap,實現了Map<K,V>接口。其內部還維護了一個雙向鏈表,在每次插入數據,或者訪問

原创 Redis Cluster遷移目標節點宕機下填坑

轉載自 聽滴滴大神講解redis cluster數據遷移遇到的坑 問題背景 應@冬洪兄邀請,讓我把最近在處理Redis Cluster中遇到的坑分享下,由於個人時間問題,大致整理了一個比較大,比較坑的問題,它可能會導致集羣部分sl

原创 Java8 - IdentityHashMap源碼

一、概述先來看看源碼中的部分註釋,這能夠讓我們對這個容器有一個初步的瞭解:This class implements the Map interface with a hash table, using reference-equalit

原创 分佈式鎖的多種實現方式

轉載自分佈式鎖的多種實現方式 目前幾乎很多大型網站及應用都是分佈式部署的,分佈式場景中的數據一致性問題一直是一個比較重要的話題。分佈式的CAP理論告訴我們“任何一個分佈式系統都無法同時滿足一致性(Consistency)、可用性(Avai

原创 getRootConfigClasses和getServletConfigClasses區別

在spring in action這本書中關於配置DispatchServlet中如果用非xml的配置方式有這麼一段代碼(當時很疑惑着兩個配置類有什麼區別):package spittr.config; import org.spring