# Golang 面试题搜集

## Golang 常见面试题目解析

- [交替打印数字和字母](question/q001.md)
- [判断字符串中字符是否全都不同](question/q002.md)
- [翻转字符串](question/q003.md)
- [判断两个给定的字符串排序后是否一致](question/q004.md)
- [字符串替换问题](question/q005.md)
- [机器人坐标计算](question/q006.md)
- [语法题目一](question/q007.md)
- [语法题目二](question/q008.md)
- [goroutine和channel使用一](question/q009.md)
- [实现阻塞读的并发安全Map](question/q010.md)
- [高并发下的锁与map读写问题](question/q011.md)
- [定时与 panic 恢复](question/q012.md)
- [为 sync.WaitGroup 中Wait函数支持 WaitTimeout 功能.](question/q013.md)
- [七道语法找错题目](question/q014.md)
- [golang 并发题目测试](question/q015.md)
- [记一道字节跳动的算法面试题](question/q016.md)
- [多协程查询切片问题](question/q017.md)
- [对已经关闭的的chan进行读写，会怎么样？为什么？](question/q018.md)
- [简单聊聊内存逃逸？](question/q019.md)
- [字符串转成byte数组，会发生内存拷贝吗？](question/q020.md)
- [http包的内存泄漏](question/q021.md)
- [sync.Map 的用法](question/q022.md)
- [Golang基础语法相关题目](question/q023.md)
- [go 面试题：连接字符串有几种方法](question/q024.md)
- [Golang 基础语法题汇集](question/q025.md)

## Golang 理论

- [Go语言的GPM调度器是什么？](base/go-gpm.md)
- [Goroutine调度策略](base/go-scheduler.md)
- [goroutine调度器概述](base/go-scheduler-base.md)
- [Golang的垃圾回收机制是如何工作的？](https://study.disign.me/article/202502/35.Golang垃圾回收(GC)介绍.md)
- [golang中如果出现了内存泄露， 怎么排查？一般都有哪些情况可能导致内存泄露](https://study.disign.me/article/202502/36.Go%E7%A8%8B%E5%BA%8F%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E9%97%AE%E9%A2%98%E5%BF%AB%E9%80%9F%E5%AE%9A%E4%BD%8D.md)
- [讲讲GMP模型](https://study.disign.me/article/202502/38.go-GPM%E6%A8%A1%E5%9E%8B.md)
- [Golang常见语法面试题总结](base/go-grammar.md)


## Redis基础

- [Redis 基础数据结构](base/redis.md)
- [Redis中的底层数据结构](base/redis-data-structure.md)
- [Redis持久化的原理及优化](base/redis-rdb.md)
- [Redis中内存淘汰算法实现](redis/redis-policy.md)
- [Redis主从复制原理](redis/redis-master-slave.md)
- [AOF 和 RDB 是什么？AOF 持久化策略有哪三种？你们是怎么选的？AOF 什么时候重写？为什么重写？](./redis/0001.md)
- [Redis 6 里的 Threaded I/O 是想解决什么问题？](./redis/0002.md)

## MySQL相关

- [MySQL数据库经典面试题解析](mysql/mysql-interview.md)
- [MySQL InnoDB MVCC 机制的原理及实现](mysql/mysql-mvcc.md)
- [为什么MySQL使用B+树做索引？](mysql/mysql-index-b-plus.md)
- [MySQL 单列索引，联合索引的存储区别?](./mysql/0001.md)
- [了解索引下推吗？什么情况下会下推到引擎去处理？什么情况下索引会失效？](./mysql/0002.md)

## 面试必备算法

- [字符串之实现 Sunday 匹配](algorithm/docs/match-sunday-string.md)
- [字符串泄漏之反转字符串(301)](algorithm/docs/reverse-string.md)
- [字符串中的第一个唯一字符](algorithm/docs/search-first-unique-char.md)
- [字符串之验证回文串](algorithm/docs/verify-palindrome.md)
- [滑动窗口最大值](algorithm/docs/sliding-window-maximum.md)
- [最长公共前缀](algorithm/docs/longest-common-prefix.md)
- [两个数组的交集](algorithm/docs/array-intersection.md)
- [最接近的三数之和](algorithm/docs/3sum-closest.md)
- [从字符串中解析最大数字](algorithm/0001.md)

### 排序算法

- [冒泡排序](algorithm/docs/bubble-sort.md)
- [选择排序](algorithm/docs/selection-sort.md)
- [链表常见算法](algorithm/list/README.md)

## 大模型基础

- [常见基础大模型知识面试题](llm/llm.md)

## Elasticsearch 场景面试题及解析

- [ES数据倾斜如何解决？](./001.md)

## 架构设计

- [设计一个关注人和被关注人的场景，怎么更合理更快的查询？](./architecture/0001.md)
- [详细解释下 Kafka 消费的顺序的原理。](./architecture/0002.md)
- [对一个电商平台来说突然的秒杀场景，如何进行库存扣减。](./architecture/0003.md)
- [Redis缓存和MySQL数据如何做到一致性？](./architecture/0004.md)
- [一个定时调度系统，如何进行准时的触发。](./architecture/0005.md)
- [对商品拆分库存行后，现在 1 单要买 2 个商品，这两个库存分别在 2 个库存行怎么处理?](./architecture/0006.md)
- [面试题：如果你是架构师，如何保证系统的可用性？](./architecture/0007.md)
- [IO 多路复用是什么？多路是什么？复用了什么？](./architecture/0008.md)
- [面试题：怎么理解可观测性（Observability）？](./architecture/0009.md)
- [短链接唯一 ID 设计这块挑战是什么？](./architecture/0010.md)
- [讲一下 Trace 的数据模型，什么是 Span，Trace ID 和 Span ID 是怎么设计的？](./architecture/0011.md)
- [Metrics 的数据模型有了解吗？](./architecture/0012.md)
- [LSM-Tree 和 B+ Tree 的本质区别是什么？](./architecture/0013.md)