原创 Mybatis常見知識點

  我在個人簡歷上面沒有寫持久層框架,所以這方面在面試的過程問的也比較少,自己總結的也比較粗糙。問的最多的是第二點和第十點 一:工作流程 通過數據源創建一個數據庫連接,將創建的數據庫連接統一放到連接池進行管理,減少每次創建和斷開數據庫連接

原创 java基本

1:反射 在運行時動態的獲取信息以及動態調用對象的方法的功能稱爲Java 的反射機制。 Class類對象和類的對象區別: 類對象應該指類Class對象,字節碼對象可以通Class.forName()/getclass()/.class來獲

原创 Sleuth 與 Zipkin

隨着業務發展,系統拆分導致系統調用鏈路愈發複雜,一個前端請求可能最終需要調用很多次後端服務才能完成,當整個請求變慢或不可用時,我們是無法得知該請求是由某個或某些後端服務引起的,這時就需要解決如何快讀定位服務故障點,以對症下藥。於是就有了分

原创 Redis的鏈表底層結構

主要構成:list結構+listNode結構,Redis鏈表的特性也是和這兩個結構及其各個的屬相字段相關的。 listNode結構 list結構 雖然多個listNode節點就可以連成鏈表,但是引入list結構後,操作活更加的方便,所

原创 Tomcat原理剖析

一、Tomcat頂層架構 俗話說,站在巨人的肩膀上看世界,一般學習的時候也是先總覽一下整體,然後逐個部分個個擊破,最後形成思路,瞭解具體細節,Tomcat的結構很複雜,但是 Tomcat 非常的模塊化,找到了 Tomcat最核心的模塊,問

原创 責任鏈模式

一:責任鏈模式定義(tomcat的啓動加載過程,攔截器) 使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有對象處理它爲止 二:責任鏈模式的特點 純責任鏈模式:一

原创 網絡層

一:ip數據報格式   具體來說首部(一共20字節)包含以下幾個字段 版本:指明是Ipv4還是ipv6。Ipv6是爲了緩解ipv4地址不足引入 總長度:16位,因此一個ip數據包的最大長度是65535字節。 標識:數據在整個網絡體系的傳

原创 模板模式

一:模板模式定義(AQS的設計): 定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類在不改變一個算法的結構即可以重新定義該算法的某些特定步驟。 二:模板模式特點: 模板模式主要由抽象的模板類,具體的模板類以及測試類三部分組成

原创 應用層

一:域名解析協議 實現解析的方式:遞歸解析和迭代解析。 主機向本地域名服務器的查詢一般都是採用遞歸查詢。所謂遞歸查詢就是:如果主機所詢問的本地域名服務器不知道被查詢的域名的IP地址,那麼本地域名服務器就以DNS客戶的身份,向其它根域名服務

原创 原型模式

一:原型模式定義(bean的prototype): 用原型實例指定創建對象的實例,並且通過拷貝這些原型創建新的對象 二:原型模式特點: 運用到的主要是克隆。原理是從內存中以二進制流的方式進行拷貝,重新分配一個內存塊,構造函數不會被執行,且

原创 傳輸層

鏈路層定義了主機的身份,即MAC地址, 而網絡層定義了IP地址,明確了主機所在的網段,有了這兩個地址,數據包就從可以從一個主機發送到另一臺主機。但實際上數據包是從一個主機的某個應用程序發出,然後由對方主機的應用程序接收。而每臺電腦都有可能

原创 策略模式

一:策略模式定義(compator接口比較): 定義一組算法,將每一個算法封裝起來,並且它們之間可以互換 二:策略模式特點: 缺點是調用者需要知道所有的策略,才能準確的調用。優點是一旦知道了具體的策略之後,可以自由的切換。主要由抽象策略角

原创 Feign

一:概念 它整合了Ribbon和Hystrix,從而讓我們不再需要顯式地使用這兩個組件。 默認情況下Feign會將所有Feign客戶端的方法都封裝到Hystrix命令中進行保護。 使用@FeignClient創建Feign客戶端的時候,會

原创 工廠模式(簡單工廠,工廠方法,抽象工廠)

一:簡單工廠 1:簡單工廠模式的定義: 把實例化的操作單獨放到一個類中,這個類就成爲簡單工廠類,讓簡單工廠類來決定應該用哪個具體子類來實例化。這樣做能把客戶類和具體子類的實現解耦,客戶類不再需要知道有哪些子類以及應當實例化哪個子類 2:簡

原创 動態代理模式

一:動態代理定義(Spring的AOP底層實現): 爲其他對象提供一種代理以控制對這個對象的訪問 二:動態代理特點: 代理模式的核心作用就是通過代理,控制對對象的訪問。它的設計思路是:定義一個抽象角色,讓代理角色和真實角色分別去實現它。