原创 面試官:換人!他連哈希扣的都不懂...

前言 相信你面試的時候,肯定被問過 hashCode 和 equals 相關的問題 。如: hashCode 是什麼?它是怎麼得來的?有什麼用? 經典題,equals 和 == 有什麼區別? 爲什麼要重寫 equals 和 ha

原创 3W字詳細解析 ConcurrentHashMap 1.7和1.8源碼,再也不用擔心被面試官吊打了。

前言 上篇文章介紹了 HashMap 源碼後,廣受好評,讓本來己經不打算更新這個系列的我,彷彿被打了一頓雞血。被讀者認可的感覺,真奇妙。 然後,有讀者希望我能出一版 ConcurrentHashMap 的解析。所以,今天的這篇

原创 集合排序Comparable和Comparator有什麼區別?

Comparable和Comparator兄弟倆長得是真像。但是,需要注意下,使用中它們還是有不少區別的。下面,就一探究竟吧。 一、Comparator 做過集合排序的童鞋應該知道,可以使用Collections.sort方法對集

原创 終於有人把 CountDownLatch,CyclicBarrier,Semaphore 講明白了!

在 JUC 下包含了一些常用的同步工具類,今天就來詳細介紹一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它們之間的區別。 一、CountDownLatch 先看一下,CountD

原创 我用自己的親身經歷告訴你爲什麼不建議你合租!

前言 好久沒更新文章了,先對讀者朋友們說一聲抱歉。 最近確實事情比較多。上上週是忙着找房子,到了下班時間,喫個飯啥的,晚上就去看房子,每次都得看兩個多小時,有時候回到家就十一點快十二點了。 這也是沒辦法的事情,作爲北漂一族,肯定就

原创 Linux 文件刪除不了? 一招教你搞定!

前言 最近不是redis 6.0 出了嗎,官網介紹最新穩定版本是 6.0.3 。於是,我就準備在自己的破小服務器上安裝一下。於是,出現了後續的糟心事 (linux 下的文件正常刪除不了)。 下載了最新版本,在源碼包裏邊 make

原创 3W字詳細解析 ConcurrentHashMap 1.7和1.8源碼,你還怕被面試官吊打嗎?

前言 上篇文章介紹了 HashMap 源碼後,在博客平臺廣受好評,讓本來己經不打算更新這個系列的我,彷彿被打了一頓雞血。真的,被讀者認可的感覺,就是這麼奇妙。 然後,有讀者希望我能出一版 ConcurrentHashMap

原创 面試官再問你 HashMap 底層原理,就把這篇文章甩給他看

前言 HashMap 源碼和底層原理在現在面試中是必問的。因此,我們非常有必要搞清楚它的底層實現和思想,才能在面試中對答如流,跟面試官大戰三百回合。文章較長,介紹了很多原理性的問題,希望對你有所幫助~ 目錄 本篇文章主要包括以下內

原创 圖解漢諾塔問題( Java 遞歸實現)

漢諾塔簡介 最近在看數據結構和算法,遇到了一個非常有意思的問題——漢諾塔問題。 先看下百度百科是怎麼定義漢諾塔的規則的: 漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱

原创 ReentrantReadWriteLock 源碼分析以及 AQS 共享鎖 (二)

前言 上一篇講解了 AQS 的獨佔鎖部分(參看:ReentrantLock 源碼分析以及 AQS (一)),這一篇將介紹 AQS 的共享鎖,以及基於共享鎖實現讀寫鎖分離的 ReentrantReadWriteLock。(若是遇到之

原创 刷了力扣題之後,我也變的一發不可收拾了?

作爲程序員界的一枚小菜鳥,可謂是,從大量的 CRUD 業務中,練就了一身複製粘貼即可用的本領。 因爲大家不是都說:程序 = 複製 + 百度 嗎,再高級一點的就是複製 + 谷歌嘍。(我不禁想,難道科學^上網就高級了?) 反正都是拿來

原创 刷了力扣題之後,我也變的一發不可收拾了?

作爲程序員界的一枚小菜鳥,可謂是,從大量的 CRUD 業務中,練就了一身複製粘貼即可用的本領。 因爲大家不是都說:程序 = 複製 + 百度 嗎,再高級一點的就是複製 + 谷歌嘍。(我不禁想,難道科學^上網就高級了?) 反正都是拿來

原创 ReentrantLock 源碼分析以及 AQS (一)

前言 JDK1.5 之後發佈了JUC(java.util.concurrent),用於解決多線程併發問題。AQS 是一個特別重要的同步框架,很多同步類都藉助於 AQS 實現了對線程同步狀態的管理。 AQS 中最主要的就是獨佔鎖和共

原创 現在賣網課的都已經這麼浮躁了嗎?

昨天,發生了一件非常有意思的事情。事情經過是這樣的。。。 微信上有一個好友申請,備註是免費送學習資料的。對送資料我是不感冒的(因爲我收藏的資料,我有信心比他的多)。但是,對於他是怎麼獲得我的微信這件事,我還是挺感興趣的。 本着好奇

原创 常用阻塞隊列 BlockingQueue 有哪些?

爲什麼要使用阻塞隊列 之前,介紹了一下 ThreadPoolExecutor 的各參數的含義(併發編程之線程池ThreadPoolExecutor),其中有一個 BlockingQueue,它是一個阻塞隊列。那麼,小夥伴們有沒有想