分享一下最近的面试笔记

又是一年金三银四的季节,我又开始了一年的找工作任务,今年形势感觉也不好,找了两周,投了有十来家,目前手上就两个offer。面试的过程是痛苦的,但也是一个学习的过程。通过这么多轮面试下来,我大概整理了一下面试的各个点,现在分享给大家。

回忆起来面试中问什么就写什么,大家也不要纠结。OK!

go篇

  • channel(必问)
    channel实现原理,底层实现结构,讲讲怎么优雅的关闭一个channel。channel有哪些应用,什么情况下channel会造成内存泄露?
  • map (必问)
    map的底层实现,什么情况下会扩容,怎么扩容?是线程安全的吗?那sync包中的map是怎么实现线程安全的?
  • context
    这个一般只会问问context包的作用,还有一个碰到很少见的问题,context.Value查找的过程是什么?
  • gmp
    这都背不下来,转行吧。
  • gc
    背不下来,提桶跑路吧。插一句,这个有的公司喜欢问各个版本stw的时机都是什么。
  • 反射
    这个我之前都没怎么看,毕竟工作中基本没怎么用,但是问的很多,我也不知道是不是面试官脑子有坑。
  • 内存管理
    这个我一直都没背下来,我承认了,我是废物。。
  • 内存逃逸
    这个问的相对少点。但是也保不齐有人会问。
  • 杂项
    数组和切片区别,make和new区别。进程、协程、线程区别。

mysql篇

  • mysql索引(必问)
    包括索引的类型,索引的数据结果,b+树和hash的区别,b+树和b树的区别,索引创建原则。最左原则,聚簇索引,前缀索引等等。
  • mysql事务 (必问)
    包括事务隔离级别,各个隔离界别解决的问题,mvvc的原理等。
  • mysql锁 (必问)
    行锁,表锁,悲观锁啊,乐观锁啊,排它锁,共享锁,间隙锁,范围锁,临键锁,两阶段锁,死锁的原因,事务中各个隔离级别用的锁的类型已经怎么用的锁。
  • mysql数据类型 (常问)
    mysql有哪些数据类型,varchar与char的区别。int和int(11)区别,tinyint与int区别等等。
  • mysql日志
    这个一般看面试官吧,我就碰到过一次,binlog日志的类型有几种,各有什么优缺点,以及一般怎么设置。undolog,redolog,为什么有binlog了还要redolog,两者有什么区别以及两者生成的时机。
  • mysql架构方面
    mysql高可用怎么部署,mysql读写分离原理是什么,主从同步慢怎么解决。如果大批量的删除一堆数据,怎么快速释放内存?delete删除会立刻释放内存吗?truncate和drop呢?
  • mysql问题排查方面
    有没有使用过慢查询,以及怎么解决慢查询,数据量比较大,查询比较慢,你怎么解决的,一般看mysql的执行计划,都看哪些参数,以及参数的含义是什么。

redis篇

  • redis数据类型 (必问)
    redis常用数据类型,以及使用场景等等。各数据类型的底层数据结构是什么?比如zset底层实现是跳跃表(skiplist),讲讲skiplist为什么这么快。
  • redis的架构 (必问)
    这个一般问的是redis为什么这么快,除了基于内存操作,还有什么其他原因。redis是单线程还是多线程?那部分是单线程,那部分是多线程?redis的线程模型(这个问题贼爱问)。
  • redis内存持久化
    为什么要持久化?持久化机制、持久化方式是什么,各有什么优缺点。怎么选择合适的持久化方式,有没有了解过混合持久化?
  • redis内存淘汰策略
    这个看面试官吧,我只碰到过一次。
  • redis事务和管道
    这个大概说说就行了,区别不太大,一个是在客户端打包,一个是在服务端打包而已。
  • redis的集群方案 (高频面试点)
    这个最爱问了,主从,哨兵,分片(分为客户端和服务端分片)。
  • 缓存异常解决
    缓存穿透、缓存击穿、缓存雪崩解决方式。
  • 缓存一致性
    怎么保证redis和mysql的数据一致性,这个各抒己见吧,可以看看B站的毛剑有次的分享,专门讲了怎么解决缓存一致性的问题。
  • 杂项
    因为我之前做过一个高并发项目,所以一般爱问分布式锁的实现,还有redis的队列和专业的mq区别,有没有了解redis的red lock以及redis的stream能不能作为专业的mq,为什么?大批量的删除redis中的key,会有什么问题,怎么解决?redis怎么实现延时队列,怎么实现异步队列。布隆过滤器了解过吗?

mq篇

说实话,我没用过mq,如果可以的话,我只用过redis的消息队列,这算不算也是用过mq了?但是!架不住我背的多啊,我给kafka课程看了一遍,然后背了好多面试题,虽然回答的磕磕盼盼,但是总比说我没用过强。哈哈。
大概就问了一些简单的问题,有的公司可能都不会问mq。现在整理一下:
isr osr ar hw leo 都代表着什么,kafka的整体架构大概说一下。分区的作用,分区的实现是怎么实现的?分区器、序列化器、拦截器了解不?重复消费和漏消费,客户端和服务端都是怎么解决的?kafka为什么性能这么好,怎么实现的,大概说说。

微服务篇

说实话,现在除了面的大厂问的微服务比较深以外,我面的小厂基本都没问这块,所以,大家伙不要慌,可以不会,但是需要了解,你目前需要了解的包括但不限于以下我被问过的问题:

  • 什么是微服务
  • 怎么划分服务(给DDD那一套给他背出来!!)
  • 服务治理(包括但不限于:限流,熔断、负载、监控、鉴权、服务发现和注册等等)
  • rpc
  • protobuf编码为什么这么高效?和json比较呢?
  • gateway
本帖已被设为精华帖!
本帖由系统于 4个月前 自动加精
讨论数量: 21
╰ゝSakura

hxd,你面哪里的

4个月前 评论
ezreal_rao (楼主) 4个月前
Luson

:+1:顺带答案就更好了

4个月前 评论
ezreal_rao (楼主) 4个月前

感觉好难啊,这些都会回答的话能拿多少k?

4个月前 评论
晴空 4个月前
ezreal_rao (楼主) 4个月前
Aliliin 4个月前
ezreal_rao (楼主) 4个月前
Aliliin 4个月前
DPeng 3周前

帖主行情分析师 :see_no_evil: 半年试探一次行情

4个月前 评论
ezreal_rao (楼主) 4个月前

gmp是啥 ,刚学go :joy:

4个月前 评论
Lichmaker 3个月前

感谢分享~ 赶紧查缺补漏了

3个月前 评论

感谢楼主分享, 我是新手, 麻烦问下这些问题去哪找比较权威的答案呢?

3周前 评论
TommyTMH 1周前

谢谢楼主,查缺补漏了

3周前 评论

感谢楼主, 背起来

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!