原创 一個url請求的流程

主要流程 1. 域名解析 域名解析就是根據url來獲取對應的ip的過程。 瀏覽器 會首先會去搜索瀏覽器自身的DNS緩存 , 如果找到了url對應的ip就直接返回 如果瀏覽器自身的緩存裏面沒有找到對應的條目,那麼瀏覽器會搜索操作系

原创 設計模式——動態代理及實現

在啃Spring的AOP之前,在複習以下動態代理及其實現方式 代理模式 在不使用代理模式的場景下,對象A想使用對象B的功能,一個方法是通過持有對對象B的引用,然後直接使用對象B提供的服務了。 而使用了代理模式,則引入一個第三方的代

原创 一個Bean對象的創建流程 & IOC容器創建流程

一個Bean的創建 一、根據location生成並註冊BeanDefinition 具體過程看這裏 二、根據BeanDefinition創建Bean *如果是在容器初始化階段,那麼只會實例化 非延遲加載的、單例對象(通過遍歷

原创 Spring源碼閱讀——預備知識(草稿)

本文是個草稿,完全用於個人複習( BeanDefinition —— Bean的定義 根據配置,生成用來描述Bean的BeanDefinition,例如常用屬性: 作用範圍scope(@Scope) 懶加載lazy

原创 Spring源碼閱讀——PostProcessor

PostProcessor系列接口 一共有3種PostProcessor接口,分別是: BeanDefinitionRegistryPostProcessor BeanFactoryPostProcessor BeanPostP

原创 Spring源碼閱讀——BeanDefinition註冊的過程

本篇文記錄一下從location路徑 -> BeanDefinition註冊的過程. 以XML方式爲例子. 看本文前需要讀者已經明白如下知識: BeanDefinition接口,Resource接口,ResourceLoader

原创 Spring監聽機制

觀察者模式是一個常用的設計模式,Spring源碼中在很多地方也用到了這一機制,爲了能更好的理解源碼,先來學習一下Spring的監聽機制. 事件監聽器模式 監聽器監聽感興趣的事件,一旦事件發生,便作出響應 事件源(Event S

原创 Spring IOC與AOP的使用小結

一、bean的幾種創建方式(IOC) 1. 使用構造函數創建bean 1.1 使用默認構造函數創建bean 即<bean id=.. class=.. />, 則默認調用無參構造函數來創建bean,並裝入容器中. 此時如果類中沒有

原创 Spring源碼閱讀——Aware接口

一、Aware接口用來做什麼 在使用Spring時,如果我們想在Bean中使用Spring底層的資源,例如:ApplicationContext, StringValueResolver等時,該如何得到呢? Aware接口就提供給

原创 春招面試突擊——Java篇

一、JDK1.7和1.8中HashMap的區別: 在擴容上,1.7是先擴容在put,1.8是在擴容中put. 在擴容後,1.7會重新計算所有元素的新位置,1.8會進行判斷,HashCode最高位爲0的,則位置不動,最高位爲1的,

原创 面試突擊——數據庫篇

一、索引 1. 爲什麼使用索引 提高查詢效率,避免全表掃描; 2. 如何定位並優化慢sql 先說步驟: 第一步:根據慢日誌定位慢查詢sql 根據慢查詢日誌確定慢sql: 使用show variables like '%q

原创 面試突擊——Redis

一. memcache和Redis的區別 Memcache:代碼層次類似Hash 支持簡單數據類型 不支持數據持久化存儲 不支持主從 不支持分片 Redis: 數據類型豐富 支持數據磁盤持久化存儲 支持主從 支持分片