原创 使用Gradle Application Plugin插件自動生成可執行.sh和.bat啓動腳本

1. 楔子 你還在使用手寫的方式進行Java應用程序的打包嗎?你還在使用手寫shell和bat腳本的方式爲JAVA應用程序寫啓動腳本嗎?這些通用的、套路性質的、重複性質的工作早已在gradle Application Plugin

原创 shell常用命令.md

1.在某匹配行行的前一行或後一行添加內容 sed -i '/2222222222/a\3333333333' test.txt #某一行後加入什麼內容 sed -i '/2222222222/i\3333333333' test.

原创 JAVA如何優雅的重試?@Retryable(spring的重試機制)

楔子 在應用程序中,由於一些網絡等不可預知的問題,我們的程序或者接口會失敗,比如調用一個第三方的接口獲取數據失敗了,這時就需要重試機制,比如延時3S後重試、間隔不斷增加重試等,而這些機制完全不需要你自己去實現,全部交給Spring

原创 java RSA加密解密實現.md

java RSA加密解密實現 該工具類中用到了BASE64,需要藉助第三方類庫:javabase64-1.3.1.jar 注意: RSA加密明文最大長度117字節(經過實際測試,最大長度爲350),解密要求密文最大長度

原创 Java程序中獲取當前進程的進程ID.md

從JDK1.5之後,Java開始提供包:java.lang.management java.lang.management提供了一系列的用來在運行時管理和監督JVM和OS的管理接口。 採用ManagementFactory獲取pi

原创 Linux中的特殊權限s、t、i、a.md

楔子 linux除了UGO權限外,還有特殊權限s、t、i、a四個特殊權限,這裏簡單介紹下這四個權限的功能。 umask 利用umask查看系統的權限爲四位(0002),首位就是特殊權限位,SetUID爲4,SetGID爲2,t爲1

原创 問題:如果我們有面值爲1元、3元和5元的硬幣若干枚,如何用最少的硬幣湊夠11元?.md

問題 如果我們有面值爲1元、3元和5元的硬幣若干枚,如何用最少的硬幣湊夠11元? 動態規劃的本質是將原問題分解爲同性質的若干相同子結構,在求解最優值的過程中將子結構的最優值記錄到一個表中以避免有時會有大量的重複計算。 例如硬幣

原创 UTC時間、GMT時間、本地時間、Unix時間戳.md

GMT和UTC GMT,即格林尼治標準時間,也就是世界時。GMT的正午是指當太陽橫穿格林尼治子午線(本初子午線)時的時間。但由於地球自轉不均勻不規則,導致GMT不精確,現在已經不再作爲世界標準時間使用。 UTC,即協調世界

原创 常用java代碼質量檢查工具.md

常用掃描工具 PMD-CPD :Copy/Paste Detector (CPD) 代碼重複率檢測 PMD:分析 Java 源代碼,找出潛在的 bug Findbugs :Java bug檢查 checkstyle

原创 ant CreateProcess error=206, 文件名或擴展名太長

如果您已經創建了自己的構建文件而不是使用項目 - >生成Javadocs ,那麼您可以將 useexternalfile =“是”添加到Javadoc任務,該任務專門用於解決此問題。 <javadoc destdir

原创 Java如何實現文件變動的監聽.md

在Java 7發佈的新的IO框架中,除了大家都熟知的 FileVisitor 接口外,還有個 WatchService 接口經常被人忽視掉。 這個類可以讓你實時的監控操作系統中文件的變化,包括創建、更新和刪除事件。 WatchSe

原创 Linux性能分析工具.md

Perf Perf是內置於Linux內核源碼樹中的性能剖析(profiling)工具。其基於事件採樣原理,以性能事件爲基礎,常用於性能瓶頸的查找與熱點代碼的定位。 Gprof gprof用於監控程序中每個方法的執行時間和被調用次數

原创 什麼是DFX測試.md

楔子 以大家都熟知的手機爲例:我們每個人都用過不止一款手機,普通品牌與國際頂級品牌相比,功能基本上差不多,但使用中總是感覺有些差距,其中關鍵的因素就是DFX:可靠性、性能、易用性、客戶體驗等,這些因素往往決定了產品的競爭力。 DF

原创 DDD(Domain-Driven Design)領域驅動架構介紹.md

1. 什麼是領域模型 在理解領域模型之前,我們先思考一下軟件開發的本質是什麼。從本質上來說,軟件開發過程就是問題空間到解決方案空間的一個映射轉化,如圖1所示。 在問題空間中,我們主要是找出某個業務面臨的挑戰及其相關需求場景用例分

原创 UML類圖總結.md

類圖之間關係 泛化(Generalization) 泛化是一種繼承關係,表示一般與特殊的關係,它指定了子類如何繼承父類的所有特徵和行爲 實現(Realization) 實現是一種類與接口的關係,表示類是接口所有特徵和行爲的