• Go程序员面试笔试宝典
21年品牌 40万+商家 超1.5亿件商品

Go程序员面试笔试宝典

正版保障 假一赔十 可开发票

66.53 6.7折 99 全新

库存36件

广东广州
认证卖家担保交易快速发货售后保障

作者猿媛之家

出版社机械工业出版社

ISBN9787111702429

出版时间2021-07

装帧平装

开本16开

定价99元

货号11527903

上书时间2024-12-23

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介

1.饶全成,中科院计算所毕业,国内知名互联网大厂后端不错研发工程师,Go语言爱好者,公众号“码农桃花源”作者,Go夜读核心成员,golang.design核心成员。2.欧长坤,现为德国慕尼黑大学博士研究员,Go语言组织成员,Go语言中国贡献者俱乐部成员,Go夜读核心成员,golang.design创建者之一,业余活跃在开源社区。



目录

前言
第1部分   语 言 基 础
第1章  逃逸分析/2
1.1  逃逸分析是什么/2
1.2  逃逸分析有什么作用/3
1.3  逃逸分析是怎么完成的/3
1.4  如何确定是否发生逃逸/4
1.5  Go与C/C++中的堆和栈是同一个概念吗/5

第2章  延迟语句/6
2.1  延迟语句是什么/6
2.2  延迟语句的执行顺序是什么/7
2.3  如何拆解延迟语句/9
2.4  如何确定延迟语句的参数/10
2.5  闭包是什么/11
2.6  延迟语句如何配合恢复语句/11
2.7  defer链如何被遍历执行/13
2.8  为什么无法从父goroutine恢复子goroutine的panic/18

第3章  数据容器/20
  3.1  数组与切片/20
      3.1.1  数组和切片有何异同/20
      3.1.2  切片如何被截取/20
      3.1.3  切片的容量是怎样增长的/23
      3.1.4  切片作为函数参数会被改变吗/27
      3.1.5  内建函数make和new的区别是什么/28
  3.2  散列表map/29
      3.2.1  map 是什么/29
      3.2.2  map 的底层实现原理是什么/30
      3.2.3  map 中的 key 为什么是无序的/50
      3.2.4  map 是线程安全的吗/50
      3.2.5  float类型可以作为map的key吗/50
      3.2.6  map 如何实现两种 get 操作/52
      3.2.7  如何比较两个 map 是否相等/53
      3.2.8  可以对 map 的元素取地址吗/54
      3.2.9  可以边遍历边删除吗/54

第4章  通道/55
  4.1  CSP是什么/55
  4.2  通道有哪些应用/56
  4.3  通道的底结构/57
      4.3.1  数据结构/57
      4.3.2  创建过程/58
      4.3.3  接收过程/60
      4.3.4  发送过程/67
      4.3.5  收发数据的本质/72
  4.4  通道的关闭过程发生了什么/74
  4.5  从一个关闭的通道里仍然能读出数据吗/75
  4.6  如何优雅地关闭通道/76
  4.7  关于通道的happens-before有哪些/79
  4.8  通道在什么情况下会引起资源泄漏/81
  4.9  通道操作的情况总结/81

第5章  接口/82
  5.1  Go接口与C++接口有何异同/82
  5.2  Go语言与“鸭子类型”的关系/82
  5.3  iface和eface的区别是什么/84
  5.4  值接收者和指针接收者的区别/86
      5.4.1  方法/86
      5.4.2  值接收者和指针接收者/87
      5.4.3  两者分别在何时使用/89
  5.5  如何用interface实现多态/89
  5.6  接口的动态类型和动态值是什么/91
  5.7  接口转换的原理是什么/93
  5.8  类型转换和断言的区别是什么/96
  5.9  如何让编译器自动检测类型是否实现了接口/101

第2部分  语 言 类 库
第6章  unsafe/104
  6.1  如何利用unsafe包修改私有成员/104
  6.2  如何利用unsafe获取slice和map的长度/105
  6.3  如何实现字符串和byte切片的零复制转换/106

第7章  context/108
  7.1  context是什么/108
  7.2  context有什么作用/108
  7.3  如何使用context/109
      7.3.1  传递共享的数据/109
      7.3.2  定时取消/111
      7.3.3  防止 goroutine 泄漏/111
  7.4  context底层原理是什么/112
      7.4.1  接口/113
      7.4.2  结构体/114

第8章  错误/124
  8.1  接口error是什么/124
  8.2  接口error有什么问题/125
  8.3  如何理解关于error的三句谚语/126
      8.3.1  视错误为值/126
      8.3.2  检查并优雅地处理错误/128
      8.3.3  只处理错误一次/130
  8.4  错误处理的改进/131

第9章  计时器/133
  9.1  Timer底层数据结构为什么用四叉堆而非二叉堆/133
  9.2  Timer曾做过哪些重大的改进/134
  9.3  定时器的使用场景有哪些/134
  9.4  Timer/Ticker 的计时功能有多准确/134
  9.5  定时器的实现还有其他哪些方式/137

第10章  反射/140
  10.1  反射是什么/140
  10.2  什么情况下需要使用反射/140
  10.3  Go语言如何实现反射/140
      10.3.1  types 和 interface/141
      10.3.2  反射的基本函数/144
      10.3.3  反射的三大定律/149
  10.4  如何比较两个对象是否完全相同/149
  10.5  如何利用反射实现深度拷贝/151

第11章  同步模式/154
  11.1  等待组 sync.WaitGroup 的原理是什么/154
  11.2  缓存池 sync.Pool/157
      11.2.1  如何使用sync.Pool/157
      11.2.2  sync.Pool 是如何实现的/162
  11.3  并发安全散列表 sync.Map/174
      11.3.1  如何使用 sync.Map/175
      11.3.2  sync.Map 底层如何实现/176

第3部分  高 级 特 性
第12章  调度机制/184
  12.1  goroutine 和线程有什么区别/184
  12.2  Go sheduler 是什么/184
  12.3  goroutine 的调度时机有哪些/186
  12.4  M:N模型是什么/187
  12.5  工作窃取是什么/187
  12.6  GPM底层数据结构是怎样的/188
  12.7  scheduler 的初始化过程是怎样的/193
  12.8  主 goroutine 如何被创建/207
  12.9  g0栈和用户栈如何被切换/212
  12.10  Go schedule循环如何启动/217
  12.11  goroutine如何退出/2



内容摘要
Go语言是一门既年轻、简捷,又强大、高效、充满潜力的服务器语言。本书使用浅显易懂的语言与大量流程图,深入介绍了Go语言。全书分为三大部分:第1部分(1~5章)为Go语言基础。介绍了Go语言中最基础、最常见的逃逸分析、defer延迟语句、切片、数组、散列表、通道和接口。第2部分(6~11章)为Go语言类库。介绍了Go语言自身的类库,如unsafe、context、错误、计时器、反射和sync包。第3部分(12~14章)为Go语言不错特性。介绍了调度、内存分配、GC,从原理到源码分析,逐渐深入。这三大部分是runtime中最重要、最核心的内容,理解了这三者的原理,才算是对Go语言有了一个比较深入的理解和掌握。
    本书是一本计算机相关专业毕业生面试笔试求职参考书,同时也适合有一定工作经验的开发工程师进一步提升自身水平。

主编推荐

1. 内容精良:系统覆盖Go语言基础、语言类库和不错特性三大技术主题,精准定位Go语言学习痛点,系统化提升求职效率。2. 资源丰富:提供780分钟Go语言核心知识点学习视频。3. 重点剖析:涵盖Go调度器源码分析、顺序进程间通信(CSP)原理、泛型的历史及实战、可靠性测试等高频考点。



精彩内容

Go语言是一门既年轻、简捷,又强大、高效、充满潜力的服务器语言。《Go程序员面试笔试宝典》使用浅显易懂的语言与大量流程图,深入介绍了Go语言。全书分为三大部分:第1部分(1~5章)为Go语言基础。介绍了Go 语言中*基础、*常见的逃逸分析、defer 延迟语句、切片、数组、散列表、通道和接口。第2部分(6~11章)为Go语言类库。介绍了Go语言自身的类库,如unsafe、context、错误、计时器、反射和sync包。第3部分(12~14章)为Go语言高级特性。介绍了调度、内存分配、GC,从原理到源码分析,逐渐深入。这三大部分是runtime 中*重要、*核心的内容,理解了这三者的原理,才算是对Go语言有了一个比较深入的理解和掌握。
  《Go程序员面试笔试宝典》是一本计算机相关专业毕业生面试笔试求职参考书,同时也适合有一定工作经验的开发工程师进一步提升自身水平。



媒体评论

Go语言资深研发工程师带你轻松搞定笔试面试那些事儿



   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP