原创 排序算法之基數排序【Java版】

引言 本篇是排序算法的最後一篇,基數排序,桶排序的升級版。 1、算法步驟 1、首先對一組數據按照個位上的數字進行桶排序 2、然後對這組數據繼續按照十位上的數字進行桶排序 3、依次循環至這組數據的最大數位置上,排序就完成了。 2、時

原创 排序算法之桶排序【Java版】

引言 本篇是排序算法的第八篇,桶排序,桶排序是計數排序的升級版。 1、算法步驟 1、設定一個基準,將待排序的數字按照一定範圍,從小到大的平均分在N個桶中,此時桶已經排好序,桶中的元素還未排序; 2、將桶中的元素進行排序。 3、將每

原创 java多線程之ReentrantLock非公平鎖源碼解析

前言 上一篇咱們分析了ReentrantLock公平鎖的獲取和釋放的源碼,本篇再看非公平鎖的源碼就輕鬆多了,上一篇沒看的建議先去看公平鎖的源碼分析。 1、獲取非公平鎖 下面是非公平鎖獲取鎖的源碼,是在ReentrantLock.j

原创 支付的那些事——領域模型篇

引言 前一篇文章中,我們有了一些重要的支付概念,本篇我們先建立領域模型(也稱業務模型),技術是服務於業務的,開發人員都明白爲什麼我這裏要強調這個,業務沒搞明白,吭哧吭哧的開發,多半被項目經理唾沫淹死。 1、業務關係 商戶需要在

原创 排序算法之計數排序【Java版】

引言 本篇是排序算法的第七篇,計數排序。 1、算法步驟 1、將待排序的數組裏的值,作爲新數組中的下標; 2、新數組下標中對應的值重複的計數累加; 3、最後新數組中下標有值的依次放到數組中(下標本身已經排好序了)。 2、時間複雜度

原创 Sharding-JDBC實現Mysql分表項目演示

引言 上一篇:Sharding-JDBC實現Mysql讀寫分離實戰演示 中,咱們使用讀寫分離,將數據庫查詢的壓力分擔到從庫中,但是,如果單表的數據量非常的大,超過1000萬行了,通過單表的優化,已經無法顯著的優化性能,此時就要考慮

原创 java多線程之Semaphore源碼解析

前言 本篇開始分析Semaphore(信號量)的源碼,分析結束後,會用一個示例展示Semaphore的應用場景。 1、簡介 Semaphore是一個計數信號量,維護了一個信號量許可集。每次調用acquire()都將消耗一個許可,每

原创 java多線程之共享鎖和ReentrantReadWriteLock源碼解析

前言 前面我們分析了Synchronized(同步鎖),ReentrantLock(獨佔鎖),本篇開始分析ReentrantReadWriteLock(讀是共享鎖,寫是獨佔鎖)。 1、ReentrantReadWriteLock結

原创 java多線程之線程池ThreadPoolExecutor源碼分析

前言 上一篇咱們分析了線程池的架構和它的工作流程,並且最後創建了一個線程池,本篇咱們就來深入分析線程池的實現類ThreadPoolExecutor。 1、構造方法 構造方法中有4個方法,本質上都是調用的下面這個構造方法: publ

原创 java多線程之線程池簡介

前言 池化技術已經屢見不鮮了,比如數據庫連接池,大家的項目中應該也用到了線程池。池化技術的好處:降低資源的消耗,提高響應速度,提高線程的可管理性。本篇主要是和大家一起分析下線程池的架構和它的工作流程。 1、線程池架構圖 架構圖中

原创 Linux下搭建Mysql主從複製詳細步驟(Mysql版本5.7.30)

前言 本篇將跟大家一起搭建Mysql主從複製,如果你還來沒有安裝mysql,請看博主的這篇mysql-5.7.30的安裝教程 1、原理 master的I/O線程將數據寫入binlog中; slave的I/O線程從master的b

原创 Sharding-JDBC實現Mysql讀寫分離項目演示

引言 如果是爲了優化大表做知識儲備,建議先看這篇文章:MySQL大表優化方案,回頭再來看博主的這篇文章。 本篇文章是基於SpringBoot+Mysql+Mybatis+Sharding-JDBC實現Mysql的讀寫分離,數據庫是

原创 排序算法之快速排序【Java版】

引言 上一篇介紹的歸併算法是一種分治思想,本篇的快速排序也是一種分治思想,這個分治思想真的值得好好感悟下,排序不僅僅是一種算法,最重要的是體會這種思想! 1、算法步驟 1、從待排序的序列中找一個數,作爲本次比較的基準。 2、將比基

原创 支付的那些事——經驗篇

引言 本篇是本次支付系列的一個終篇,是博主就目前的支付經驗一個總結,如果後期博主能有幸接觸到大型支付公司的架構和有更深層次的理解,可能會繼續更新本系列。 1、銀行卡簽約 1.1、支付通道優先級 第三方支付平臺穩定性參差不齊,穩定點

原创 排序算法之歸併排序【Java版】

引言 本篇是排序算法的第五篇,歸併排序。 1、算法步驟 歸併算法採用分治策略,如下圖(圖片來自網絡): 從上圖可以看出算法步驟是: 1、先將待排序序列用二分法形式遞歸的分開。 2、再將分開的數據排序後遞歸的合併。 2、時間複雜度