小册描述
目录
- Go 中的 = 和 := 有什么区别?
- Go 中的指针的意义是什么?
- Go 多值返回有什么用?
- Go 有异常类型吗?
- Go 中的 rune 和 byte 有什么区别?
- Go 语言中的深拷贝和浅拷贝?
- 什么叫字面量和组合字面量?
- 对象选择器自动解引用怎么用?
- map 的值不可寻址,那如何修改值的属性?
- 有类型常量和无类型常量的区别?
- 为什么传参使用切片而不使用数组?
- Go 语言中 hot path 有什么用呢?
- 引用类型与指针,有什么不同?
- Go 是值传递,还是引用传递、指针传递?
- Go中哪些是可寻址,哪些是不可寻址的?
- slice 扩容后容量及内存如何计算?
- goroutine 存在的意义是什么?
- 说说 Go 中闭包的底层原理?
- defer 的变量快照什么情况会失效?
- 说说你对 Go 里的抢占式调度的理解。
- 简述一下 Go 栈空间的扩容/缩容过程?
- 说一下 GMP 模型的原理。
- GMP 模型为什么要有 P ?
- 不分配内存的指针类型能用吗?
- 如何让在强制转换类型时不发生内存拷贝?
- Go 中的 GC 演变是怎样的?
- Go 中哪些动作会触发 runtime 调度?
- 有哪些情况会导致协程泄露?
- 局部变量分配在栈上还是堆上?
- 为什么常量、字符串和字典不可寻址?
- 为什么 slice 元素是可寻址的?
- Go 的默认栈大小是多少?最大值多少?
- Go 中的分段栈和连续栈的区别?
- 内存对齐、内存布局是怎么回事?
- Go 里是怎么比较相等与否?
- 所有的 T 类型都有 *T 类型吗?
- 数组对比切片有哪些优势?
- GMP 偷取 G 为什么不需要加锁?
- 堆引用栈内存是怎么回收的?