原创 Spring(六):SpringBoot執行流程及源碼解析

SpringBoot啓動流程主要分爲三個部分,第一部分進行SpringApplication的初始化模塊,配置一些基本的環境變量、資源、構造器、監聽器,第二部分實現了應用具體的啓動方案,包括啓動流程的監聽模塊、加載配置環境模塊、及核心的創

原创 Spring(七):Spring常用註解及SpringBoot相關依賴

Spring常用註解 @SpringBootApplication: 包含了@ComponentScan、@Configuration和@EnableAutoConfiguration註解。其中@ComponentScan讓pringBo

原创 Spring(四):SpringAOP原理和源碼解析

AOP(Aspect-OrientedProgramming,面向切面編程),可以說是OOP(Object-Oriented Programing,面向對象編程)的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層次結構,用以

原创 Spring(五):SpringMVC執行流程及源碼解析

在SpringMVC中主要是圍繞着DispatcherServlet來設計,可以把它當做指揮中心。這裏先說明一下SpringMVC文檔給出的執行流程,然後是我們稍微具體的執行流程,最後是流程大致的源碼跟蹤。關於很很很詳細的源碼解析,這裏暫

原创 Spring學習(三):Spring源碼解讀啓動過程及IOC原理

在Web容器中啓動Spring IOC ContextLoaderListener實現ServletContextListener,這個接口裏面的函數會結合web容器的生命週期被調用。因爲ServletContextListener是Se

原创 Spring學習(二):Spring xml文件格式、加載上下文六種方式及作用域

Bean的XML文件 可擴展標記語言(標準通用標記語言的子集)是一種簡單的數據存儲語言。 <?xml version="1.0" encoding="UTF-8"?> <beans <!--標準命名空間 --> xml

原创 Java學習(二十):JUC包

java集合包大多是“非線程安全的”,雖然可以通過Collections工具類中的方法獲取java集合包對應的同步類,但是這些同步類的併發效率並不是很高。爲了更好的支持高併發任務,併發大師Doug Lea在JUC(java.util.co

原创 Java學習(十九):多線程編程

Java 給多線程編程提供了內置的支持。 一條線程指的是進程中一個單一順序的控制流,一個進程中可以併發多個線程,每條線程並行執行不同的任務。 多線程是多任務的一種特別的形式,但多線程使用了更小的資源開銷。 這裏定義和線程相關的另一個術語

原创 Java學習(十八):Java Socket通訊

網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都通過網絡連接起來。 java.net 包中 J2SE 的 API 包含有類和接口,它們提供低層次的通信細節。你可以直接使用這些類和接口,來專注於解決問題,而不用關注通信細節。 ja

原创 Spring學習(一):Spring的整體架構與容器的核心類

Spring的整體架構 Spring框架是一個分層架構,它包含一系列的功能要素,並被分爲大約20個模塊,如下圖所示 Core Container Core Container(核心容器)包含有Core、Beans、Context和Exp

原创 Java學習(十七):Java常量池和枚舉

常量池 Java的常量池通常分爲兩種:靜態常量池和運行時常量池 靜態常量池:class文件中的常量池,class文件中的常量池包括了字符串(數字)字面值,類和方法的信息,佔用了class文件的大部分空間。 運行時常量池:JVM在完成加載類

原创 Java學習(十六):Java序列化和克隆

Serializable接口 序列化:對象的壽命通常隨着生成該對象的程序的終止而終止,有時候需要把在內存中的各種對象的狀態(也就是實例變量,不是方法)保存下來,並且可以在需要時再將對象恢復。雖然你可以用你自己的各種各樣的方法來保存對象的

原创 Java學習(十四):ConcurrentHashMap的原理和特性

    Java7 中實現的 ConcurrentHashMap 說實話還是比較複雜的,Java8 對 ConcurrentHashMap 進行了比較大的改動。建議可以參考 Java8 中 HashMap 相對於 Java7 HashMa

原创 Java學習(十五):Java泛型

Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。 泛型的本質是參數化類型,也就是說所操作的數據類型被指定爲一個參數。 假定我們有這樣一個需

原创 Java學習(十二):HashMap的原理和特性

在討論哈希表之前,我們先大概瞭解下其他數據結構在新增,查找等基礎操作執行性能   數組:採用一段連續的存儲單元來存儲數據。對於指定下標的查找,時間複雜度爲O(1);通過給定值進行查找,需要遍歷數組,逐一比對給定關鍵字和數組元素,時間複雜度