原创 【java8】淺析HashMap之get()方法

根據源碼可知,HashMap的get方法流程不是特別複雜,其中真正執行取值的邏輯是在getNode()方法中,不多說直接上源碼。 這裏再囉嗦一句:其中入參hash是調用了存值時的hash()方法,就是根據將key進行hash得到hash值

原创 Java移位運算符以及位運算

移位運算符: 移位運算符是位操作運算符的一種。移位運算符可以在二進制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分爲三種:<<(左移)、>>(帶符號右移)和>>>(無符號右移)。 左移運算符(<<) 按二進制形式把所有的數字向左

原创 Rabbitmq的六大工作模式機制

關於Rabbitmq六大消費模式的官方文檔: https://www.rabbitmq.com/getstarted.html 簡單模式(點對點模式): 應用場景:發送驗證碼, 一個生產者,一個消費者。生產者將消息放入隊列,消費者監聽消息

原创 plsql編碼引起的坑

某次用plsql執行like模糊查詢的時候,如果搜索關鍵字中含有中文字符,就查不到內容,數據庫中確實有,並且用其他客戶端可以查到;而如果搜索關鍵字中只含有英文字符,那就不存在這個問題。 導致這一現象的原因很可能是因編碼或字符集引起的,於是

原创 Mybatis源碼筆記之核心配置類configuration

public class Configuration { protected Environment environment; // 允許在嵌套語句中使用分頁(RowBounds)。如果允許使用則設置爲false。默認爲fal

原创 Mybatis源碼筆記之核心類XMLConfigBuilder

待更新。。。

原创 Rabbitmq之延遲隊列

什麼是延時隊列 延遲隊列存儲的對象是對應的延遲消息,所謂"延遲消息"是指當消息被髮送以後,並不想讓消費者立刻拿到消息,而是等待約定時間後,消費者才能拿到這個消息進行消費。 延遲隊列的使用場景有很多,比如: 在訂單系統中, 一個用戶下單之後

原创 消息隊列如何保證消息不被重複消費(如何保證消費時的冪等性)?

關於消息的重複執行 首先我們可以確認的是,觸發消息重複執行的條件會是很苛刻的, 也就說 在大多數場景下不會觸發該條件。 一般出在消費者任務超時,或者沒有及時返回狀態(如任務耗時過長導致ACK超時),還有就是消費者還沒來得及ACK就突然宕機

原创 4次優化,我把 Redis 性能 “壓榨” 到極致!

本文轉載自公衆號 https://mp.weixin.qq.com/s/y4q4Hb9A6xay3pAC_LBm5g,本文對原創文章內容做部分簡略補充 我們有個這樣的需求:每天每一個搶購商品只能買一次,並且全場搶購商品總購買次數不允許超過

原创 MySQL數據庫索引之 Hash、B-/+Tree

B-Tree索引         最常見的索引類型,基於B-Tree數據結構。B-Tree的基本思想是,所有值(被索引的列)都是排過序的,每個葉節點到跟節點距離相等。所以B-Tree適合用來查找某一範圍內的數據,而且可以直接支持數據排序(

原创 Java關鍵字final、static使用總結【轉】

轉自:http://blog.51cto.com/lavasoft/18771 final關鍵字  根據程序上下文環境,Java關鍵字final有“這是無法改變的”或者“終態的”含義,它可以修飾非抽象類、非抽象類成員方法和變量。你可能出於

原创 【java8】淺析HashMap之put()方法

從《淺析java8中HashMap的結構》這篇文章我們可以得知,hashMap的數據結構是數組+單鏈表。接下來咱們通過解讀HashMap的put(K key, V value)方法來了解他的數據存儲機制。 大致步驟如下圖: 至於詳細的步驟

原创 Redis和Memcached的區別

Redis的作者Salvatore Sanfilippo曾經對這兩種基於內存的數據存儲系統進行過比較:Redis支持服務器端的數據操作:Redis相比Memcached來說,擁有更多的數據結構和並支持更豐富的數據操作,通常在Memcach

原创 淺析java8中HashMap的結構

HashMap中涉及的部分數據結構 數組 數組存儲區間是連續的,佔用內存嚴重,故空間複雜的很大。但數組的二分查找時間複雜度小,爲O(1);數組的特點是:尋址容易,插入和刪除困難 鏈表 鏈表存儲區間離散,佔用內存比較寬鬆,故空間複雜度很小,

原创 HashMap,LinkedHashMap,TreeMap的區別

HashMap     HashMap 是一個最常用的Map,它根據鍵的HashCode 值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度。遍歷時,取得數據的順序是完全隨機的。     HashMap最多隻允許一條記錄的鍵爲Nul