原创 Solr學習總結(一)Solr介紹

公司裏用的都是solr但是自己只學了點lucene,對solr還是不夠了解,所以決定系統的學習下。    Solr是一個基於Lucene的全文搜索引擎,同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,實現了可配置、可擴展並

原创 去if-else化 (二),利用充血枚舉類型

  充血枚舉類型——Rich Enum Type 模式的優勢: 不難發現,這其實就是 enum 枚舉類型和 Strategy Pattern 策略模式的巧妙結合運用; 當需要增加新的通知方式時,只需在枚舉類 NOTIFY_TYPE

原创 多線程-鎖優化

一、Synchronized同步鎖的優化 Synchronized 在JDK1.5 之前是JVM實現一種內置鎖,是基於底層的操作系統的Mutex Lock 實現的,所以會帶來用戶態和內核態的切換問題。 JDK1.6 對鎖的升級優化

原创 重試工具庫二:AOP 結合 guava retryer 實現接口自動重試

上一篇文章中介紹了Retryer 強大的工具庫,以及創建方式。重試工具庫一: Guava-Retrying。 本篇文章我們通過面向切面結合 guava 的這個強大的工具類,來實現只需要添加一行註解即可的自動重試機制。 註解: @Targ

原创 海量數據進行分庫分表及其實踐

項目github地址:https://github.com/wushidong125/sharding-db 背景情況 用戶表達到了 幾千萬級別,在做很多操作都比較吃力,.所以,考慮對其進行分表、分庫 常用的切分方案 可以分

原创 超實用的IntelliJ IDEA 插件

今天介紹一個IDEA的幾個插件,IDEA強大的插件庫,能夠開發帶來極大的效率提升 1、Free Mybatis plugin mybaits 插件,按照這個這邊插件,可以通過mapper接口直接跳轉到對接的xml 中的sql 語句,不用在

原创 解決Maven 打包時的編譯錯誤

一、背景 最近有個項目需要提供一個HSF服務,服務接口寫好,還要打一個客戶端的依賴jar,這個通過aone 平臺利用maven打的jar包,由於我自己的項目JDK版本和Java編譯器版本都是1.8,所以沒有問題,但是現在需要打一個jdk1

原创 jar 包依賴衝突排查和解決方案

1、何爲依賴衝突 Maven是個很好用的依賴管理工具,但是再好的東西也不是完美的。Maven的依賴機制會導致Jar包的衝突。舉個例子,現在你的項目中,使用了兩個Jar包,分別是A和B。現在A需要依賴另一個Jar包C,B也需要依賴C。但是A

原创 去if-else化,利用工廠模式

if-else是平時寫代碼中最常用的一種寫法,當我們代碼量小的時候用來做條件判斷是再簡單不過的了。當需要判斷的情況逐漸增加的時候,上面的代碼可能會變的難以維護。這個是在進階高級開發的路上,應該逐步培養起這種前瞻意識,下面就介紹如何重構這樣

原创 Java 8 流Stream 的基本使用

一、簡介 Java 8 API添加了一個新的抽象稱爲流Stream,可以讓你以一種聲明的方式處理數據。 Stream使用一種類似用SQL語句從數據庫查詢數據的直觀方式來提供一種對Java集合運算和表達的高階抽象。 Stream API可以

原创 CPU和load 和使用率的介紹

轉自:https://www.cnblogs.com/yunxizhujing/p/9382396.html 1. 什麼是Cpu的Load 使用uptime、top或者查看/proc/loadavg都可以看到CPU的load統計,

原创 git pre-commit hook failed 解決辦法

一、 git commit -m 'xxx' 出現問題 今天在上傳項目的時候在commit階段遇到一個問題,無論是在Sourcetree上傳還是用命令git commit -m 'xxx'都報了一下錯誤: husky > npm run

原创 hive分區(partition)簡介

一、背景 1、在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。 2、分區表指的是在創建表時指定的partition的分區空間。

原创 《Effective Java》第二章 對於所有對象都通用的方法

接下來繼續講第二章,第8-12條。第8條:覆蓋equals時請遵守通用約定equals 時Object類的一個非final方法,一般是表示類的實例對象是否相同,也就是對象的地址是否相等。但是某些時候卻要重寫Object.equals方法。

原创 7種垃圾收集器 主要特點 應用場景 設置參數 基本運行原理

Java虛擬機垃圾回收(三) 7種垃圾收集器 主要特點 應用場景 設置參數 基本運行原理       在《Java虛擬機垃圾回收(一) 基礎》中瞭解到如何判斷對象是存活還是已經死亡?在《Java虛擬機垃圾回收(二) 垃圾回收算法》瞭解到J