原创 聊聊MyBatis緩存機制

前言MyBatis是常見的Java數據庫訪問層框架。在日常工作中,開發人員多數情況下是使用MyBatis的默認緩存配置,但是MyBatis緩存機制有一些不足之處,在使用中容易引起髒數據,形成一些潛在的隱患。個人在業務開發中也處理過一些由於M

原创 Redis 高負載下的中斷優化

背景原本穩定的環境也因爲請求量的上漲帶來了很多不穩定的因素,其中一直困擾我們的就是網卡丟包問題。起初線上存在部分Redis節點還在使用千兆網卡的老舊服務器,而緩存服務往往需要承載極高的查詢量,並要求毫秒級的響應速度,如此一來千兆網卡很快就出

原创 程序員不懂源碼只能“搜索”?這就是面試喜歡問原理、源碼的原因

前言很多人都有一個疑惑,爲什麼面試都喜歡問原理、問源碼......但是實際工作根本用不上,也就是大家常說的,面試造火箭,進去擰螺絲.我身邊也有不少朋友問過我,我給他們的回答是.如果不看源碼,不懂原理,出了問題你怎麼解決?他們給我的答覆基本都

原创 我使出這“三板斧”(分段鎖、哈希鎖、弱引用鎖)滅霸跑了......

有同學說,學了Java那麼多鎖,還是沒能鎖住滅霸,本文教你“三板斧”,鎖滅霸足矣。據說,沒幾個人能真正參透這“三板斧”的精髓,你是不是那個有緣人呢?最近,在工作上碰見了一些高併發的場景需要加鎖來保證業務邏輯的正確性,並且要求加鎖後性能不能受

原创 史上最全Spring Boot面試題(含答案)看完就是Spring Boot專家!

 一.Spring Boot、Spring MVC 和 Spring 有什麼區別?SpringFrameSpringFramework 最重要的特徵是依賴注入。所有 SpringModules 不是依賴注入就是 IOC 控制反轉。當我們恰當

原创 一起來了解一下針對代碼級別的性能測試工具 JMH吧!

正文開始JMH,即Java Microbenchmark Harness,這是專門用於進行代碼的微基準測試的一套工具API。JMH 由 OpenJDK/Oracle 裏面那羣開發了 Java 編譯器的大牛們所開發 。何謂 Micro Ben

原创 【BAT面試題系列】面試官:你瞭解樂觀鎖和悲觀鎖嗎?

前言樂觀鎖和悲觀鎖問題,是出現頻率比較高的面試題。本文將由淺入深,逐步介紹它們的基本概念、實現方式(含實例)、適用場景,以及可能遇到的面試官追問,希望能夠幫助你打動面試官。一、基本概念樂觀鎖和悲觀鎖是兩種思想,用於解決併發場景下的數據競爭問

原创 爲什麼 TCP 建立連接是三次握手,關閉連接確是四次揮手呢?

我們知道網絡層,可以實現兩個主機之間的通信。但是這並不具體,因爲,真正進行通信的實體是在主機中的進程,是一個主機中的一個進程與另外一個主機中的一個進程在交換數據。IP協議雖然能把數據報文送到目的主機,但是並沒有交付給主機的具體應用進程。而端

原创 10分鐘詳解Spring全家桶7大知識點

 點關注,不迷路;持續更新Java架構相關技術及資訊熱文!!!Spring框架自誕生以來一直備受開發者青睞,有人親切的稱之爲:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cl

原创 死磕 java同步系列之synchronized解析

問題(1)synchronized的特性?(2)synchronized的實現原理?(3)synchronized是否可重入?(4)synchronized是否是公平鎖?(5)synchronized的優化?(6)synchronized的

原创 【開源組件】記住:不要在MySQL中使用UTF-8

最近我遇到了一個bug,我試着通過Rails在以“utf8”編碼的MariaDB中保存一個UTF-8字符串,然後出現了一個離奇的錯誤: Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for co

原创 記一次阿里巴巴一面經歷,作爲一名java程序員終於找到了自己差距!

面試前的故事上週在拉勾上收到一個螞蟻金服的大哥要我的簡歷,當時很驚訝,居然有螞蟻金服的找到我,然後想都沒想就給了。受寵若驚呀,我知道自己的水平跟阿里的差距有多遠,以前一直沒用勇氣去投,連試試都不敢。這次居然主動找過來了,當時就再想,難道阿里

原创 有人可以被裁 100 天后涅槃進入騰訊,爲什麼有些程序員順利工作十年了卻還是迷茫?

大齡程序員老熟人老黃從北京到深圳後,經歷了失戀,買房結婚,裁員的經歷,最近有人問我,想知道老黃現在如何了?上個月老黃找我聊天,他告訴我,他最近入了騰訊,最近我一直處理工作的事情,沒來得及分享給大家,今天老說下老黃。老黃從鬥魚被動離開後,陸續

原创 從國企到互聯網,程序員六年四段經歷,一份被很多 HR 刷掉的簡歷

程序員,六年,四段工作經歷,這也許是一份會被很多 HR 刷掉的簡歷。從國企到互聯網,程序員六年四段經歷,一份被很多 HR 刷掉的簡歷從學生時代至今,我經歷了兩次大的方向轉型和一次大的技術轉型:從偏理論推導的數學科學到重工程實踐的計算機學科,

原创 四種軟件架構演進史,程序員會一種就很牛了!

如果一個軟件開發人員,不瞭解軟件架構的演進,會制約技術的選型和開發人員的生存、晉升空間。這裏我列舉了目前主要的四種軟件架構以及他們的優缺點,希望能夠幫助軟件開發人員拓展知識面。一、單體架構單體架構比較初級,典型的三級架構,前端(Web/手機