原创 面向切面編程--AOP

1、aop:aspect oriented programming 面向切面編程 2、aop在spring中作用      提供聲明式事務(聲明式服務)       允許用戶實現自定義切面 3、aop:在不改變原有代碼的情況下,增加新的功

原创 靜態代理

1、靜態代理的角色解析     抽象角色->通常使用接口或者抽象類來實現     真是角色->被代理的角色     代理角色->代理真實角色->代理真實角色後通常會做一些附屬操作。     客戶->使用代理角色來進行一些操作      

原创 動態代理

1動態代理和靜態代理的角色是一樣的(真是角色,抽象角色,代理類) 2動態代理的代理類是動態生成的。 3分爲兩類:一類基於接口動態代理和基於類的動態代理             1):基於接口動態代理:jdk動態代理            

原创 spring-bean的作用域和自動裝配

scope指的是bean的作用域,在配置bean,由scope屬性來配置bean的作用域    singleton單例 :整個容器中只有一個對象實例 spring配置默認是單例 prototype原型 每次獲取bean都產生一個新的對象

原创 單例模式(枚舉式)

枚舉式實現單例模式: 測試枚舉式實現單例模式(線程安全、調用效率高、沒有延時加載。並且具有天然的防止反射和反序列化漏洞) public enum enumSingleton {     //這個元素,本身就是單例對象     E;   

原创 正則1

標準字符集合: 能夠與'多種字符'匹配的表達式 注意區分大小寫,大寫是相反的意思 \d :任意一個數字,0~9中的任意一個 \D:,0~9以外的全部 \w:任意一個字母或數字或下劃線,就是說A~Z,a~z,0~9,_  中任意一個 \W:

原创 簡單工廠

首先創建一個種類 public interface Car {     void run(); } 創建一個audi類 public class Audi implements Car{     @Override     public

原创 工廠模式

先創建一個汽車的功能接口,讓汽車都實現它的基本功能 public interface Car {     void run(); } 創建一個汽車工廠的接口,用於生產不同品牌的汽車 public interface CarFactory

原创 單例模式(靜態內部類實現)

靜態內部類實現方式(也是一種懶加載方式) 要點: 外部類沒有static屬性,則不會像餓漢式那樣立即加載對象只有真正調用了getInstance()纔會加載靜態內部類,加載類時是線程安全的。 sc是static final類型,保證了內存

原创 單例模式(雙重檢測鎖實現)

雙重檢測鎖:  這個模式將同步內容下放到if內部,提高了執行效率,不必每次獲取對象時都進行同步,只有第一次才同步創建了以後就沒必要了。   由於編譯器優化原因和jvm底層內部模型原因 ,有時候會出問題,不建議使用 public class

原创 單例模式(防止反序列化破解單例模式)

public class Client2 {     public static void main(String[] args) throws Exception {         //通過反序列化的方式構造多個對象         

原创 單例模式(CountDownLatch)

* CountDownLatch  * 同步輔助類,在完成一組正在其他線程中執行的操作之前,他允許一個或多個線程一直等待  * countDown()當前線程調用此方法,則計數-1<放finally裏執行要好一點>  * await()調

原创 單例模式防止反射破解單例模式

測試懶漢式    單例模式(如何防止反射漏洞) public class Client2 {     public static void main(String[] args) throws Exception {         //

原创 單例模式(懶漢+餓漢)

單例模式的特點:       由於單例模式只生產一個實力,減少了系統性能開銷,當一個對象的產生需要比較多的資源時,如讀取配置、產生其他依賴對象時,則可以在應用啓動時直接產生一個單例對象,然後永久駐留內存的方式來解決。       單例模式