原创 大表加索引方案

背景 每個公司針對數據庫的設計都有套方案。最近在巡檢表的設計,發現之前有張表漏掉了針對更新時間字段updated_at的索引,現在需要加上該索引。 我們都知道,爲表增加索引是會對錶進行加鎖處理的。稍有不慎,可能會導致表被鎖後,業務

原创 Ubuntu 18.04修改主機名

Ubuntu 18.04通過文件*/etc/hostname*修改主機名後,重啓失敗該怎麼解決? 首先修改*/etc/cloud/cloud.cfg文件中的preserve_hostname*屬性,改爲true。 vim /e

原创 使用 Intellij IDEA 時摺疊代碼

Intellij IDEA中摺疊代碼的方式,如下: 1. 針對類、方法的摺疊 快捷鍵: ctrl + - ,ctrl + + 適用於擴展 2. 自定義摺疊 自定義摺疊有兩種類型,分別爲visual studio style 和ne

原创 【源碼解析】Java萬象之源-Object

提到Java,那就不得不說Object類。在面試中,你也可能經常遇到Object類的問題,在這裏總結一番,僅供大家參考。 Object類是Java中所有類的根類,即所有的類都繼承了Object類。其包含的方法如下: protect

原创 【Effective Java】條8:覆蓋equals時請遵守通用約定

如果類需要有“邏輯相等”概念(不同於對象等同的概念),且其父類中也沒有實現同邏輯的equals()方法時,譬如JDK8中可以用自定義的類作爲Map的key,這時我們可以將類覆蓋Object.equals方法。 通用約定 重寫equ

原创 Java必備的Intellij插件推薦(長期更新)

工欲善其事,必先利其器 lombok 可以省略需要手寫的Getter & Setter方法 Builder Generator(lombok可以代替) 快速生成構造器模式代碼 GsonFormat 快速將JSON字符串

原创 IDEA SonarLint安裝及使用

SonarLint安裝提示需要JDK8。JDK7未測試,不能確保成功。 SonarLint插件安裝 IDEA菜單欄選擇File->Settings,左邊欄選擇Plugins 在線安裝選擇Browse repositori

原创 【Effective Java】條2:多構造器參數考慮用構造器

構造函數和靜態工廠方法1都不能很好的處理多參數問題。 譬如有一個類表示包裝食品外面顯示的營養成分標籤,這些標籤包含必須的成分:每份的含量,每罐的含量以及每份的卡路里,還有一些其他非必須的顯示,譬如總脂肪量、飽和脂肪量、轉化脂肪、膽

原创 【Effective Java】條12:考慮實現Comparable

如果自實現的類涉及到內在排序,譬如按字母排序或數字排序或日期排序的,強烈建議實現Comparable接口。 實現了Comparable接口的類,可以和許多的泛型算法以及集合進行協作。譬如,列表或數組中的元素實現了Comparabl

原创 【Effective Java】條9:重寫equals方法時必須重寫hashCode 方法

必須謹記:對於每一個類,重寫equals方法時,必須重寫hashCode方法。如果沒有遵照此規定,則在所有基於hash計算的類中(如:HashMap、HashSet和HashTable)都會出問題。 hashCode約定 Obje

原创 【Effective Java】條7:避免使用finalize方法

finalize()方法不像C++中的析構,C++中必須使用析構來釋放內存和資源。在Java中,內存通常由GC(垃圾回收器)回收,資源常採用try...finally來完成。 使用finalize方法缺點 不能保證被執行 1).

原创 【Effective Java】條1:考慮用靜態工廠方法代替構造器

在日常編程中,獲取類的實例通常採用構造器的方法。還有另一種方法叫作“靜態工廠方法(Static Factory Method)”。譬如Boolean類中這段代碼: public static Boolean valueOf(boo

原创 【Effective Java】條11:謹慎覆蓋clone方法

Object文檔中指出對象需要被clone,則需要實現Cloneable接口。Cloneable接口只是個標記,沒有任何方法。 clone約定 對於任何對象x, - x.clone() != x返回爲true - x.clo

原创 動態修改註解值

背景 平時開發業務時,由於特殊需要,使得一份代碼需要部署到4個應用服務中爲不同對象進行服務。公司使用的配置中心是自研發的,暫不支持配置中心註解(如:@DynamicPropertyInject(name = "${applicat

原创 Redis Lua scripts debugger的使用

文章目錄背景說明Redis Lua調試器特點Redis Lua調試器快速入門Redis Lua debug命令參考文章 背景說明 使用Redis開發分佈式應用時,難免會遇到需要使用分佈式鎖來確保某一小段邏輯的原子性操作,如:當存在