原创 限流器及Guava實現分析

目錄 限流 常用限流算法 計數限流算法 固定窗口計數 滑動窗口計數 非計數限流法 漏桶限流 令牌桶限流 算法比較 Guava包中限流工具的實現分析 概覽 簡單使用示例 RateLimiter實現分析 create函數分析 acquire函

原创 經典面試題-Class.forName()的作用

1、裝載一個類並且對其進行實例化的操作。 2、裝載過程中使用到的類加載器是當前類。 爲了詳細描述,Class.forName()方法,這裏使用classLoader.loadClass()進行對比描述 a)Class.forName(St

原创 MySQL中IS NULL、IS NOT NULL、!= 是否用索引?

不知道從什麼時候開始,網上流傳着這麼一個說法: MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 這些條件時便不能使用索引查詢,只能使用全表掃描。 這種說法愈演愈烈,甚至被很多同學奉爲真理。咱啥話也不說,舉

原创 Spring boot創建自定義starter的完整步驟

目錄 前言: 看看官方的starter 自定義自己的starter 測試: 總結 這篇文章主要給大家介紹了關於Spring boot創建自定義starter的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring boo

原创 B+樹葉子結點到底存儲了什麼?

首先MYSQL默認InnoDB引擎,該引擎默認B+樹;先說結論:B+樹葉子結點存儲的是主鍵KEY或者具體數據。分情況討論: 主鍵KEY 比如說user_name是個索引,當執行該SQL:select * from user_info wh

原创 JAVA基本數據類型的字節與位數以及String類型的最大長度

目錄 基本數據類型的字節與位數如下:  String類型的最大長度 基本數據類型的字節與位數如下: 變量名稱   字節    位數 byte           1      8 short          2     16 int 

原创 @Transactional 註解失效場景

目錄 引言 一、事務 二、@Transactional介紹 三、@Transactional失效場景 引言 昨天公衆號粉絲諮詢了一個問題,說自己之前面試被問 @Transactional註解哪些場景下會失效,一時語塞致使面試失敗。所以今天

原创 基礎 | BIO、NIO與AIO

Java中的IO部分比較複雜,具體可參看書籍《Java NIO》和《Netty權威指南》。在此,僅對BIO、NIO和AIO進行概述性梳理,未涉及到具體實現細節,後續有空將深入展開。 同步IO和異步IO 參考答案: IO操作主要分爲兩個步驟

原创 JAVA BIO與NIO、AIO的區別(這個容易理解)

IO的方式通常分爲幾種,同步阻塞的BIO、同步非阻塞的NIO、異步非阻塞的AIO。 一、BIO      在JDK1.4出來之前,我們建立網絡連接的時候採用BIO模式,需要先在服務端啓動一個ServerSocket,然後在客戶端啓動Soc

原创 關於maven同名jar包不同版本號的衝突問題

jar包A引了M-0.1版 jar包B引了M-0.2版 這時兩個M都會引進路徑,可能會有衝突 如何解決呢? 方法一:使用exclusion標籤 從A中排除M 或者從B中排除M <dependency>    <groupId>net.to

原创 一致性 Hash 算法分析

當我們在做數據庫分庫分表或者是分佈式緩存時,不可避免的都會遇到一個問題: 如何將數據均勻的分散到各個節點中,並且儘量的在加減節點時能使受影響的數據最少。 Hash 取模 隨機放置就不說了,會帶來很多問題。通常最容易想到的方案就是 hash

原创 java 輕量級同步volatile關鍵字簡介與可見性有序性與synchronized區別

  目錄  概念 volatile與synchronized對比 總結 概念 JMM規範解決了線程安全的問題,主要三個方面:原子性、可見性、有序性,藉助於synchronized關鍵字體現,可以有效地保障線程安全(前提是你正確運用) 之前

原创 Mysql中drop、truncate和delete的用法

說到刪除表數據的關鍵字,大家記得最多的可能就是delete了 然而我們做數據庫開發,讀取數據庫數據.對另外的兩兄弟用得就比較少了 現在來介紹另外兩個兄弟,都是刪除表數據的,其實也是很容易理解的 drop 出沒場合:drop table  

原创 MySQL中NULL對索引的影響

看了很多博客,也聽過很多人說,包括我們公司的DBA,說MySql中如果某一列中含有null,那麼包含該列的索引就無效了。 翻了下《高性能MySQL第二版》和《MySQL技術內幕——InnoDB存儲引擎第2版》,並沒有看到關於這個的介紹。但

原创 爲什麼 MySQL 使用 B+ 樹

目錄 概述 設計 讀寫性能 數據加載 總結 Reference 偶人爲什麼這麼設計(Why's THE Design)是一系列關於計算機領域中程序設計決策的文章,我們在這個系列的每一篇文章中都會提出一個具體的問題並從不同的角度討論這種設