原创 本地事務的理論依據

放了方便描述,本問題討論的是都是page-oriented系統。道理都是一樣的,其他類型的系統也適用。在事務裏,有兩個最重要的特性: 原子性:原子性保證了事務的多個操作要麼都生效要麼都不生效,不會存在中間狀態 持久性:持久性保證了一旦事務

原创 你不知道的內存管理 虛擬內存組織 虛擬地址(VA)和物理地址(PA)的轉換 物理內存組織

抓主線,三個點: 虛擬內存組織 虛擬內存和物理內存的轉換 物理內存組織 虛擬內存組織 平時在進程中,所謂的內存地址,其實都是虛擬地址(VA),而不是實際的物理內存地址(PA)。這樣做的好處在於: 進程間隔離 方便共享資源 可以按需分配

原创 chapter5、6 golang的函數與方法

函數 //常規的函數定義 func 方法名(參數列表) 返回值 { 定義 } 函數的值(閉包) 在Go中,函數被看作第一類值(first-class values):函數像其他值一樣,擁有類型,可以被賦值給其他變量,傳遞給函數,從

原创 後臺面試題庫

大部分都是開放式問題,看面試者回答的程度逐漸往下問。 不問一些像語言特性、語法糖那種可以死記硬背,不需要理解的問題,更多考察面試者的編程/工程 經驗和思維。 1. 系統 考察面試者對操作系統的瞭解程度,看基礎功。 1.1 內存 說一下進程

原创 HyperLogLog原理

1. 背景 基數(cardinality)統計,即求一個集合中,不重複的元素個數。例如集合{1,1,2,3,4}的基數是4。 在互聯網中,典型的應用場景就是uv統計,下面就用uv統計作爲例子去闡述。 對於uv統計,最簡單的做法,是對被統計項

原创 你不知道的內存管理

抓主線,三個點: 虛擬內存組織 虛擬內存和物理內存的轉換 物理內存組織 虛擬內存組織 平時在進程中,所謂的內存地址,其實都是虛擬地址(VA),而不是實際的物理內存地址(PA)。這樣做的好處在於: 進程間隔離 方便共享資源 可以按需分配

原创 必懂kmp

看毛片算法其實並不難,但是很多人就是看完書還是不懂,覺得難以理解。。。 覺得很多都講得都長篇大論,沒能讓人很清晰的接觸到核心,下面力求精煉的講清楚怎麼看毛片 基本思想如圖: 我們看匹配的過程 Ti-j......Ti......... P

原创 Manacher's Algorithm

迴文串就是有一箇中心,然後兩邊對稱。就像abcba、abba。在求一個串的迴文子串的時候,我們就需要枚舉每一箇中心,那麼就有奇偶迴文子串的區別了,長度是奇數的對稱中心是一個字符,長度是偶數的對稱中心是兩個字符之間。求最長迴文子串是一個典型問

原创 剖析golang interface實現

[TOC] 本文基於golang 1.11源碼進行分析。先演示用法和注意事項,再深入源碼分析原理。 在golang中,接口本身也是一種類型,它代表的是一個方法的集合。任何類型只要實現了接口中聲明的所有方法,那麼該類就實現了該接口。與其他語

原创 golang的函數與方法

函數 //常規的函數定義 func 方法名(參數列表) 返回值 { 定義 } 函數的值(閉包) 在Go中,函數被看作第一類值(first-class values):函數像其他值一樣,擁有類型,可以被賦值給其他變量,傳遞給函數,從

原创 剖析golang slice的實現

本文基於golang 1.10版本分析。 slice 結構 slice實際就是一個struct,在runtime/slice.go中的定義如下: type slice struct { array unsafe.Pointer

原创 併發map --- sync map分析

[TOC] 本文基於1.10源碼分析 如之前的文章可以看到,golang中的map是不支持併發操作的,golang推薦用戶直接用讀寫鎖對map進行保護,也有第三方類庫使用分段鎖。在1.19版本中,golang基於原本的map,新增了一個支持

原创 剖析golang map的實現

[TOC] 本文參考的是golang 1.10源碼實現。 golang中map是一個kv對集合。底層使用hash table,用鏈表來解決衝突,通過編譯器配合runtime,所有的map對象都是共用一份代碼。 對比其他語言 c++使用紅黑

原创 五分鐘懂茶

1. 茶的構成 氟化物 濃度約爲1ppm,可中和口腔的酸性,對抗蛀牙。 維生素C 本來維生素C很容易收到高溫的破壞,但是茶中有兒茶素,可以保護維生素C不被破壞,維生素C在提高免疫力和美白方面有不錯的作用。 兒茶素 兒茶素是茶中澀味的來

原创 楚漢之爭

亡秦必楚 駕馭有兩種手段,制度塑造行爲,文化塑造思維和心靈;制度如緊箍咒之於孫悟空,心靈如託孤之於諸葛亮。 分封 秦國滅亡後,項羽舉行了分封大會,分封了十八個王。把楚懷王封爲義帝,遷到湖南彬洲,自己建都彭城,同時把魏王遷到山西運城,佔了魏