原创 Spring原理學習系列之五:IOC原理之Bean加載

引言 其實很多同學都想通過閱讀框架的源碼以汲取框架設計思想以及編程營養,Spring框架其實就是個很好的框架源碼學習對象。我們都知道Bean是Spring框架的最小操作單元,Spring框架通過對於Bean的統一管理實現其IOC以

原创 Netty源碼分析系列之五:Netty多線程模型

引言 我們一直都說Netty是高性能服務器,那麼它到底爲什麼是高性能應用呢?線程模型直接影響着網絡應用的性能狀況,本文將從Netty的多線程模型出發揭開其高性能特性的神祕面紗。 多線程模型 (1)傳統IO模型的問題 ·如果我們自己

原创 玩轉Docker系列之二:Docker鏡像刪除

引言 在進行容器雲開發過程中,我們會在本地進行一些鏡像製作來進行鏡像功能的測試驗證。時間長了服務器中的本地鏡像就會很多,此時我們需要將之前測試的鏡像刪除,但是我們在刪除鏡像的過程中會遇到一些問題,本文將圍繞這個主題進行闡述。 問

原创 Netty源碼分析系列之二:爲什麼選擇Netty

引言 通信框架其實有很多,再不濟可以使用JDK NIO。爲什麼很多框架以及自己做項目開發的會使用Netty作爲通信框架呢?本文將就此展開闡述。 爲什麼不直接使用NIO Netty現狀 總結 一、爲什麼不直接使用NIO (1)N

原创 玩轉Docker系列之一:Docker概念以及常用命令

引言 服務逐漸向雲化轉移,阿里巴巴已經在今年雙11宣佈所有核心服務全部遷移上雲。因此所以針對服務容器雲化,可能會是各個公司今後都要進行的企業IT架構升級之道。從本文開始將主要介紹Docker的相關內容以及使用技巧。 什麼是容器

原创 Java集合系列之五:StringBuilder爲什麼線程不安全?

引言 其實StringBuilder並不屬於集合,但是爲了不再新開文章系列,就寫在這個文章系列裏面。我們在面試的過程中,有時候面試官會穩點Java基礎的問題,如HashMap的相關問題等等。我們都知道StringBuilder是線

原创 Java設計模式之二:策略模式

引言 本文主要介紹策略模式的相關內容。主要說明策略模式是什麼、怎麼用及其對應的優缺點。 策略模式介紹 代碼示例 總結 一、策略模式介紹 到底什麼是策略模式呢?按照我自己的理解,簡單來說就是將具備統一任務屬性的一類業務邏輯進行封

原创 Linux系統系列之二:開啓防火牆指定端口

引言 實際項目現場,服務器的防火牆都是開啓的,只允許白名單中的端口可以進行訪問。但是在項目現場開發時,有時候需要開啓指定端口進行測試,本文主要說明在Linux系統環境下如何讓防火牆不攔截指定端口的方法。 注意:本文的操作系統爲Li

原创 LeetCode解題之十六:最大子序和

題目 給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 示例 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子數組 [4,-1,2,1] 的

原创 LeetCode解題之十四:移除元素

題目 給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。

原创 Java設計模式之四:觀察者模式

引言 本文主要介紹觀察者模式,它是一種行爲類的設計模式。適合一對多的適用場景。 觀察者模式介紹 代碼示例 總結 一、觀察者模式介紹 觀察者模式是一種對象行爲模式。它定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時

原创 備戰阿里面試系列:第五天

昨天回家依然很晚,可能過了想睡覺的點,怎麼也睡不着。於是在牀上看了一直沒看的馬老師創業史,心裏面久久不能平靜。在九幾年的時候就看到了電子商務的蓬勃發展的未來,並且一直堅持下來,最終開創了阿里巴巴的輝煌。馬老師曾經受到的痛苦、質疑、

原创 Java併發編程系列之六:深入理解ThreadLocal

引言 無論實際項目實戰還是面試,ThreadLocal都是一個繞不開的話題,本文主要從源碼角度和大家一起探討下ThreadLocal的神祕面紗。 ThreadLocal是什麼?它能幹什麼? ThreadLocal源碼分析 總結

原创 徹頭徹尾搞定JVM系列之一:JVM學習大綱

引言 如果說編碼是程序猿的招式的話,那麼JVM可謂是內功心法。但是無論是市面上的大牛寫的書籍又或者網上的博客文章,都對於JVM的描述過於理論化描述,總是讓人有種望而卻步的感覺。本系列文章希望通過大白話的方式講解JVM技術體系,希望

原创 Spring原理學習系列之六:IOC原理之BeanDefinition註冊

引言 在上一篇文章中,我們大致介紹了Bean創建、Bean加載的流程,但是由於文章篇幅所限,不能事無鉅細的進行詳細介紹。後續本系列的文章將對這部分的內容進行庖丁解牛,儘可能的將IOC中比較重要的細節說明清楚,以便於自己以及花時間閱