golang总结(面试前自己需要过一遍的,且此文持续更新总结)
一、
1. http 和 https 的区别
2. 短链接和长连接区别是什么
3. TCP 和 UDP 区别
4. 第二层的协议有什么?
5. http keepalive
6. tcp滑动窗口
7. http2和http1的区别
8. http2和http1的区别
9.
10. 粘包拆包是什么,发生在哪一层
11. 心跳检测如何实现
12.
13. 协程池怎么实现的
14. 网络拥塞状态下TCP数据传输,从流量控制角度聊聊
15. udp有发送长度限制吗?
16. http缓存
17. TCP可靠机制
18. TCP的半连接了解吗?
19. cookie和session有什么区别?
20. 对称加密和非对称加密?
21. DNS解析的过程?域名服务器怎么解析?
22. 为什么要等待2MSL
23. 应用层协议了解哪些
24. 传输层协议了解哪些
25. TCP为什么是三次握手,两次不行 ?
26.
二、
1. 进程和协程区别,具体到上下文切换,哪些资源共享哪些不共享
2. 内核态和用户态的区别
3. io多路复用
4. 介绍一下epoll
5. epoll的边沿触发水平触发?
6. 协程和线程、进程的联系?
7. 进程中一个线程中出现问题会影响到进程吗?
8. fork一个子进程?父进程垮掉了会影响子进程吗?父进程获取不到子进程的id会怎么样?父进程会等待子进程运行完毕吗
9. 子进程垮掉会影响父进程吗?然后问到了孤儿进程和僵尸进程?
10. 协程相对于线程,具体的优势在哪里,具体说一说
11. CPU从一个线程切换到另一个线程会发生什么
12。
三、
1. go的包管理
2. make和new 的一些区别
3. channel 是可以被 close 的,之后还可以读写吗?
4. channel有什么用
5. map并发安全吗?为什么
6. 子goroutine的panic会不会被父g捕获
7. gc的了解
8. 内存泄漏
9. 怎么样输出一个有序的map
10. map在传参时的类型
11. gmp模型(局部饥饿、全局饥饿、全局缓存队列等)
12. slice深度拷贝
13. interface{}怎么用
14. 说一下go的继承
15. 可以直接对map取地址吗?
16. go中哪些变量是不能比较的。
17. slice和数组有什么区别?
18. slice如何扩容?
19. 往一个关闭的channel里面读数据和写数据会发生什么?
20. golang强类型,弱类型?
21. golang并发控制?
22. map并发读写问题?
23. sync.Map如何解决并发问题?
24. Sync包mutex实现?
25. 一个go-routine最小占多大内存空间?
26. context类型有哪些?Context的作用是什么?context如何实现cancel的?
27. defer的先后顺序
28. select?
四、
1. innodb 的一些特点
2. 你还知道一些其他引擎吗
3. MySQL 的索引有哪几种
4. MySQL 的事务有了解吗
5. 你可以给我介绍一下这几个日志(undolog,redolog)和 MVCC 吗?
6. MySQL 中有哪几种锁?
7. 你知道这几种锁的一些区别吗?
8. 索引是越多越好么?
9. 怎么防止sql注入的
10. mysql的联合索引,范围查询,模糊查询一定失效吗?
11. MySQL的常见索引类型有哪些?
12. 什么是聚簇索引?什么是非聚簇索引?
13. 一般选择什么样的字段来建立索引?
14. 索引的目的是什么?
15. 什么情况会影响,降低索引的查询效率?
16. 建立了索引,查询的时候一定会用到索引吗?
17. 什么情况下使用联合索引?
18. B树除了不能满足范围查找的需求外还有哪些缺点呢?
19. 主键索引和唯一索引的区别
20. mysql两种存储引擎的区别和应用场景
21. 什么是事务,特性?
22. 隔离级别?
23. B+树插入分裂的操作是怎么样的
24. 组合索引为什么要最左匹配
25. 组合索引为什么要最左匹配
26. 红黑树特点,和二叉查找树区别
27. B+树和B树区别,mysql为什么不使用B树
28. 为什么不建议使用select *
29. mysql索引优化有了解吗 怎么优化查询
30. channel 了解吗,使用场景?并发安全吗?
五、
1. redis使用的协议
2. 说一下五种redis数据结构和之间的实现方式以及使用场景
3. redis的可持久化机制
4. redis实现分布式锁的设计
5. redis 缓存雪崩、击穿、穿透
6. bitmap的应用场景有哪些
7. 如果已经发生缓存雪崩,如果服务器也被搞崩溃了,我们怎么恢复网页。(重启服务器之后,先进行限流,等redis重新建立缓存之后,在解除限流。限流方式为令牌桶)
8. redis本身是单线程嘛?
9. redis分布式部署模式?集群模式?哨兵模式原理?
10. redis为什么单线程会快
11.
六、
1. 你是怎么使用 Cron 这个定时任务的?
2. 你是怎么使用 redis 的
3. gorm 有遇到一些坑吗?
4. kafka怎么用的,如何确保消息不丢失。
5. docker和虚拟机有什么区别?
6. 令牌桶算法原理?
7. 如何防止token被篡改?
8. 雪花算法生成用户ID原理,仔细说说。你觉得和mysql中自增的ID有什么优势。
9. 基于Jwt的token如何实现
10.
七、
1. 冒泡排序和快速排序的时间复杂度是怎样的?
2. 堆排序是不是稳定的?
3. 稳定的排序算法有哪些?
4. 手写快排
5. 前缀树实现
6. 股票买卖问题(如果限制交易数量)
7. 给定二叉树中序遍历和后续两个数组,求其前序遍历 (讲一下思路,给出答案)
8. 重建二叉树
八、
(使用场景?原理?)
1.单例模式?
2. 迭代器模式?
3. 策略模式?
4. 观察者模式?
九、
1. Liunx查询哪个CPU占用最大的指令
2. Linux命令查找一个文件的命令
3. 查看本地工作目录的命令