原创 Spring框架的本質:4那些高曝光率的Annotation

我們看幾個比較常見的Annotation,便於後面更好的理解spring框架的奧祕做準備 @ComponentScan 對應XML配置形式中的<context: component-scan>元素,用於配合一些元信息Java An

原创 Lambda表達式只是一顆語法糖?

JDK在不斷升級過程中,要致力解決的問題之一就是讓程序代碼變得更加簡潔。JDK8引入的Lambda表達式在簡化程序代碼方面大顯身手,它用簡明扼要的語法來表達某種功能包含的操作。在程序遍歷訪問集合中元素的場合,運用Lambda表達式

原创 比繼承更有彈性的裝飾者模式

定義 在不改變原有對象的基礎上,將功能附加到對象上。 提供了比繼承更有彈性的替代方案(擴展原有對象功能) 類型 結構型 適用場景 裝飾者模式在我們生活中也經常會用到,例如我買個蛋糕,我想加些草莓,還想再加些蛋糕,根據不同的需求

原创 外觀模式又叫門面模式?

定義 又叫門面模式,提供了一個統一的接口,用來訪問系統中的一羣接口 外觀模式定義了一個高層的接口,讓子系統更容易使用 類型 結構型 使用場景 子系統越來越複雜,增加外觀模式提供簡單調用接口 構建多層系統結構,利用外觀對象作爲

原创 六、簡單又有坑的原型模式

文章目錄定義特點類型適用場景優點缺點擴展coding目標類實現克隆接口原型模式抽象類實現克隆接口原型模式淺克隆和深克隆克隆破壞單例源碼解析Object的clone方法實現cloneable接口的類ArrayList實現了Clone

原创 最簡單又最複雜的單例模式

文章目錄定義類型適用場景優點缺點重點私有構造器線程安全延遲加載序列化和反序列化安全反射codnig懶漢式非線程安全的線程安全的第一種:加synchronized關鍵字Double-check雙重檢查方式(有隱患)Double-ch

原创 基於Apache ShardingSphere打造分佈式數據庫

張亮 京東數科數據研發負責人 Apache孵化項目ShardingSphere負責人 是寫第一行代碼的人,可以說是創始人 京東數科分佈式事務中間件JDTX負責人 技術書籍 《未來架構——從服務化到雲原生》作者 在2019年用閒

原创 Hystrix斷路器

文章目錄概述分佈式系統當中可能會面臨的問題是什麼官網資料服務熔斷服務降級使用總結服務監控hystrixDashboard官網使用7色1圈1線整圖說明搞懂一個才能看懂全套 概述 分佈式系統當中可能會面臨的問題 複雜分佈式系統結構中的

原创 Lambda表達式

文章目錄什麼是Lambda概述MCAD模式(Model Code as Data)傳統的解決方案JDK8新特性,lambda表達式優化線程模式爲什麼要使用Lambda表達式Lambda表達式基礎知識函數式接口(function

原创 九、元空間

元空間是永久代的替代品 從JDK1.8開始正式取消了永久代之後,取而代之的就是元空間(MetaSpace),所謂的元空間的本質指的是本機物理內存,其作用和永久代相同。不過元空間和永久代有很大的區別:元空間用的是物理內存(受到本機的

原创 三、抽象工廠

文章目錄定義類型適用場景優點缺點產品等級結構與產品族coding源碼解析java.sql.Connectionorg.apache.ibatis.session.SqlSessionFactory 定義 抽象工廠模式提供一個創建一

原创 四、建造者模式

定義 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示 用戶只需要指定需要建造的類型就可以得到它們,建造過程及細節不需要知道 類型 創建型 使用場景 如果一個對象有非常複雜的內部結構(很多屬性) 想把複雜

原创 一、傳統應用帶來的問題

單一業務開發和迭代困難 有人可能不太理解,認爲有一個業務變更,我們開發就是了。那其實就牽扯到三個部分: 有可能只是針對剛纔的用戶模塊,新增了很多需求,而其他模塊沒有任何的變更。首先不談開發的難度,就說將用戶模塊所有的業務都開發

原创 七、老年代

前言 一個對象想要活到老年代實在太難了,因爲現在的程序屬於多線程訪問,所有的業務操作都是針對於線程操作的,那麼所有的線程在整體的操作過程之中時間都是非常短的。這些對象都是在年輕代中開闢,很少能跑到老年代中。 老年代 老年代空間主

原创 Java數據結構與算法概述

文章目錄爲什麼要學習數據結構與算法Java 數據結構是什麼?大O表示法表示算法性能 爲什麼要學習數據結構與算法 使用合適的數據結構和算法進行優化程序,可以使得你的程序運行的更快, 並且佔用更少的資源,有益於開發大型程序 也就是說