原创 Redis源碼剖析之壓縮列表(ziplist)

本來打算只用一篇文章來講解Redis中的list,在實際寫作過程中發現Redis中有多種list的實現,所以準備拆成多篇文章,本文主要講ziplist,ziplist也是quicklist的基礎。另外還有skiplist,skiplist雖

原创 面試題精選:單鏈表排序也能玩出花來

今天國慶節,祝大家中秋節快樂,順便給大家拜個早年[狗頭]。不過最近還在準備面試的同學們不要浪太狠,還是要好好學習的鴨。 單鏈表的排序在數據結構類的面試題中簡直是集大成者,什麼排序、鏈表、鏈表刪除、添加…… 都能體現在單鏈表排序上,也非常考驗

原创 Redis源碼剖析之SDS(Simple Dynamic String)

SDS(simple dynamic string)是Redis提供的字符串的封裝,在redis中也是存在最廣泛的數據結構,它也是很多其他數據結構的基礎,所以才選擇先介紹SDS。 SDS也兼容部分C字符串API(strcmp,strlen)

原创 面試題精選:字符串替換

字符串處理在程序猿日常工作工作中非常常見,常見到幾乎各種語言中都已經封裝好了字符串相關的API,我們只需要直接拿過來用就好。就拿Java爲例,jdk中的String()類幾乎封裝了所有字符串相關的操作,其方法數量有近百個,幾乎滿足了程序猿所

原创 面試題精選:數據僞造

這道題應該算是我原創的的一道題,來源於我遇到的一個具體需求。大致需求是已知一批數和每個數出現的次數,然後寫個接口,每次調用都能返回已知數據中的某個數,且返回的概率和原始數據中每個數出現的概率一致,題目描述起來有些繞口,我們來舉個實際的例子。

原创 程序猿職場求生指南

職場法則: 只要你努力工作,辦事靠譜,思慮周全,從不給領導添麻煩,從不向領導提要求。勤勤懇懇,兢兢業業…… 堅持下去,公司裏的雜活,破事兒,棘手的事就都成了你的,而且你的老闆會更有錢。 如何在職場中幹最少的活拿最多的錢,一定是困擾大部分社

原创 我揹着CSDN偷偷記錄了大半年我博客數據

作爲一個數據控+一個有追求的技術博主,總是希望自己能知道自己博客歷史每日粉絲數量、閱讀量、積分、評論……的數據,然而官方博客管理後臺給展示的數據太少了,只有每日訪問量、評論數、粉絲數、收藏數這幾個數據,而且目前最多隻能看最近一個月的數據。

原创 面試題精選:兩個線程按順序交替輸出1-100

陸陸續續,各個公司的校招季都開始了,我也成爲了我司的校招面試官,最近也面了不少同學了,面試過程中也發現了很多問題,即有面試者的、也有面試官的、更有自己的問題,這裏先挖個坑,後續寫個博客詳細聊聊,感興趣的同學可以關注下。另外,我也有個專欄《面

原创 Java中synchronized與ReentrantLock性能對比

前兩天逛博客的時候看到有個人寫了一篇博客說ReentrantLock比synchronized慢,這就很違反我的認知了,詳細看了他的博客和測試代碼,發現了他測試的不嚴謹,並在評論中友好地指出了他的問題,結果他直接把博客給刪了 刪了 了……

原创 如何製作一個可以自動更新的Github個人主頁

Github近期上線一個新的功能,就是你在自己賬號下創建一個和自己用戶名同名的倉庫,並在倉庫下創建一個README.md文件,這個文件就會被展示在你的Github個人主頁。源於markdown的強大描述能力,你可以在你的Github首頁展示

原创 如何把百度僞裝成Google的樣子

作爲技術人使用百度被鄙視?但因爲種種原因無法使用Google,爲了解決這個尷尬的問題,我特意研發了一款chrome插件,可以將百度的logo換成google的logo,完美的解決這個尷尬的問題。 媽媽再也不用擔心我因爲用百度搜索技術問題而被

原创 如何製作一個可以自動更新的Github個人主頁

Github近期上線一個新的功能,就是你在自己賬號下創建一個和自己用戶名同名的倉庫,並在倉庫下創建一個README.md文件,這個文件就會被展示在你的Github個人主頁。源於markdown的強大描述能力,你可以在你的Github首頁展示

原创 JDK11現存性能bug(JDK-8221393)深度解析

這是一篇鴿了很久的博客,因爲博客內容和素材早就準備差不多了,但就是一直懶得整理,今天終於下定決心終於整理出來了,這也是這個bug JDK-8221393唯一一篇中文介紹博客。 先大致介紹下這個bug,準確說這個應該是jdk11新引入的zgc

原创 生日悖論是啥?我用它省了上百G的內存

生日悖論: 是指在不少於 23 個人中至少有兩人生日相同的概率大於 50%。例如在一個 30 人的小學班級中,存在兩人生日相同的概率爲 70%。對於 60 人的大班,這種概率要大於 99%。從引起邏輯矛盾的角度來說,生日悖論並不是一種 “悖

原创 虛擬內存介紹

原文地址An introduction to virtual memory 計算機是用來執行簡單任務的複雜機器:比如 上網、文本編輯、網頁服務、視頻遊戲……,還可以對數據進行操作,圖片 音樂 文本 數據庫…… 當計算機不使用的