注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Go程序員面試筆試寶典

Go程序員面試筆試寶典

Go程序員面試筆試寶典

定 價:¥99.00

作 者: 饒全成 歐長坤 楚秦等編著 猿媛之家 組編
出版社: 機械工業(yè)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787111702429 出版時間: 2022-04-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 311 字?jǐn)?shù):  

內(nèi)容簡介

  Go語言是一門既年輕、簡捷,又強大、高效、充滿潛力的服務(wù)器語言?!禛o程序員面試筆試寶典》使用淺顯易懂的語言與大量流程圖,深入介紹了Go語言。全書分為三大部分:第1部分(1~5章)為Go語言基礎(chǔ)。介紹了Go 語言中基礎(chǔ)、常見的逃逸分析、defer 延遲語句、切片、數(shù)組、散列表、通道和接口。第2部分(6~11章)為Go語言類庫。介紹了Go語言自身的類庫,如unsafe、context、錯誤、計時器、反射和sync包。第3部分(12~14章)為Go語言高級特性。介紹了調(diào)度、內(nèi)存分配、GC,從原理到源碼分析,逐漸深入。這三大部分是runtime 中重要、核心的內(nèi)容,理解了這三者的原理,才算是對Go語言有了一個比較深入的理解和掌握。 《Go程序員面試筆試寶典》是一本計算機相關(guān)專業(yè)畢業(yè)生面試筆試求職參考書,同時也適合有一定工作經(jīng)驗的開發(fā)工程師進(jìn)一步提升自身水平。

作者簡介

  饒全成,中科院計算所畢業(yè),國內(nèi)知名互聯(lián)網(wǎng)大廠后端高級研發(fā)工程師,Go語言愛好者,公眾號“碼農(nóng)桃花源”作者,Go夜讀核心成員,design核心成員。歐長坤,現(xiàn)為德國慕尼黑大學(xué)博士研究員,Go語言組織成員,Go語言中國貢獻(xiàn)者俱樂部成員,Go夜讀核心成員,design創(chuàng)建者之一,業(yè)余活躍在開源社區(qū)。

圖書目錄

前言
第1部分   語 言 基 礎(chǔ)
第1章  逃逸分析/2
1.1  逃逸分析是什么/2
1.2  逃逸分析有什么作用/3
1.3  逃逸分析是怎么完成的/3
1.4  如何確定是否發(fā)生逃逸/4
1.5  Go與C/C 中的堆和棧是同一個概念嗎/5
 
第2章  延遲語句/6
2.1  延遲語句是什么/6
2.2  延遲語句的執(zhí)行順序是什么/7
2.3  如何拆解延遲語句/9
2.4  如何確定延遲語句的參數(shù)/10
2.5  閉包是什么/11
2.6  延遲語句如何配合恢復(fù)語句/11
2.7  defer鏈如何被遍歷執(zhí)行/13
2.8  為什么無法從父goroutine恢復(fù)子goroutine的panic/18
 
第3章  數(shù)據(jù)容器/20
  3.1  數(shù)組與切片/20
      3.1.1  數(shù)組和切片有何異同/20
      3.1.2  切片如何被截?。?0
      3.1.3  切片的容量是怎樣增長的/23
      3.1.4  切片作為函數(shù)參數(shù)會被改變嗎/27
      3.1.5  內(nèi)建函數(shù)make和new的區(qū)別是什么/28
  3.2  散列表map/29
      3.2.1  map 是什么/29
      3.2.2  map 的底層實現(xiàn)原理是什么/30
      3.2.3  map 中的 key 為什么是無序的/50
      3.2.4  map 是線程安全的嗎/50
      3.2.5  float類型可以作為map的key嗎/50
      3.2.6  map 如何實現(xiàn)兩種 get 操作/52
      3.2.7  如何比較兩個 map 是否相等/53
      3.2.8  可以對 map 的元素取地址嗎/54
      3.2.9  可以邊遍歷邊刪除嗎/54
 
第4章  通道/55
  4.1  CSP是什么/55
  4.2  通道有哪些應(yīng)用/56
  4.3  通道的底結(jié)構(gòu)/57
      4.3.1  數(shù)據(jù)結(jié)構(gòu)/57
      4.3.2  創(chuàng)建過程/58
      4.3.3  接收過程/60
      4.3.4  發(fā)送過程/67
      4.3.5  收發(fā)數(shù)據(jù)的本質(zhì)/72
  4.4  通道的關(guān)閉過程發(fā)生了什么/74
  4.5  從一個關(guān)閉的通道里仍然能讀出數(shù)據(jù)嗎/75
  4.6  如何優(yōu)雅地關(guān)閉通道/76
  4.7  關(guān)于通道的happens-before有哪些/79
  4.8  通道在什么情況下會引起資源泄漏/81
  4.9  通道操作的情況總結(jié)/81
 
第5章  接口/82
  5.1  Go接口與C 接口有何異同/82
  5.2  Go語言與“鴨子類型”的關(guān)系/82
  5.3  iface和eface的區(qū)別是什么/84
  5.4  值接收者和指針接收者的區(qū)別/86
      5.4.1  方法/86
      5.4.2  值接收者和指針接收者/87
      5.4.3  兩者分別在何時使用/89
  5.5  如何用interface實現(xiàn)多態(tài)/89
  5.6  接口的動態(tài)類型和動態(tài)值是什么/91
  5.7  接口轉(zhuǎn)換的原理是什么/93
  5.8  類型轉(zhuǎn)換和斷言的區(qū)別是什么/96
  5.9  如何讓編譯器自動檢測類型是否實現(xiàn)了接口/101
 
第2部分  語 言 類 庫
第6章  unsafe/104
  6.1  如何利用unsafe包修改私有成員/104
  6.2  如何利用unsafe獲取slice和map的長度/105
  6.3  如何實現(xiàn)字符串和byte切片的零復(fù)制轉(zhuǎn)換/106
 
第7章  context/108
  7.1  context是什么/108
  7.2  context有什么作用/108
  7.3  如何使用context/109
      7.3.1  傳遞共享的數(shù)據(jù)/109
      7.3.2  定時取消/111
      7.3.3  防止 goroutine 泄漏/111
  7.4  context底層原理是什么/112
      7.4.1  接口/113
      7.4.2  結(jié)構(gòu)體/114
 
第8章  錯誤/124
  8.1  接口error是什么/124
  8.2  接口error有什么問題/125
  8.3  如何理解關(guān)于error的三句諺語/126
      8.3.1  視錯誤為值/126
      8.3.2  檢查并優(yōu)雅地處理錯誤/128
      8.3.3  只處理錯誤一次/130
  8.4  錯誤處理的改進(jìn)/131
 
第9章  計時器/133
  9.1  Timer底層數(shù)據(jù)結(jié)構(gòu)為什么用四叉堆而非二叉堆/133
  9.2  Timer曾做過哪些重大的改進(jìn)/134
  9.3  定時器的使用場景有哪些/134
  9.4  Timer/Ticker 的計時功能有多準(zhǔn)確/134
  9.5  定時器的實現(xiàn)還有其他哪些方式/137
 
第10章  反射/140
  10.1  反射是什么/140
  10.2  什么情況下需要使用反射/140
  10.3  Go語言如何實現(xiàn)反射/140
      10.3.1  types 和 interface/141
      10.3.2  反射的基本函數(shù)/144
      10.3.3  反射的三大定律/149
  10.4  如何比較兩個對象是否完全相同/149
  10.5  如何利用反射實現(xiàn)深度拷貝/151
 
第11章  同步模式/154
  11.1  等待組 sync.WaitGroup 的原理是什么/154
  11.2  緩存池 sync.Pool/157
      11.2.1  如何使用sync.Pool/157
      11.2.2  sync.Pool 是如何實現(xiàn)的/162
  11.3  并發(fā)安全散列表 sync.Map/174
      11.3.1  如何使用 sync.Map/175
      11.3.2  sync.Map 底層如何實現(xiàn)/176
 
第3部分  高 級 特 性
第12章  調(diào)度機制/184
  12.1  goroutine 和線程有什么區(qū)別/184
  12.2  Go sheduler 是什么/184
  12.3  goroutine 的調(diào)度時機有哪些/186
  12.4  M:N模型是什么/187
  12.5  工作竊取是什么/187
  12.6  GPM底層數(shù)據(jù)結(jié)構(gòu)是怎樣的/188
  12.7  scheduler 的初始化過程是怎樣的/193
  12.8  主 goroutine 如何被創(chuàng)建/207
  12.9  g0棧和用戶棧如何被切換/212
  12.10  Go schedule循環(huán)如何啟動/217
  12.11  goroutine如何退出/221
  12.12  schedule循環(huán)如何運轉(zhuǎn)/226
  12.13  M如何找工作/227
  12.14  系統(tǒng)監(jiān)控sysmon后臺監(jiān)控線程做了什么/237
      12.14.1  搶占進(jìn)行系統(tǒng)調(diào)用的P/240
      12.14.2  搶占長時間運行的P/243
  12.15  異步搶占的原理是什么/247
 
第13章  內(nèi)存分配機制/252
  13.1  管理內(nèi)存的動機是什么,通常涉及哪些組件/252
      13.1.1  內(nèi)存管理的動機/252
      13.1.2  內(nèi)存管理運行時的組件/252
      13.1.3  內(nèi)存的使用狀態(tài)/253
  13.2  Go語言中的堆和棧概念與傳統(tǒng)意義上的堆和棧有什么區(qū)別/255
  13.3  對象分配器是如何實現(xiàn)的/255
      13.3.1  分配的基本策略/256
      13.3.2  對象分配器的基本組件和層級/256
      13.3.3  對象分配的產(chǎn)生條件和入口/259
      13.3.4  大對象分配/261
      13.3.5  小對象分配/262
      13.3.6  微對象分配/264
  13.4  頁分配器是如何實現(xiàn)的/265
      13.4.1  頁的分配/265
      13.4.2  跨度的分配/266
      13.4.3  非托管對象與定長分配器/267
  13.5  與內(nèi)存管理相關(guān)的運行時組件還有哪些/269
      13.5.1  執(zhí)行棧管理/269
      13.5.2  垃圾回收器和拾荒器/271
  13.6  衡量內(nèi)存消耗的指標(biāo)有哪些/272
  13.7  運行時內(nèi)存管理的演變歷程/278
      13.7.1  演變過程/278
      13.7.2  存在的問題/279
 
第14章  垃圾回收機制/280
  14.1  垃圾回收的認(rèn)識/280
      14.1.1  垃圾回收是什么,有什么作用/280
      14.1.2  根對象到底是什么/280
      14.1.3  常見的垃圾回收的實現(xiàn)方式有哪些,Go語言使用的是什么/281
      14.1.4  三色標(biāo)記法是什么/281
      14.1.5  STW是什么意思/282
      14.1.6  如何觀察 Go 語言的垃圾回收現(xiàn)象/283
      14.1.7  有了垃圾回收,為什么還會發(fā)生內(nèi)存泄漏/286
      14.1.8  并發(fā)標(biāo)記清除法的難點是什么/288
      14.1.9  什么是寫屏障、混合寫屏障,如何實現(xiàn)/289
  14.2  垃圾回收機制的實現(xiàn)細(xì)節(jié)/291
      14.2.1  Go語言中進(jìn)行垃圾回收的流程是什么/291
      14.2.2  觸發(fā)垃圾回收的時機是什么/292
      14.2.3  如果內(nèi)存分配速度超過了標(biāo)記清除的速度怎么辦/294
  14.3  垃圾回收的優(yōu)化問題/295
      14.3.1  垃圾回收關(guān)注的指標(biāo)有哪些/295
      14.3.2  Go 的垃圾回收過程如何調(diào)優(yōu)/295
      14.3.3  Go的垃圾回收有哪些相關(guān)的API,其作用分別是什么/305
  14.4  歷史及演進(jìn)/305
      14.4.1  Go 歷史各個版本在垃圾回收方面的改進(jìn)/305
      14.4.2  Go在演化過程中還存在哪些其他設(shè)計,為什么沒有被采用/307
      14.4.3  Go語言中垃圾回收還存在哪些問題/307
結(jié)束語/310

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號