原创 代碼實驗室--log耗時分析

前言 開發過程中在代碼加入合理日誌記錄是非常重要的,經常會在代碼中看見循環語句裏面出現日誌記錄。 問題 在循壞中加入日誌是否合理? 如果在導入百萬級數據或者億級數據是否會對性能產生影響呢? 如果有興趣瞭解,不妨我們一起進入代碼實

原创 java當前時間獲取

前言 接着源碼閱讀:new Date之旅,補充幾種關於獲取當前時間的方式。 Date 在Java中,獲取當前日期最簡單的方法之一就是直接實例化位於Java包java.util的Date類。 Date date = new Date

原创 源碼閱讀:new Date之旅

風起Java Date 令天問了同事有咩有對Date源碼瞭解,同事說沒有了解過。作爲日期工具裏面的常用選手Date,大概也是不會滿意這番回答,那我們接下來就對這位健將做一番專訪,讓我們重新認識java.util 包提供了 Date

原创 eclipse引用外部類

引入classes時,up到最上,優先加載

原创 Field xxxx required a single bean, but 2 were found

在一次配置多線程bean的過程中報瞭如下錯誤: Field xxx required a single bean, but 2 were found: async-task-pool: defined by method ‘a

原创 Java內存模型之雙重檢查鎖定與延遲初始化

前言 在Java多線程程序中,有時候需要採用延遲初始化來降低初始化類和創建對象的開銷。雙 重檢查鎖定是常見的延遲初始化技術,但它是一個錯誤的用法。本文將分析雙重檢查鎖定的 錯誤根源,以及兩種線程安全的延遲初始化方案。 雙重檢查鎖定

原创 Java內存模型之volatile(2)

前言 本小節主要介紹3個同步原語(synchronized、volatile和final)的內存語義及重排序規則在處理器中的實現;Java內存模型的設計,主要介紹Java內存模型的設計原理,及其與處理器內存模型和順序一致性內存模型

原创 Java內存模型-鎖(3)

前言 衆所周知,鎖可以讓臨界區互斥執行。這裏將介紹鎖的另一個同樣重要,但常常被忽視的功能:鎖的內存語義。 鎖的釋放-獲取建立的happens-before關係 鎖是Java併發編程中最重要的同步機制。鎖除了讓臨界區互斥執行外,還可

原创 Java內存模型(1)

前言 本小節主要介紹內存模型相關的基本概念;Java內存模型中的順序一致性,主要介紹重排序與順序一致性內存模型。 Java內存模型的基礎 併發編程模型的兩個關鍵問題 線程之間如何通信及線程之間如何同步(這裏的 線程是指併發執行的