原创 springBoot零配置原理與內嵌tomcat原理

一、使用傳統springMVC“必要”的配置: 1.配置web.xml <context-param> <param-name>contextConfigLocation</param-name> <param-

原创 源碼角度,理清spring IOC容器初始化的全過程

IOC容器初始化過程中4個比較重要的類1.BeanFactory系列:只實現IOC容器的基本功能BeanFactory的基本功能:a.通過containBean方法判斷IOC容器中是否含有指定名字的Beanb.通過isSingleton方

原创 java源碼解讀之Integer

每天都在用着Java各種各樣的類與方法,但是也僅僅只是侷限於用,卻不瞭解那些每天都接觸的類與方法內部是如何去實現的,遇到問題只能不停地度娘谷歌看文章,因此決定從現在開始學習jdk的源碼,我相信基礎的東西永遠都不會過時,不僅要知其然,還要知

原创 java源碼解讀之String

String類可以說是我們日常開發絕對會接觸到的數據類型了,而關於String類的一系列操作方法也是很常用的,因此String是我第2個看的Java源碼,還是跟Integer的源碼一樣,分析全在源碼上面,於是又可以瘋狂貼代碼了哈哈哈,下面

原创 redis學習筆記之5大數據類型的應用場景

1.string:a.緩存熱點數據,如圖:b.多維度計數、防作弊:incr命令c.共享session:session_id是唯一的,以此爲key存放session,redis集中管理,但要防止redis崩潰d.限速:如短信驗證碼限速,se

原创 redis學習筆記之主從複製篇

1.主從配置:3種配置主從的方式:a.配置文件slaveof {masterHost} {masterPort}b. redis-server --slaveof {masterHost} {masterPort}c. slaveof {

原创 redis學習筆記之持久化篇

1.RDB:將當前進程數據生成快照保存到硬盤的過程A.觸發RDB的2種方式:a.手動觸發:save命令:阻塞當前redis服務器,直到RDB過程完成爲止,不建議線上使用bgsave命令:redis進程執行fork操作創建子進程,RDB持久

原创 java源碼解讀之ArrayList

還是跟之前幾篇源碼的一樣,相關信息都寫在源碼裏面,直接祭出源碼啦~~~package java.util; import java.util.function.Consumer; import java.util.function.Pr

原创 redis學習筆記之5大數據類型的基本實現

1.內部編碼:每種數據類型都有不同的編碼,在滿足一定條件下會進行編碼轉換2.各種編碼對應的數據結構簡單介紹:A.簡單動態字符串(sds,simple dynamic string):因傳統C的字符串不能高效支持長度計算與append操作,

原创 rabbitmq安裝與測試

1 Erlang舊版卸載:cluster集羣中的所有節點的erlang版本和rabbitmq版本必須一致, 否則無法加入clusteron Ubuntu:sudo apt-get purge erlang*on Fedora:sudo y

原创 redis學習筆記之阻塞篇

1.內因:A.api或數據結構使用不合理: 如:對一個包含上萬元素的hash結構執行hgetall操作,數據量大且命令複雜度O(n),必然阻塞B.慢查詢:前面有介紹C.大對象:執行./redis-cli -h {ip} -p {port}

原创 redis學習筆記之常用技巧

1.慢查詢分析:客戶端命令的生命週期:慢查詢只統計第3步的耗時,無慢查詢不代表客戶端不存在超時問題,如網絡帶寬問題與慢查詢相關的配置:a.slowlog-log-slower-than:預設閥值,單位爲微秒,默認10000,執行時間超過該

原创 redis學習筆記之集羣篇

佔坑,未來填上

原创 jfinal與servlet性能對比測試

1.硬件環境:物理總內存:16G物理CPU個數:2CPU內核數:12.軟件環境:操作系統版本:CentOS release 6.9jdk版本:jdk1.7.0_09servlet版本:servlet-api 2.5jfinal版本:jfi

原创 redis學習筆記之內存篇

1.內存消耗:內存統計:info memory命令重點關注:used_memory_rss(redis進程佔用內存總量)、used_memory(redis內部存儲數據佔用內存總量)與mem_framentation_ratio(前面2個