# golangFamily
【超全golang面试题合集+golang学习指南+golang知识图谱+成长路线】 一份涵盖大部分golang程序员所需要掌握的核心知识。
![](https://cdn.jsdelivr.net/gh/xiaobaiTech/image/%E5%90%8E%E7%AB%AF%E6%88%90%E9%95%BF%E8%B7%AF%E7%BA%BF.png)
[脑图持续不断更新中,在线查看地址](https://www.processon.com/view/link/5ff500aa1e08531de81e1288)
后续文章和内容会不断更新到 [github项目](https://github.com/xiaobaiTech/golangFamily) 中,欢迎关注。
大家好,我是小白。大家知道,我一直以来都是golang的忠实粉丝,在学习和参与面试的过程中遇到过很多golang的问题。
最近花了些时间整理了一下后端程序员成长路线和高频面试题,这是一份涵盖大部分后端程序员所需要掌握的**核心知识**。
这些面试题从**能力模型上对标字节资深后端开发**,因为字节主要使用GO语言,因此语言方面的面试题,主要是面向go相关的题目。但除了语言这块,其他中间件和工程能力相关的面试题,**对于所有后端开发都适用!!**
![](https://cdn.jsdelivr.net/gh/xiaobaiTech/image/image-20220314193617293.png)
面试题集PDF还会**不断迭代更新**,后续最新版本都会在我的个人公众号「**小白debug**」里第一时间发布!
在公众号里回复【**面试**】即可获得!!
如果大家看完电子书,觉得内容还不错,强烈希望大家能在**微信公众号**里搜索关注,并**星标**我的公众号,第一时间获取最新更新内容!
还有**技术划水【交流群】**,点击公众号右下角【**联系我**】或**扫描以下二维码**,备注“**进群**”,欢迎大家进群交流~。
如果大家对网络基础感兴趣的话,公众号里也有非常多相关的文章,也欢迎关注收看哈。**图解网络相关**的文章,已经重新整理成一份的电子书。**在公众号内回复【网络】,就可以获得整理的PDF电子书。**
同时我也为公众号粉丝准备了一些学习资料,关注公众号并回复【**go**】、【**操作系统**】、【**网络**】即可获得相应学习资料!
并且,学习资料也会**不断更新**,后续会根据读者需求整理更多相关资源,有需要的读者也可以在公众号内留言。
### 最后
- 不满足于看八股文,可以尝试拿着岗位要求来进行ai押题。[押题宝](https://yatibao.debuger.top/)
- 基础不牢,缺乏实战项目,**想快速成为中大厂Go/Java工程师**?后端训练营了解一下。[后端训练营介绍文档](https://bds8bsueoz.feishu.cn/docx/Soo1dyKwJovEjcx95RbcixCqnmh)
- 欢迎大家访问我的**博客** [点这里 https://xiaobaidebug.top](https://xiaobaidebug.top/)。
- 欢迎大家访问我的**B站** [点这里](https://space.bilibili.com/302188068) 。
- 在公众号内回复【**面试**】,可以获得整理的**golang面试PDF电子书**,适合快速备战面试查漏补缺。
- 在公众号内回复【**网络**】,可以获得整理的**图解PDF电子书**,适合巩固基础。
- 在公众号内回复【**视频**】,可以获得整理的有趣好玩的**视频教程**,适合小白上路。
# 目录(善用Ctrl+F)
- 基础入门
- 新手
- [Golang开发新手常犯的50个错误](https://blog.csdn.net/gezhonglei2007/article/details/52237582)
- 数据类型
- [连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。](https://mp.weixin.qq.com/s/cp0xed7fC9uU0te00J8GIQ)
- [golang面试题:字符串转成byte数组,会发生内存拷贝吗?](https://mp.weixin.qq.com/s/Iol3UnphVtBwGyLd-tHz9w)
- [golang面试题:翻转含有中文、数字、英文字母的字符串](https://mp.weixin.qq.com/s/ayfn4LUy3MHJy37hdRlo3Q)
- [golang面试题:拷贝大切片一定比小切片代价大吗?](https://mp.weixin.qq.com/s/VaM4yJXHYyDyRY0XHIyhpQ)
- map不初始化使用会怎么样
- map不初始化长度和初始化长度的区别
- map承载多大,大了怎么办
- map的iterator是否安全?能不能一边delete一边遍历?
- 字符串不能改,那转成数组能改吗,怎么改
- 怎么判断一个数组是否已经排序
- 普通map如何不用锁解决协程安全问题
- array和slice的区别
- [golang面试题:json包变量不加tag会怎么样?](https://mp.weixin.qq.com/s/vlE0KVOCt_a4nxP_1ar4Ow)
- [golang面试题:reflect(反射包)如何获取字段tag?为什么json包不能导出私有变量的tag?](https://mp.weixin.qq.com/s/IB_hAzxBbAIYdLV7ZIN-sw)
- 零切片、空切片、nil切片是什么
- slice深拷贝和浅拷贝
- map触发扩容的时机,满足什么条件时扩容?
- map扩容策略是什么
- 自定义类型切片转字节切片和字节切片转回自动以类型切片
- make和new什么区别
- slice ,map,chanel创建的时候的几个参数什么含义
- slice,len,cap,共享,扩容
- 线程安全的map怎么实现
- go slice 和 array 区别
- go struct能不能比较?
- map如何顺序读取?
- go中怎么实现set
- map 的扩容机制是什么?
- 使用值为 nil 的 sice、map 会发生什么?
- Golang 有没有 this 指针?
- Golang 语言中局部变量和全局变量的缺省值是什么
- Golang 中的引用类型包含哪些?
- 使用range 迭代 map 是有序的吗?
- slice 的扩容机制是什么?
- Golang 中指针运算有哪些?
- 类型的值可以修改吗?
- 解析 JSON 数据时,默认将数值当做哪种类型
- array 类型的值作为函数参数是引用传递还是值传递?
- 流程控制
- [昨天那个在for循环里append元素的同事,今天还在么?](https://mp.weixin.qq.com/s/DOkdl9B3op4US_qHBLUNNw)
- [golang面试官:for select时,如果通道已经关闭会怎么样?如果只有一个case呢?](https://mp.weixin.qq.com/s/TuuLYgvIkwREDLkALqTMXA)
- go defer(for defer)
- select可以用于什么?
- context包的用途?
- select 可以用于实现哪些功能?
- 在循杯内执行 defer 语句会发生什么?
- switch 中如何强制执行下一个 case 代码块?
- 如何从 panic 中恢复?
- 进阶
- 包管理
[学go mod就够了!](https://studygolang.com/articles/27293)
- 优化
- [golang面试题:怎么避免内存逃逸?](https://mp.weixin.qq.com/s/m4pqhfrEclG0vswedkCQ_Q)
- [golang面试题:简单聊聊内存逃逸?](https://mp.weixin.qq.com/s/eqWFbwDcrL3zquEcGLgBGQ)
- [给大家丢脸了,用了三年golang,我还是没答对这道内存泄漏题](https://mp.weixin.qq.com/s/9CZkq-Yc75VDwqjwriZYXA)
- 内存碎片化问题
- chan相关的goroutine泄露的问题
- string相关的goroutine泄露的问题
- [你一定会遇到的内存回收策略导致的疑似内存泄漏的问题](https://colobu.com/20