关于go:噢耶字节后端Offer拿到了

40次阅读

共计 1580 个字符,预计需要花费 4 分钟才能阅读完成。

很多同学反馈多搞点面经,说来就来!

明天分享一位拿到字节跳动实习 Offer 的面经,没错,Java 转 Go

别问我选 Java 还是选 Go,成年人不做选择题。先搞定一个语言,再学第二语言从来不是难事。

无论学哪个,你要做的事件是先学起来:想都是问题,学才有答案!

面经分享

本文没有依照一面、二面、三面流水账的模式整顿。

而是把面试中碰到的问题,按品种划分汇总:算法题、数据结构、操作系统、数据库、缓存、计网、场景题等等,这样对大家应该更有帮忙!

一、算法题:

  1. 给定一个字符串 abcdabgh,给个字符 a,随机返回 a 下标,比方这个是 0 4。要求返回的概率必须一样,空间复杂度要求 O1 即不能开任何空间存储下标,并且只能遍历一次。
  2. 给定 n 个骰子,和为 k 的概率,不能用回溯。
  3. 给一个数字比方 234,给个数组比方{2,3,7},找出第一个不大于 234 的数,比方这个是 233,有几种状况我记得是,这里用到了有序表我写的时候。

二、八股文

不全,比较简单的我就没整顿了 …

数据结构:

  1. 堆和树的区别?利用场景?
  2. 二叉搜寻树是什么?

操作系统:

  1. 过程之间的通信形式?写个死锁?怎么解决?
  2. 操作系统内存满了怎么办?如何回收?有什么影响?
  3. 什么是僵尸过程?应该怎么去操作?
  4. 为什么会有线程平安的问题,如何解决?
  5. 说一下乐观锁和乐观锁?说一下 CAS?aba 问题是什么?如何解决?

MySQL:

  1. 索引形成?(B+ 树)索引优化?给个 sql 让判断走索引的状况?
  2. 什么是慢 sql,如何查找,如何优化?
  3. 三大日志,我记得如同有个问题是 redolog 写进去了,然而有个 bin log 没写进去该怎么办?(具体的我忘了,我没答复好)讲 write 还有 flush 区别?redo log 刷盘机会?三大日志的执行程序?
  4. mysql 的事务隔离级别?各自解决了什么问题?mvcc 的流程

Redis:

  1. 问了 zset 的底层?为什么不必红黑树?(这是我本人引得,我傻了本人说了一句没用红黑树,用的是跳表)
  2. redis 外面的命令行比方 setnx 和 setex 还有 zset 外面的
  3. redis 的 key 有大小的限度吗?有什么影响?怎么办?
  4. redis 的内存淘汰策略?(面试的时候始终想不起来 始终背了半天旁路缓存那些货色 我认为凉了的)
  5. 依据 score 查 member 的工夫复杂度?反过来依据 member 查 score 工夫复杂度?

计算机网络:

  1. http 常见的办法和状态码有哪些?
  2. 502 是什么谬误?如何排查问题?
  3. 讲一下反向代理?

场景设计:

  1. 敏感词库的设计,要求增删改查敏感词。敏感词文本匹配,敏感词一万个,文本长度 20-10000 这样子。
  2. trie 树什么的都答复了,开什么几个线程这样子,我也是各种瞎说,前面问我在这外面怎么存储长久化,给出办法,redis 外面存储如果宕机了怎么办有个节点?这一块真的虚,我也不晓得怎么办,感觉面试官很厉害,我给的计划他如同都否定了,说我的计划一天宕机几分钟怎么可能行?

三、我的项目和实习

也有一些闲聊没有写进来 …

  1. 微信扫码登录流程?前面的原理你理解吗?(筹备了很久的 Oauth2 总算碰到了开心)csrf 是什么?怎么解决的?
  2. 我的项目难点(之前登录日志是同步写入库的 起初为了晋升效率退出了队列 先写队列后生产入库 做解耦 然而队列用了同步操作 有一次 mq 挂了 导致登录服务不可用 这种是不可承受的 记日志不能影响登录 所以将其改为了异步形式)
  3. 订单 30 分钟勾销,延时音讯这里(这个是我本人引申的,我包装了一下,我把 mq 的 18 个队列讲了一下,也讲了一下 kafka 的工夫轮)
  4. 你实习用的什么语言?go 的协程外面呈现 panic 怎么办?defer 讲一下?gmp 模型理解吗?

一起提高

独行难,众行易,如果你想 和咱们一起组队学 Go,欢送退出咱们的小圈子,一起刻意练习,结伴成长!

微信号:wangzhongyang1993

公众号:程序员升职加薪之旅

也欢送大家 关注我的账号 ,点赞、留言、转发。 你的反对,是我更文的最大能源!

正文完
 0