Golang面试题精讲
引言
算法
判断字符串中字符是否全都不同
翻转字符串
试读
判断两个给定的字符串排序后是否一致
字符串替换问题
机器人坐标问题
Channel交替打印数字和字母
试读
两个大文件,分别每行都存一个url,查找两个文件中重复的url
语法题目
defer
Golang基础
Go与其他语言有什么区别
Golang 使用什么数据类型?
new和make的区别
Golang的深拷贝与浅拷贝
Slice 与 Array, Append()
go语言的引用类型有什么
为什么使用空结构体
defer 的作用和特点是什么
Golang Map 如何扩容
Golang Map 查找
cap 函数
Slice 的底层实现
Go的Slice如何扩容?
不同包的多个init函数的运行时机
init和main函数的执行顺序
删除切片中某个元素
高效拼接字符串
map的key删除了,它的内存会释放吗
哪些能作为 map 的 key 哪些不能?
内存泄露如何排查
go 打印时 %v %+v %#v 的区别?
Map为什么事随机的
uint8超过255会发生什么
int8和int的区别
rune类型
Go Runtime
Goroutine 定义
1.0 之前 GM 调度模型
GMP 指的是什么
GMP 调度流程
GMP有数量限制吗
GC的触发条件
哪些场景会发生逃逸
Go并发编程
Mutex 几种状态
Mutex 正常模式和饥饿模式
如何判断channel是否关闭
获取不到锁会一直等待吗
如何实现一个 timeout 的锁
Context 包的作用
Channel 的 ring buffer 实现
介绍一下Go Channel
Channel为什么需要两个队列实现
Golang库
常见的限流策略
Gin框架的路由是怎么处理的
MySQL
数据库三大范式
有哪些索引失效的情况?
谈谈 SQL 优化的经验
事务隔离级别
innodb 和myisa的区别
B+Tree 原理,与其它查找树的比较
B树和B+树的区别是什么
网络编程
tcp和udp区别
RESTful是什么
有哪些HTTP方法
HTTP状态码
http报文参数有哪些
GET/POST的区别
介绍下TCP四次挥手
https解决了什么问题
Redis
淘汰策略
持久化方案
各类型底层数据结构
Linux
软件架构
DAU突然从1w到100w怎么处理
常用设计模式
DDD
附录
此章节为付费章节
仅58元即解锁全部内容