原创 Future/FutureTask & Callable/Runnable & Executor/ExecutorService/Executors

用途:筆記。 各類具體方法參閱JDK API。 Callable/Runnable接口 Runnable用於實現線程。大多數情況下,如果只想重寫 run() 方法,而不重寫其他 Thread 方法,那麼應使用 Runnable 接口。

原创 “樹”據結構二:AVL樹

前言 定義 節點高度 平衡因子 二叉樹的旋轉 左旋轉 右旋轉 失衡類型及其調整 L-L L-R R-L R-R 算法 數據結構 增 rebalance after add rotate left rotate right

原创 linux小記:找到最佔磁盤的文件(夾)

查看佔用情況 最大文件夾top10 結論 最大獨立文件夾top10 結論 最大文件top10 結論 附:find命令 格式 按照文件名查找 按照正則表達式匹配文件路徑 按照文件類型查找 按照目錄深度查找 按照文件時間戳進行搜索

原创 “樹”據結構三:B樹

前言 起源 問題 時間消耗 索引加速 B樹 vs. 多級索引 定義 節點分裂與合併 分裂 合併 算法 數據結構 查找 增 刪 總結 參考 前言 之所以寫“樹”據結構這一系列的文章,就是因爲有一天突然看到了一句話:心裏

原创 Java處理InterruptedException

機制 中斷信號 阻塞方法 處理方式 傳遞InterruptedException 恢復中斷狀態 Demos 參閱 機制 在Java中,一個線程是不能終止另一個線程的,除非那個線程自己想退出,或者JVM退出了。 比如: Thre

原创 Archlinux安裝UEFI Grub

最近換了電腦,以前的老電腦使用的是舊BIOS架構啓動,新電腦都變成了新的BIOS架構即UEFI啓動(UEFI是新BIOS架構,自從UEFI出來之後,老的BIOS架構便被稱爲legacy),在安裝grub時比之前稍微麻煩了一點。 準備 參考

原创 Java IO的實現

從一個方法看javaIO: public byte[] compress(IWritable value) { if (value == null) return null; try {

原创 Java併發編程:併發任務執行及結果獲取

Executor:任務執行 Executor ExecutorService 任務生命週期管理 對任務提交方法的拓展 Future:未來對任務結果的獲取 CompletionService:及時獲取已完成任務的結果 Ex

原创 DelayQueue實現的Comparable接口

DelayQueue Comparable接口和Delayed接口 外話-線程池 外話-靜態內部類 DelayQueue DelayQueue是JDK對BlockingQueue接口的一種實現類。對於DelayQueue的介紹

原创 對Java8中distinct()的思考

list的轉map的另一種猜想 使用distinct給list去重 直接使用distinct失敗 原因distinct依賴於equals 重寫equals的注意事項 引申 結論 再拓展 假設類是別人的不能修改 使用wrapper

原创 mock

mock的由來 一開始,沒有mock的時候,人們測試的時候只能自己mock。比如需要一個PersonDao類的對象,其中有連接數據庫查詢數據庫當前存儲人數的方法getPersonNum()。但是可能因爲數據庫不存在等問題,其中的操作並不能

原创 ThreadLocal原理及內存泄露預防

前言 原理 爲什麼key使用弱引用 內存泄露 線程池 附:強引用-軟引用-弱引用 參閱:http://www.importnew.com/22039.html 前言 ThreadLocal提供了線程獨有的局部變量,可以在整個

原创 使用StrongSwan配置IPSec

使用StrongSwan對IPSec進行研究,是一種很好的理解IPSec的實踐。然而StrongSwan在使用的過程中實在是有太多的坑,網上的教程也多有不完整的地方,幾乎沒有能徹徹底底說明白每一步的,導致我在使用StrongSwan的過程

原创 快速排序及優化(三路劃分等)

快速排序, 是最經典的排序算法之一。快速排序擁有良好的時間複雜度,平均爲O(nlog2n) ,最差爲O(n2) 。在這裏,我們不妨略略深入討論一下快速排序: 時間複雜度分析 首先說平均時間複雜度。以比較常用的從兩頭進行掃描的算法爲例,算法

原创 Spring xml配置文件頭解析

最簡潔xml文件頭 詳解 命名空間 頭解析 模式內容 Spring的xml配置雖然比較繁瑣,不如推薦使用的註解方式簡介,但是能讀懂xml配置文件還是很重要的,尤其是對於一些老系統的維護,幾乎不可避免要面對xml配置文件的問題