百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

golangFamily

> 编程语言
开源

【超全golang面试题汇总+golang学习指南+golang知识图谱+入门成长路线】 一份涵盖大部分golang程序员所需掌握的核心知识。常用第三方库(MySQL、mq、es、Redis等)+机器学习库+算法库+游戏库+开源框架+自然语言处理nlp库+网络库+视频库+微服务框架+视频教程+音频音乐库+图形图片库+

7.0K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

【超全golang面试题汇总+golang学习指南+golang知识图谱+入门成长路线】 一份涵盖大部分golang程序员所需掌握的核心知识。常用第三方库(MySQL、mq、es、Redis等)+机器学习库+算法库+游戏库+开源框架+自然语言处理nlp库+网络库+视频库+微服务框架+视频教程+音频音乐库+图形图片库+

# golangFamily 【超全golang面试题合集+golang学习指南+golang知识图谱+成长路线】 一份涵盖大部分golang程序员所需要掌握的核心知识。

[脑图持续不断更新中,在线查看地址](https://www.processon.com/view/link/5ff500aa1e08531de81e1288) 后续文章和内容会不断更新到 [github项目](https://github.com/xiaobaiTech/golangFamily) 中,欢迎关注。
大家好,我是小白。大家知道,我一直以来都是golang的忠实粉丝,在学习和参与面试的过程中遇到过很多golang的问题。 最近花了些时间整理了一下后端程序员成长路线和高频面试题,这是一份涵盖大部分后端程序员所需要掌握的**核心知识**。 这些面试题从**能力模型上对标字节资深后端开发**,因为字节主要使用GO语言,因此语言方面的面试题,主要是面向go相关的题目。但除了语言这块,其他中间件和工程能力相关的面试题,**对于所有后端开发都适用!!** 面试题集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) 。 - 欢迎大家访问我新做的**工具站点** [图片翻译photo-translate](https://www.photo-translate.top) 。 - 在公众号内回复【**面试**】,可以获得整理的**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/2019/08/28/go-memory-leak-i-dont-think-so/) - sync.Pool的适用场景 - go1.13sync.Pool对比go1.12版本优化点 - 并发编程 - [golang面试题:对已经关闭的的chan进行读写,会怎么样?为什么?](https://mp.weixin.qq.com/s/6cgrWfNBLiU8bAwmJY7pGg) - [golang面试题:对未初始化的的chan进行读写,会怎么样?为什么?](https://xiaobaidebug.top/2020/06/11/golang%E9%9D%A2%E8%AF%95%E9%A2%98/golang%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%9A%E5%AF%B9%E6%9C%AA%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E7%9A%84chan%E8%BF%9B%E8%A1%8C%E8%AF%BB%E5%86%99%EF%BC%8C%E4%BC%9A%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F/) - sync.map 的优缺点和使用场景 - sync.Map的优化点 - 主协程如何等其余协程完再操作 - 有缓存的channel和没有缓存的channel区别是什么? - 协程通信方式有哪些? - channel底层实现 - 读写锁底层是怎么实现的? - 请你说说golang的CSP思想 - channel 是怎么保证线程安全? - 高级特性 - [golang面试题:能说说uintptr和unsafe.Pointer的区别吗?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492750&idx=1&sn=aafed552e01a3ebb61233f318bc9d6dc&source=41#wechat_redirect) - [golang 面试题:reflect(反射包)如何获取字段 tag?为什么 json 包不能导出私有变量的 tag?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492754&idx=1&sn=9fb4360da097c81fe733ba48d3aca8a7&source=41#wechat_redirect) - 协程和线程的差别 - 垃圾回收的过程是怎么样的? - 什么是写屏障、混合写屏障,如何实现? - 开源库里会有一些类似下面这种奇怪的用法:`var _ io.Writer = (*myWriter)(nil)`,是为什么? - [GMP模型](https://zboya.github.io/post/go_scheduler/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io) - [动图图解,GMP里为什么要有P](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492776&idx=1&sn=913a442965df4af86182f29fc6b8834d&source=41#wechat_redirect) - 协程之间是怎么调度的 - gc的stw是怎么回事 - 利用golang特性,设计一个QPS为500的服务器 - 为什么gc会让程序变慢 - 开多个线程和开多个协程会有什么区别 - 两个interface{} 能不能比较 - 必须要手动对齐内存的情况 - [go栈扩容和栈缩容,连续栈的缺点](https://segmentfault.com/a/1190000019570427) - golang怎么做代码优化 - [golang隐藏技能:怎么访问私有成员](https://www.jianshu.com/p/7b3638b47845) - 协程可以自己主动让出 CPU 吗? - 断言时会发生拷贝吗 - 接口是怎么实现的? - 协程与进程,线程的区别是什么?协程有什么优势? - 为什么小对象多了会造成 gc 压力? - 一个协程能保证绑定在一个内核线程上吗? - 闭包怎么实现的,闭包的主要应用场景 - 两次 GC 周期重叠会引发什么问题,GC 触发机制是什么样的? - Goroutinue 什么时候会被挂起? - Data Race 问题怎么检测?怎么解决? - Golang 触发异常的场景有哪些? - net/http包中client如何实现长连接? - net/http怎么做连接池和长链接? - [golang进阶面试题](https://golangguide.top/golang/%E9%9D%A2%E8%AF%95%E9%A2%98/2.Go%E8%BF%9B%E9%98%B6.html) - 问题排查 - [trace](https://mp.weixin.qq.com/s?__biz=MzA4ODg0NDkzOA==&mid=2247487157&idx=1&sn=cbf1c87efe98433e07a2e58ee6e9899e&source=41#wechat_redirect) - [pprof](https://mp.weixin.qq.com/s/d0olIiZgZNyZsO-OZDiEoA) - 什么是 goroutine 泄漏? - 当go服务部署到线上了,发现有内存泄露,该怎么处理 - 源码阅读 - [sync.map](https://qcrao.com/2020/05/06/dive-into-go-sync-map/) - net/http - [i/o timeout , 希望你不要踩到这个net/http包的坑](https://mp.weixin.qq.com/s/7Fl5MuCl-G6wIQQiAqLAKA) - [mutex](https://mp.weixin.qq.com/s/MntwgIJ2ynOAdwnypWUjZw) - [channel](https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-channel/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io) - [context](https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-context/) - [select实现原理](https://mp.weixin.qq.com/s/9-eLJqYZrOpNLoiTGpBrKA) - main函数背后的启动过程 - [内存管理](https://mp.weixin.qq.com/s?__biz=Mzg2MDU1Mjc3MQ==&mid=2247489860&idx=1&sn=2d3fa235f6768ad5a0c820b6241b9e99&source=41#wechat_redirect) - [GC垃圾回收](https://segmentfault.com/a/1190000020086769) - [timer](https://pengrl.com/p/62835/) - 汇编 - [汇编入门](https://juejin.cn/post/6844903929713524744) - [推荐书籍](#推荐书籍) - [视频教程](#视频教程) - 实践常用工具 - [mysql建表语句转golang struct](https://marketplace.visualstudio.com/items?itemName=wandecilenio-martins.ddl-2-go-struct) - [json转golang struct](https://oktools.net/json2go) - [toml转golang struct](https://xuri.me/toml-to-go/) - [yaml转golang struct](https://yaml.to-go.online/) - 图解网络基础 - [漫画图解HTTP知识点+面试题](https://golangguide.top/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9/%E7%A1%AC%E6%A0%B8%EF%BC%81%E6%BC%AB%E7%94%BB%E5%9B%BE%E8%A7%A3HTTP%E7%9F%A5%E8%AF%86%E7%82%B9_%E9%9D%A2%E8%AF%95%E9%A2%98.html) - [TCP粘包 数据包:我只是犯了每个数据包都会犯的错](https://golangguide.top/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9/TCP%E7%B2%98%E5%8C%85%EF%BC%81%E6%95%B0%E6%8D%AE%E5%8C%85%EF%BC%9A%E6%88%91%E5%8F%AA%E6%98%AF%E7%8A%AF%E4%BA%86%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%8C%85%E9%83%BD%E4%BC%9A%E7%8A%AF%E7%9A%84%E9%94%99%EF%BC%8C%E7%A1%AC%E6%A0%B8%E5%9B%BE%E8%A7%A3.html) - [30张图带你搞懂!路由器,集线器,交换机,网桥,光猫有啥区别?](https://golangguide.top/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/%E6%A0%B8%E5%BF%83%E7%9F%A5%E8%AF%86%E7%82%B9/%E7%A1%AC%E6%A0%B8%E5%9B%BE%E8%A7%A3%EF%BC%8130%E5%BC%A0%E5%9B%BE%E5%B8%A6%E4%BD%A0%E6%90%9E%E6%87%82%EF%BC%81%E8%B7%AF%E7%94%B1%E5%99%A8%EF%BC%8C%E9%9B%86%E7%BA%BF%E5%99%A8%EF%BC%8C%E4%BA%A4%E6%8D%A2%E6%9C%BA%EF%BC%8C%E7%BD%91%E6%A1%A5%EF%BC%8C%E5%85%89%E7%8C%AB%E6%9C%89%E5%95%A5%E5%8C%BA%E5%88%AB%EF%BC%9F.html) - [既然IP层会分片,为什么TCP层也还要分段?](https://mp.weixin.qq.com/s/7kGFOOIV7-j-44U5RUcLRQ) - [断网了,还能ping通 127.0.0.1 吗?为什么?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492808&idx=1&sn=491074589ccbd2e972a9ad216c39b46d&source=41#wechat_redirect) - [连接一个 IP 不存在的主机时,握手过程是怎样的?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492837&idx=1&sn=d85cb3a7e86ab244247f52e282b93954&source=41#wechat_redirect) - [动图图解!代码执行send成功后,数据就发出去了吗?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492863&idx=1&sn=67009c9e4387c0b789304af9e77cebec&source=41#wechat_redirect) - [活久见!TCP两次挥手,你见过吗?那四次握手呢?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492883&idx=1&sn=cc526b3a34c30def4d655f05506c2826&source=41#wechat_redirect) - [动图图解!收到RST,就一定会断开TCP连接吗?](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492909&idx=1&sn=a0cdbe6e7497132f96c0d83716888cc5&source=41#wechat_redirect) - [动图图解!没有accept,能建立TCP连接吗?]([https://mp.weixin.qq.com/s/n17NjGRab1u5eXkOCro1gg](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492926&idx=1&sn=b6d254b5aa11ffaae093c919c1b1fab8&source=41#wechat_redirect)) - [来了来了!小白图解网络电子书和博客都来啦!](https://mp.weixin.qq.com/s?__biz=MzkxNTU5MjE0MQ==&mid=2247492941&idx=1&sn=47c95e0ec6bf3c679073a8fa6f1576fc&source=41#wechat_redirect) - HTTP 是无状态的吗?需要保持状态的场景应该怎么做? - 粘包如何解决 - RestFul 是什么?RestFul 请求的 URL 有什么特点? - 一次url访问会经历哪些过程 - TCP 三次握手以及四次挥手的流程。为什么需要三次握手以及四次挥手? - TCP的拥塞控制具体是怎么实现的?UDP有拥塞控制吗? - 是否了解中间人劫持原理 - TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别? - HTTP 与 HTTPS 有哪些区别? - select和epoll区别 - TCP 如何实现数据有序性? - TCP长连接和短连接有那么不同的使用场景? - TIME_WAIT时长,为什么? - 什么是零拷贝? - HTTP 简述 HTTP 的 keepalive 的原理和使用场景 - Cookie 和 Session 的关系和区别是什么? - DNS 查询服务器的基本流程是什么?DNS 劫持是什么? - libevent结构,内部实现 - 简述对称与非对称加密的概念 - epoll中的ET和LT模式 - JWT 的原理和校验机制 - TCP 怎么保证可靠传输? - 介绍下proactor和reactor - Accept发生在三次握手哪个阶段 - RPC 的调用过程 - tcp的可靠性体现在哪里 - 如何解决 TCP 传输丢包问题? - 什么是 ARP 协议?简述其使用场景 - http和https区别 - DDOS 攻击原理,如何防范它? - 如何防止传输内容被篡改? - 介绍下滑动窗口 - 三次握手四次握手详细过程,越详细越好 - 什么是中间人攻击?如何防止攻击? - TCP 半连接发生场景 - reactor的组成 - udp包长度 - IP为什么要分片 - OSI 七层模型,TCP,IP 属于哪一层? - 数据包乱序会处理? - 什么是 SYN flood,如何防止这类攻击? - WebSocket 是如何进行传输的 - 为什么需要序列化?有什么序列化的方式? - 有chunked的时候contentlength是什么样子 - 如何设计一个可靠的udp - TCP 中常见的拥塞控制算法有哪些? - 如何设置非阻塞 - 什么是跨域,什么情况下会发生跨域请求? - Udp的接收缓冲区和发送缓冲区和tcp的区别 - 什么时候需要TCP四次挥手? - traceroute 有什么作用? - HTTP 的方法有哪些? - TIME_WAIT危害 - select什么情况返回0 - 半连接在哪个阶段 - TCP 的 keepalive 了解吗?说一说它和 HTTP 的 keepalive 的区别? - 简述常见的 HTTP 状态码的含义(30从系统层面上,UDP 如何保证尽量可靠? - 指针与引用的区别 - iPv4 和 iPv6 的区别 - 项目中说用到线程池,开多大,为什么运用线程池? - 如何设计 API 接口使其实现幂等性? - TCP 的 TIME_WAIT 和 CLOSE_WAIT - HTTP 报文头部的组成结构 - RestFul 与

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言