原创 Mybatis-3 源碼之緩存是怎麼創建的

微信搜索 程序員的起飛之路 可以加我公衆號,保證一有乾貨就更新~ 二維碼如下: Mybatis-3 源碼之緩存是怎麼創建的 Mybatis 緩存問題其實也是面試高頻的問題了,今天我們就從源碼級別來談談 Mybatis 的緩存實現

原创 深入理解Java虛擬機-第六章 類文件結構

第六章 類文件結構 6.1 概述 略 6.2 無關性的基石 因爲想要實現 “Write Once,Run Anywhere”的偉大理想,Java 虛擬機被髮明瞭出來。這些虛擬機都可以載入和執行同一種平臺無關的程序存儲格式——字節碼

原创 深入理解Java虛擬機-第十章 早期(編譯期)優化

第十章 早期(編譯期)優化 10.1 概述 Java 語言的編譯期實際上是一段不確定的操作過程,他可能是指 java 文件編譯到 class 文件的過程,也可能是 JIT 把字節碼轉爲機器碼的過程,還有可能是使用靜態提前編譯器(A

原创 Mybatis-3 源碼之緩存是如何使用的

Mybatis-3 源碼之緩存是如何使用的 Mybatis 緩存問題其實也是面試高頻的問題了,今天我們就從源碼級別來談談 Mybatis 的緩存實現。 (本文源碼均在 https://github.com/ccqctljx/Myb

原创 多線程-記一次 volatile 實驗出錯所得

微信搜索 程序員的起飛之路 可以加我公衆號,保證一有乾貨就更新~ 二維碼如下: 好,進入正題,今日學習 volatile 時,偶然想起之前見過的一段代碼,正好說明了 volatile 的可見性,而我寫博客也正好用的上。於是打算手

原创 2017.05.02 記雛鷹博客系統開工第3天。

昨晚代碼寫完後太晚,博客寫了一半,今天補上。。 其實已經過去不知道多少天了。。只不過今天重新拾起。因爲五一假期的原因,項目擱置了幾天。要不是突然看到,項目今天又要擱置了。凡事還是要靠自己的自治和自律啊。開始寫博客時已經十點半了,

原创 Java併發編程的藝術-第一章 併發編程的挑戰

第一章 併發編程的挑戰1.1 上下文切換1.1.1 多線程一定快嗎1.1.2 測試上下文切換次數和時長1.1.3 如何減少上下文切換1.1.4 減少上下文切換實戰1.2 死鎖1.3 資源限制的挑戰 1.1 上下文切換 其實即使是單

原创 深入理解Java虛擬機-第十三章 Java 內存模型與線程

第十三章 Java 內存模型與線程 13.1 概述 略 13.2 線程安全 “線程安全”一個比較恰當的定義:“當多個線程同時訪問一個對象時,如果不用考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調用方進

原创 深入理解Java虛擬機-第十二章 Java 內存模型與線程

第十二章 Java 內存模型與線程 12.1 概述 衡量一個服務性能的高低好壞,每秒事務處理數(Transaction Per Second,TPS)是最重要的指標之一,它代表着一秒內服務端平均能相應的請求總數,而 TPS 值與程

原创 深入理解Java虛擬機-第十一章 晚期(運行期)優化

第十一章 晚期(運行期)優化 11.1 概述 本章講述 JIT(Just In Time Compiler,即時編譯器)。Java 虛擬機規範沒有具體的約束規則區限制即時編譯器應該如何實現,但是 JIT 編譯性能的好壞、代碼優化程

原创 深入理解Java虛擬機-第三章 垃圾收集器與內存分配策略(上)

第三章 垃圾收集器與內存分配策略(上) 3.1 概述 垃圾處理器實際上僅關注三個點:哪些內存需要回收、什麼時候回收以及如何回收。三點會在後面一一講解 前面第二章大致講述了 JVM 運行時區域的各個部分,我們會發現程序計數器、虛擬機

原创 深入理解Java虛擬機-附件3 虛擬機字節碼指令表

附件3 虛擬機字節碼指令表

原创 深入理解Java虛擬機-第七章 虛擬機類加載機制

第七章 虛擬機類加載機制 7.1 概述 在 Java 語言裏面,類型的加載、鏈接和初始化過程都是在程序運行期間完成的,這種策略雖然會使類加載增加一些性能開銷,但是會提供高度的靈活性。例如編寫一個接口,可以等到運行的時候再指定其實際

原创 深入理解Java虛擬機-第九章 類加載及執行子系統的案例與實踐

第九章 類加載及執行子系統的案例與實踐 9.1 概述 略 9.2 案例分析 9.2.1 Tomcat:正統的類加載器架構 在本欄文章《深入理解Java虛擬機-第七章 虛擬機類加載機制》最後曾簡單介紹過 Tomcat 是如何破壞雙親