原创 Map (一) HashMap 構造函數的祕密

學習一個類當然要先從構造函數開始學習。因爲我們要使用它,要先創造它嘛。而且構造函數中也有大學問哦! 我們都知道 HashMap 的容量值都是 2^n 大小,那它是怎麼把你傳入的值高效的變爲 2^n 呢?這就是我們本次需要探索的問題

原创 SpringBoot 是如何通過 @SpringBootApplication 掃描項目中的 Bean

原因 首先因爲 XXXXXXXApplication 附帶 @SpringBootApplication 註解,而 @SpringBootApplication 註解的層次如下: SpringBootApplication ---

原创 Linux 中的特殊權限 SUID, SGID , SBIT

Linux 中的特殊權限 SUID, SGID , SBIT 文件的特殊權限: SUID, SGID , SBIT 查看一下文件和目錄的權限: # ls -ld /tmp ; ls -l /usr/bin/passwd

原创 20個 DEMO 瞭解如何使用 AWK

一.程序結構 語法結構awk [options] 'Pattern {Action}' file1 file2 示例代碼 awk '$3 == 0 { print $1 }' test.txt 上述命令中,引號之間的部分是 awk 編

原创 Spring IOC 源碼解析(九) ApplicationContext refresh()

一. 前言 在高級容器中.到頭來,啓動的入口都是一樣的,不論是 Spring 還是 Spring Boot 都會調用 AbstractApplicationContext 的 refresh() 方法來啓動容器 , 在該方法中包含了整

原创 StringBuffer 和 StringBuilder 源碼研究

文章目錄一. 前言二. 區別二. 構造器四. append 方法五. StringBuffer 和 StringBuilder 的擴充 一. 前言 StringBuffer 和 StringBuilder的底層都是使用數組存儲 結構圖

原创 Spring IOC 源碼解析(八) Bean 的創建

文章目錄一.前言二.源碼流程2.1 doGetBean()2.1.1 重點一 (11~25 行):2.1.2 重點二 (37~49 行):2.1.3 重點三 (53行 和 58行):2.1.4 重點四 (64~83 行):2.1.5

原创 JDK8 之 Lambda 總結

文章目錄一. 簡介二. 使用效果2.1 未使用 lambda 和 使用 lambda 的區別三. 基本語法四. 函數式接口五.內置四大核心函數式接口5.1 Consumer5.2 Supplier5.3 Function5.4 Pre

原创 Spring IOC 源碼解析(二) BeanFactory

一.前言 Spring IOC 容器頂級接口 BeanFactory 描述: 定義了最基本的 ioc 容器規範,定義了 ioc 容器具有最基礎的方法 二.方法: BeanFactory 的所有方法: boolean contain

原创 Spring IOC 源碼解析(四) BeanDefinition

一.前言 BeanDefinition是配置文件<bean>元素標籤在容器中地內部表示。<bean>元素標籤擁有class、scope、lazy-init等配置屬性,BeanDefinition 則提供了相應地beanClass、s

原创 Spring IOC 源碼解析(五) ResourceLoader

一.前言 用於加載資源的策略接口(例如,類路徑或文件系統資源)。需要 ApplicationContext 來提供此功能,以及擴展的ResourcePatternResolver 支持。 DefaultResourceLoader

原创 Spring IOC 源碼解析(七) BeanDefinition 的註冊

一.項目準備 1.1 創建項目 首先創建一個簡單的 maven 項目,並導入 spring 最基礎的依賴包. 這裏用到的 spring 版本是 5.1.3.RELEASE 因爲我們只用到最簡單 BeanFactory ,並沒有用 A

原创 Spring IOC 源碼解析(三) DefaultListableBeanFactory

一.前言 在第一篇的時候我們就講過, spring ioc 的實現,主要的有兩條實現分支,而 DefaultListableBeanFactory 的實現就是我們的第一個 BeanFactory 主要實現分支. 來看一下 Defaul

原创 Spring IOC 源碼解析(一) 概述篇

一. IOC是什麼: IOC —Inversion of Control,即“控制反轉”,不是什麼技術,而是一種設計思想。在 Java 開發中,Ioc 意味着將你設計好的對象交給容器控制,而不是傳統的在你的對象內部直接控制。如何理解

原创 Spring IOC 源碼解析(六) XmlBeanFactory

一.前言 現在我們把主要的類講了一部分,下面我們來看看 Spring 是如何啓動的. DefaultListableBeanFactory 作爲一個默認的功能完整的 IOC 容器來使用.那我們就從它來入手. 二. XmlBeanFac