原创 手寫 Spring 事務、IOC、DI 和 MVC

Spring AOP 原理什麼是 AOP?AOP 即面向切面編程,利用 AOP 可以對業務進行解耦,提高重用性,提高開發效率應用場景:日誌記錄,性能統計,安全控制,事務處理,異常處理AOP 底層實現原理是採用代理實現的Spring 事務基本

原创 類加載器

類加載器機制的層次結構 每個 .java 文件都包含着程序的業務邏輯,這些 .java 文件經過 Java 編譯器編譯成 .class 文件,.class 文件中包含着 Java 代碼轉換後的虛擬機指令,當需要使用某個類時,虛擬機加載它的

原创 動態字節碼技術 javassist 初探

字節碼應用場景 AOP 技術、Lombok 去除重複代碼插件、動態修改 class 文件等 字節碼技術優勢 Java 字節碼增強指的是在 Java 字節碼生成之後,對其進行修改,增強其功能,這種方式相當於對應用程序的二進制文件進行修改,Ja

原创 JVM 常用參數

常見參數配置 -XX:+PrintGC 每次觸發GC的時候打印相關日誌 -XX:+UseSerialGC 串行回收 -XX:+PrintGCDetails 更詳細的GC日誌 -Xms 堆初始值 -Xmx 堆最大可用值 -Xmn 新生代堆最

原创 垃圾收集器

串行回收和並行回收 串行回收:JDK1.5 前的默認算法,執行垃圾回收時程序停止時間較長,缺點是隻有一個線程 並行回收:多個線程執行垃圾回收,適合吞吐量系統,回收時系統停止運行 Serial 收集器 最古老的、最穩定的的收集器,可能產生較長

原创 併發編程專題(四)

CountDownLatch(計數器) CountDownLatch 位於併發包下,利用它可以完成類似於計數器的功能,如果線程 A 需要等待其他 n 個線程執行完畢後才能執行,此時就可以利用 CountDownLatch 來實現這個功能,C

原创 併發編程專題(二)

什麼是線程安全問題? 當多個線程共享一個全局變量,對其做寫操作時,可能會受到其他線程的干擾,從而引發線程安全問題 內置鎖(synchronized) 內置鎖也叫互斥鎖,可以保證線程的原子性,當線程進入方法時,會自動獲得一個鎖,一旦鎖被獲得,