原创 Spring5.0 WebFlux入門及實戰示例

什麼是 Spring WebFlux WebFlux是Spring推出響應式編程的一部分(web端) 響應式編程是異步非阻塞的(是一種基於數據流(data stream)和變化傳遞(propagation of change)的

原创 java實現字符串統計,如果統計的個數相同,則按照ASCII碼由小到大排序輸出 。如果有其他字符,則對這些字符不用進行統計

如果統計的個數相同,則按照ASCII碼由小到大排序輸出 。如果有其他字符,則對這些字符不用進行統計。 實現以下接口: 輸入一個字符串,對字符中的各個英文字符,數字,空格進行統計(可反覆調用) 按照統計個數由多到少輸出統計結果,如

原创 探究JDK1.8默認使用的垃圾收集器組合

查閱了衆多資料, 發現 JDK1.8 默認垃圾收集器組合會有以下兩種版本 Parallel Scavenge(新生代) + Serial Old(PS MarkSweep)(老年代) 組合 Parallel Scavenge(新生

原创 使用 Reactor 進行反應式編程進行數據分批處理

一、前言 最近在做一個項目,獲取JDK8 Stream對象後,想要批量消費,不想自己寫個集合來做批量處理。而反應式編程實現比如rxjava或者reactor是有豐富的流操作符,所以調研了下如何把JDK8 Stream轉換爲反應式流

原创 SpringBoot整合JavaWeb三大組件(Servlet、Listener、Filter)

幾種組件介紹 監聽器Listener Listener 可以監聽 web 服務器中某一個 事件操作並觸發註冊的 回調函數。通俗的語言就是在 application``session``request 三個對象 創建/消亡 或者 增

原创 一文詳解TCP協議

七層協議 OSI層 功能 TCP/IP協議 應用層 文本傳輸,電子郵件,文件服務,虛擬終端 FTP,HTTP,SNMP,DNS等 - -表示層 數據格式化,代碼轉換,數據加密 沒有協議 – 會話層 解除或建立與其他節點的聯繫 沒有

原创 微服務架構之容災容錯

我們知道,在單體應用的架構下一旦程序發生了故障,那麼整個應用可能就沒法使用了,所以我們要把單體應用拆分成具有多個服務的微服務架構,來減少故障的影響範圍。但是在微服務架構下,有一個新的問題就是,由於服務數變多了,假設單個服務的故障率

原创 @JsonCreator使用-Jackson 反序列化時 json 字符串 和 Java Bean 對象類型不一致

待反序列化 json 字符串 { "valuationMethods": { "valuationMethod": [ { "methodId": 1

原创 mybatis 緩存介紹(一級緩存、二級緩存)

一級緩存 MyBatis的一緩存其實就是一個SQLSession級別的,意思就是sqlsession只能訪問自己的一級緩存的數據。一級緩存查詢存在於每一個的sqlsession類的實例對象中,當第一次查詢某一個數據時候,sqlse

原创 算法-迴文字符串判斷

迴文串”是一個正讀和反讀都一樣的字符串,比如“level”或者“noon”等等就是迴文串。花花非常喜歡這種擁有對稱美的迴文串,生日的時候她得到兩個禮物分別是字符串A和字符串B。現在她非常好奇有沒有辦法將字符串B插入字符串A使產生的

原创 重寫equals方法的時候爲什麼需要重寫hashCode

@AllArgsConstructor public class Pairs { @Getter @Setter private String key; @Getter @Setter

原创 SpringBoot集成Spring Batch批處理框架入門案例實戰

Spring Batch 簡介 spring batch是spring提供的一個數據處理框架。企業域中的許多應用程序需要批量處理才能在關鍵任務環境中執行業務操作。 Spring Batch是一個輕量級,全面的批處理框架,旨在開發對

原创 集羣、分佈式、微服務概念和區別理解

概念 集羣是個物理形態,分佈式是個工作方式。 分佈式:一個業務分拆多個子業務,部署在不同的服務器上 集羣:同一個業務,部署在多個服務器上 1:分佈式是指將不同的業務分佈在不同的地方。而集羣指的是將幾臺服務器集中在一起,實現同一

原创 分佈式系統的CAP定理和Base理論

CAP定理 分佈式系統(distributed system)正變得越來越重要,大型網站幾乎都是分佈式的。 分佈式系統的最大難點,就是各個節點的狀態如何同步。CAP 定理是這方面的基本定理,也是理解分佈式系統的起點。 本文介紹該定

原创 算法-實現二維數組行列交換

算法實現 public static int k = 3; public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6,