原创 【JAVA集合知識集錦】LinkedList要點總結

雙向鏈表結構 LinkedList作爲java又一大常用集合,其內部也有許多特性需要關注,首先我們從源碼可以剖析出LinkedList爲一個雙向鏈表結構,如下圖: 具體源碼分析如下: 首先是LinkedList裏的重要屬性: //鏈

原创 【JAVA集合知識集錦】ArrayList要點總結

ArrayList作爲java中常用的集合類型有哪些特點需要我們瞭解呢?本文將基於jdk1.8源碼來一步步列出ArrayList有哪些需要令人注意的要點。 1 RandomAccess隨機訪問接口 ArrayList繼承實現關係如下圖:

原创 Spring Security實現原理剖析(一):filter的構造和初始化

前言 我們知道Spring Security的核心實現原理都是從filter開始的,Spring Security通過構造層層filter來實現登錄跳轉、權限驗證,角色管理等功能。本章通過剖析Spring Security的核心源碼來說明S

原创 java併發實戰:連接池實現

池化技術簡介 在我們使用數據庫的過程中,我們往往使用數據庫連接池而不是直接使用數據庫連接進行操作,這是因爲每一個數據庫連接的創建和銷燬的代價是昂貴的,而池化技術則預先創建了資源,這些資源是可複用的,這樣就保證了在多用戶情況下只能使用指定數目

原创 https證書互信解決方案—創建私有CA並申請證書

前言 https相較於http而言有很大的安全性,當我們一個服務開啓https並與之通信時,往往需要證書的認證,如果是瀏覽器訪問服務,只要在瀏覽器內設置信任證書即可,而如果是程序內訪問服務(如java程序),則需要導入該服務的證書所信任的證

原创 從實踐學習設計模式——優化多if代碼結構

前情提要 在實際開發中,我們常常會出現以下的代碼情況: if (state == 1){ haveBreakfast(); } else if (state == 2){

原创 Flannel解讀

概念 由我上篇博文Docker網絡解讀可知,flannel主要用來解決容器的跨主機通信問題,同時也是kubernetes主要實現網絡互通的方式,那麼flannel是如何實現容器間跨主機通信的呢,下面我們引入flannel github上的一

原创 Docker網絡解讀

libnetwork docker在1.9版本之後,引入了一套docker network子命令來管理docker網絡。這允許用戶可以根據他們應用的拓撲結構創建虛擬網絡並將容器接入其所對應的網絡。 具體來說,docker網絡是通過一個叫li