原创 劍指Offer:順時針打印矩陣

劍指Offer:順時針打印矩陣 題目描述   輸入一個矩陣,按照從外向裏以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1

原创 劍指Offer:從上往下打印二叉樹

劍指Offer:從上往下打印二叉樹 題目描述   從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 題目分析   這道題主要是隊列的應用,我們首先要了解,隊列是先進先出,我們把第一層即根節點放入隊列中,先打印的就是根節點,接着放入第二

原创 算法:歸併排序

算法:歸併排序 歸併排序 歸併操作   歸併排序也是一種高級排序算法,它的主要操作就是歸併。歸併是什麼意思呢? 歸併操作(merge),也叫歸併算法,指的是將兩個已經排序的序列合併成一個序列的操作。歸併排序算法依賴歸併操作。   舉個簡

原创 劍指Offer:二叉樹的鏡像

劍指Offer:二叉樹的鏡像 題目題目   操作給定的二叉樹,將其變換爲源二叉樹的鏡像。 8 / \ 6 10 / \ / \ 5 7 9 11

原创 Java進階教程:Streams API

Java進階教程:Streams API Stream是啥   首先明確一點,Stream流和IO包裏的InputStream、OutputStream是完全不同的概念!它是Java 8 中引入的新特性,Stream可以對集合元素進行各種高

原创 GIT實踐:解決本地修改導致不能PULL

GIT實踐:解決本地修改導致不能PULL 情景描述   本地修改了代碼,修改之後並未提交,此時PULL,就會報錯!    解決方法   報錯後,GIT告訴我們兩種解決方案: 提交修改 暫時存儲起來   他提到的git stash命令能夠

原创 算法:快速排序

算法:快速排序 快速排序   其實我第一次聽到快速排序的時候,我就很納悶,因爲不像冒泡、插入、歸併、選擇排序等等,名稱即原理!這個直接把特性用作名稱的,我就很震驚!   咱還是直接瞅一眼百科的解釋吧!   快速排序是冒泡排序的改進。   

原创 劍指Offer:調整數組順序使奇數位於偶數前面

劍指Offer:調整數組順序使奇數位於偶數前面 題目描述   輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 題目分析

原创 測試

 

原创 劍指Offer:二進制中1的個數

劍指Offer:二進制中1的個數 題目描述   輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 題目分析   我們學習兩個位運算:   第一個是右移:        在Java中右移動又分爲: 有符號右移(如上圖,正數補

原创 Java分佈式:ZooKeeper

Java分佈式:ZooKeeper

原创 Java分佈式:分佈式鎖之Redis實現

Java分佈式:分佈式鎖之Redis實現 分佈式鎖系列教程重點分享鎖實現原理 Redis鎖原理 核心命令   Redis分佈式鎖的原理是基於其SETNX命令,我們來看SETNX的解釋。   實現過程   使用SETNX完成同步鎖的流程

原创 Java分佈式:分佈式鎖之數據庫實現

Java分佈式:分佈式鎖之數據庫實現 分佈式鎖系列教程重點分享鎖實現原理 鎖實現原理   創建一張名爲methodLock的數據庫表,爲方法名字段(method_name)添加唯一性約束。 CREATE TABLE `methodLo

原创 Java分佈式:分佈式鎖之Zookeeper

Java分佈式:分佈式鎖之Zookeeper 分佈式鎖系列教程重點分享鎖實現原理 引入ZooKeeper ZooKeeper是什麼呢?   ZooKeeper 是一個開源的分佈式協調服務,它可以在分佈式系統中共享配置,協調鎖資源,提供命

原创 SpringBoot小技巧:統一異常處理

SpringBoot小技巧:統一異常處理 情景描述   對於接口的定義,我們通常會有一個固定的格式,比如:      但是調用方在請求我們的API時把接口地址寫錯了,就會得到一個404錯誤,且不同於我們定義的數據格式。   我們需要在發生這