原创 Java基礎知識、hashmap、AQS、ThredPoolExecutor

1,StringBuild、StringBuffer、String 區別,Integer a= 130 與 Integer Integer b= 130 相等麼,120呢?爲什麼 (-128,127做了緩存,所以是同一個對象,主要是基於效

原创 MacOS 下 Navicat 12.1.24 破解

git文檔:https://github.com/boydos/navicat-keygen/blob/mac/README.zh-CN.md 1,確保已安裝如下庫 $ brew install openssl $ brew insta

原创 Mac創建自簽名的代碼證書

進入應用程序 =>> 實用工具 =>>  鑰匙串訪問 選擇 鑰匙串訪問 =>> 證書助理 =>> 創建證書頒發機構 輸入證書名稱,隨便寫(但要記住) 類型:自簽名根CA 用戶證書:代碼簽名 電子郵件:需要一個郵箱地址(寫自己的就行)

原创 爲什麼 Mysql 選擇B+樹而不是B-樹

B樹(也就是B-樹) B+樹(B-樹的變種) B-樹與B+樹區別 B+樹查詢時間複雜度固定是logn,B-樹查詢複雜度最好是 O(1)。 B+樹相鄰接點的指針可以大大增加區間訪問性,可使用在範圍查詢等 B-樹每個節點 key 和 d

原创 Java鎖、內存區域劃分、類初始化順序

1,volatile 變量的內存可見性是基於內存屏障(Memory Barrier)實現。 內存屏障,又稱內存柵欄,是一個 CPU 指令。 在程序運行時,爲了提高執行性能,編譯器和處理器會對指令進行重排序,JMM 爲了保證在不同的編譯器和

原创 Updating Homebrew 慢的解決方法

  1, 替換成阿里巴巴的 brew.git 倉庫地址: cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git

原创 Spring循環依賴檢測、解決方法

核心利用二級和三級緩存 1,一級緩存:用於存放完全初始化好的 bean  2,二級緩存:存放原始的 bean 對象(尚未填充屬性),用於解決循環依賴 */ 3,三級級緩存:存放 bean 工廠對象,用於解決循環依賴   循環依賴發生的時機

原创 NIO、BIO、AIO介紹

目前有三種IO共存。分別是BIO、NIO和AIO。 BIO 全稱Block-IO 是一種同步且阻塞的通信模式。是一個比較傳統的通信方式,模式簡單,使用方便。但併發處理能力低,通信耗時,依賴網速。(線程發起io請求後,一直阻塞(阻塞io),

原创 Linux網絡NetStat命令詳解

netstat 命令中各選項的含義如下:       -a 顯示所有socket,包括正在監聽的       -c 每隔1秒就重新顯示一遍,直到用戶中斷它。       -i  顯示所有網絡接口的信息,格式同ifconfig -e    

原创 Dock命令總結

1,停止所有容器:docker stop $(docker ps -a -q) 2,刪除所有容器:docker rm $(docker ps -a -q)  3,查看所有容器的ID:docker ps -a -q (其中docker ps

原创 Filter、Interceptor、Aspect區別與應用

Filter:和框架無關,可以控制最初的http請求,但是更細一點的類和方法控制不了。 可以攔截到方法的請求和響應(ServletRequest request, ServletResponse response) 可以對請求響應進行處

原创 Java類加載過程機制

加載機制: JVM把class文件加載到內存,並對數據進行校驗、準備、解析、初始化,最終形成JVM可以直接使用的Java類型的過程。 1,加載階段     加載是類加載過程中的一個階段,不要將這2個概念混淆了。相對於類生命週期的其他階段而

原创 mvn如何解決依賴衝突

1,項目X會使用(Y,G,Z),Y、G依賴Z的不同版本,而且當前使用的與另一個版本不兼容, 2,我們正在使用哪個Z版本?依賴機制如下: a,將使用庫的版本(如項目Y),其節點最接近依賴關係樹中的根(項目 X)。 b,如果同一庫(如項目Y

原创 三種分佈式鎖的區別

1,基於數據庫(性能較差,鎖表的風險,非阻塞,失敗需要輪詢耗CPU) 核心思想: 在數據庫中創建一個表,表中包含方法名等字段,並在方法名字段上創建唯一索引 想要執行某個方法,就使用這個方法名向表中插入數據,成功插入則獲取鎖 執行完成後刪

原创 JAVA垃圾回收判斷、垃圾回收算法、垃圾回收器比較

如何判斷垃圾 1, 引用計數法 (會有循環引用問題) 2,可達性分析算法(無法與GC Root建立直接或間接的連接) GC Root有哪些 1,虛擬機棧中引用的對象,如:對象地址 2,方法區中類靜態屬性引用的對象,如:static變量