原创 Mybatis 詳解--- 一級緩存、二級緩存

Mybatis 爲我們提供了一級緩存和二級緩存,可以通過下圖來理解: ①、一級緩存是SqlSession級別的緩存。在操作數據庫時需要構造sqlSession對象,在對象中有一個數據結構(HashMap)用於存儲緩存數據。不同的sqlSes

原创 七分鐘理解 Java 的反射 API

像java一樣,一種具有反射功能的語言。允許開發人員在運行時檢查類型、方法、字段、註解等,並在程序運行時決定是否使用。 爲此,Java的反射API提供類,類,字段,構造函數,方法,註釋和其他。 使用它們可以與編譯時未知的類型進行交互,例如創

原创 Java 多線程設計模式之基礎概念

順序、併發與並行順序用於表示多個操作“依次處理”。比如把十個操作交給一個人來處理時,這個人要一個一個地按順序來處理並行用於標識多個操作“同時處理”。比如十個操作分給兩個人處理時,這兩個人就會並行來處理。併發相對於順序和並行來說比較抽象,用於

原创 深入剖析 Java 7 中的 HashMap 和 ConcurrentHashMap

本文將深入剖析 Java7 中的 HashMap 和 ConcurrentHashMap 的源碼,解析 HashMap 線程不安全的原理以及解決方案,最後以測試用例加以驗證。1 Java7 HashMapHashMap 的數據結構:從上圖中

原创 深入理解Java虛擬機之類運行時棧幀結構

棧幀(Stack Frame)是用於支持虛擬機進行方法調用和方法執行的數據結構,它是虛擬機運行時數據區中的虛擬機棧(Virtual Machine Stack)的棧元素。棧幀存儲了方法的局部變量表、操作數棧、動態連接和方法返回地址等信息。每

原创 Mybatis 詳解--- 一級緩存、二級緩存

Mybatis 爲我們提供了一級緩存和二級緩存,可以通過下圖來理解: ①、一級緩存是SqlSession級別的緩存。在操作數據庫時需要構造sqlSession對象,在對象中有一個數據結構(HashMap)用於存儲緩存數據。不同的sqlSes

原创 理解的Java中SPI機制

本文通過探析JDK提供的,在開源項目中比較常用的Java SPI機制,希望給大家在實際開發實踐、學習開源項目提供參考。 1 SPI是什麼SPI全稱Service Provider Interface,是Java提供的一套用來被第三方實現或者

原创 Java 重大升級馬上來了:JDK 11 新特性瞭解一下

Java11,目前處於發佈候選階段的下一版 Java 編程語言,預計將於 2018 年 9 月 25 日全面上市。距離現在還有 2 周時間。由於Oracle 計劃於 2019 年 1 月推出針對 JDK 8 的 “Commercial Us

原创 使用Java新功能StackWalker

StackWalking API是最近添加到Java中的最酷功能之一在Java9之前,要獲得棧信息辦法是:獲取當前線程並調用其getStackTrace()方法StackTraceElement[] stackTraceElements =