原创 單元測試—— Spring @Scheduled
系列文章 《單元測試—— Mock 對象行爲之 Mockito》 《單元測試—— Spring 環境下測試之 SpringJUnit4ClassRunner》 《單元測試—— 強大的 PowerMock》 Maven依賴 <de
原创 多線程競爭執行,誰先跑完用誰?
做性能優化時,遇到一些跨不過的坎,如果能夠繞過問題本身來解決該問題也是不錯的選擇。本人在做 MongoDB 聯合查詢時,遇到了性能瓶頸,使用 MongoDB 內部聯合查詢時 Mongo竟然不會使用索引,效率低下,不得采用數據
原创 Collection 刪除元素的高效寫法
Collection 如果使用 foreach 來刪除會拋 ConcurrentModificationException 異常,檢查併發修改。即在 foreach 迭代的過程中修改Collection 是不被允許的,因此
原创 卸載動態庫DLL(Dynamic Link Library)
在給熱部署系統熱加載資源時,如果不掌握對象和資源的生命週期,系統運行時很容易產生一些意想不到的錯誤。從Jar 加載到系統中,到被替換,不同的資源生命週期是不一樣的。 首先是對象,如果一個對象沒有手動的丟棄,那麼
原创 非關係型數據庫MongoDB聯合查詢解決方案
前言 關係型數據庫的使用有一套數學理論支撐,數據庫表結構優化其實質就是優化範式。通常在關係型數據庫中使用的第三範式。然而,在非關係型數據庫中,使用第二範式更能夠發揮非關係型數據庫中的優勢。 第二範式需要滿足
原创 Map 家族
Map 實現類 線程安全否 自然排序 Key的底層結構 Key是否可爲null 特性 HashMap 否 無序 數組+(鏈表或者紅黑樹) 是 hash(null) = 0; 因此,map.get(null) 是有值的 查詢快,O(
原创 @Target 的ElemenType釋義
Element 應用類型 釋義 ElementType.TYPE 類 Can be applied to any element of a class ElementType.FIELD 成員變量 Can be applied to a
原创 不同的進製表示轉換十進制
進制 Java表示方式 例子 轉10進制的方式 轉10進制的結果 16進制 0x**** 0xABC C * 10^0 + B * 10^1 + A * 10^2 96768 8進制 0**** 017 7 * 8^0 + 1 * 8^1
原创 可變參數如果傳入基本類型數組會怎麼樣?
可變參數如果傳入基本類型數組,JVM會當整個數組當做一個參數來處理。如果傳入的是封裝類型的數組,那麼數組中內容會被拆分成多個參數傳入方法。代碼如下: public static void main(String[] args)
原创 Java獲取UTC時間
工具:joda-time Mvn: <!-- https://mvnrepository.com/artifact/joda-time/joda-time --> <dependency> <groupId>joda-time<
原创 Lombok 看這篇就夠了
前提 自從進公司實習後,項目代碼中能用 Lombok 的都用了,畢竟這麼好的輪子要充分利用好。也可以減少一些 get/set/toString 方法的編寫,雖說 IDEA 的插件可以自動生成 get/set/toString 方法,但是使
原创 Java 8 Stream的性能到底如何?
原文鏈接:https://www.hollischuang.com/archives/3364 之前的文章中我們介紹了Java 8中Stream相關的API,我們提到Stream API可以極大
原创 Java 8中處理集合的優雅姿勢——Stream
原文鏈接:https://www.hollischuang.com/archives/3333 在Java中,集合和數組是我們經常會用到的數據結構,需要經常對他們做增、刪、改、查、
原创 MongoDB 使用 count 帶來的分頁問題與應對措施
count 在MongoDB 存在着不小的問題,對比關係型數據庫,無固定結構的數據存儲對 count 函數存在着天然的缺陷,在大量數據情況下,count 函數計算非常慢,這對分頁查詢產生了不小的影響。 毫無疑問
原创 爲什麼不推薦使用Spring @Scheduled 中的 Cron 表達式
原因: Spring @Scheduled 使用非常方便,你只需要在指定執行定時任務的方法上添加 @Scheduled 註釋即可,但是在最近用 @Scheduled 使用 Cron 表達式時,出現了大問題,問題如下: