原创 【JAVA】 try catch finally 中包含return的幾種情況,及返回結果

第一種情況:在try和catch中有return,finally中沒有return,且finally中沒有對try或catch中要 return。這種情況,無論如何finally中的代碼塊都會執行,然後再執行try或者finall

原创 【設計模式】觀察者

目前這篇觀察者是自己剛整理的,很多都來源於網上,自己目前沒有設計模式的書,自己過一段時間買完書,重新理解完,會回來整理的。 定義對象之間的一對多依賴,當一個對象狀態改變時,它的所有依賴都會收到通知並且自動更新狀態。 主題(Subj

原创 【MYSQL】 數據庫實現分佈式鎖

下面我們來了解一下基於數據庫(MySQL)的方案,一般分爲3類:基於表記錄、樂觀鎖和悲觀鎖。 基於表記錄,可以通過UNIQUE KEY實現鎖 我們可以創建這樣一張表 CREATE TABLE `database_lock` (

原创 【JAVA】線程 打印ABC

通過控制變量的方式 public class Test { public static int num = 1; public static void main(String[] args) {

原创 【JAVA】 實現消費者生產者

通過wait()和 notifyAll()實現 public class PublicQueue { public int putindex = 0; public int maxcount = 10;

原创 【JAVA】設計模式 單例模式的五種代碼

單例模式 單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個

原创 【算法】leetcode46 去】全排列

Leetcode 全排列 給定一個 沒有重複 數字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,

原创 【算法】Java中的 && 與&

Java中&&和&都是表示與的邏輯運算符,都表示邏輯運輸符and,當兩邊的表達式都爲true的時候,整個運算結果才爲true,否則爲false。 &&的短路功能,當第一個表達式的值爲false的時候,則不再計算第二個表達式;&則兩

原创 【算法】n&(n-1) n&(-n)

n&(n-1) n&(-n) n&(n-1) 作用:將n的二進制表示中的最低位爲1的改爲0,先看一個簡單的例子: n = 10100(二進制),則(n-1) = 10011 ==》n&(n-1) = 10000 可以看到原本最

原创 命令模式 自己理解

命令模式 命令模式(Command Pattern)是一種數據驅動的設計模式,它屬於行爲型模式。請求以命令的形式包裹在對象中,並傳給調用對象。調用對象尋找可以處理該命令的合適的對象,並把該命令傳給相應的對象,該對象執行命令。 以下

原创 Java 類初始化順序

一個類中包含如下幾類東西,他們前後是有順序關係的 1.靜態熟悉 : static 開頭定義的屬性 2.靜態方法塊 : static{} 圈起來的方法塊 3.普通屬性 :未帶static定義的屬性 4.普通方法塊: {}圈起來的方法

原创 JMH的使用和代碼

概述 JMH 是一個由 OpenJDK/Oracle 裏面那羣開發了 Java 編譯器的大牛們所開發的 Micro Benchmark Framework 。何謂 Micro Benchmark 呢?簡單地說就是在 method

原创 StringUtils裏的isEmpty方法和isBlank方法的區別

isEmpty() public static boolean isEmpty(String str) { return str == null || str.length() == 0; } isBla

原创 @RefreshScop原理整理

1、@controller 控制器(注入服務) 用於標註控制層,相當於struts中的action層 2、@service 服務(注入dao) 用於標註服務層,主要用來進行業務的邏輯處理 3、@repository(實現dao訪問

原创 Git的使用

Git是什麼? Git是目前世界上最先進的分佈式版本控制系統(沒有之一)。 Git的誕生 很多人都知道,Linus在1991年創建了開源的Linux,從此,Linux系統不斷髮展,已經成爲最大的服務器系統軟件了。 Linus雖然創