字节跳动后端实习

一面

面试官是个小姐姐,nice

1.自我介绍

2.扒项目

主要工作,遇到的困难

一些细节问题,改进方案

3.go 垃圾回收

不太熟,大概描述了一下,提了一嘴 Python(简历上写了熟悉 Python),小姐姐说没关系,说下 Python 是怎么做的

4.hashmap(说了 go 的 map 和 redis 的 hash 结构)

5.redis rehash 过程

6.rehash 过程中添加数据,查询数据怎么办?(就是问渐进式 rehash,刚好没看到,瞎猜了半天)

7.hash 冲突用的什么方法解决的?查询时间?最坏时间?

8.你说链地址法冲突到一条链上会退化成 O(n),它不好为什么要用?为什么不用其他的?

没太明白她的意思,我只是说最坏情况可没说它不好。。然后只能说它们各有优缺点吧,应该再说一下链地址法的主要优势的

9.一道没见过的算法题

给出一个分子式,比如:HMg2(H2ON3)3N2,计算这个分子式中每个原子出现了多少次,输出一个map,比如上面的分子式中:map[string]int {"H": 7, "Mg": 2,"O": 3, ...}

1.都以大写字母开头,后面跟 0 个或者 1 个小写字母,比如 Mg, H

2.单个原子后面跟 0 个或者 1 个数字表示它出现的次数,比如 Mg2 表示 Mg 出现 2 次,数字范围 2-9

3.分子式中可能有括号,括号后面可能跟 0 个或者 1 个数字表示整个括号内的原子出现的次数,比如 (N3Ag)2 表示 N出现 6 次,Ag 出现 2 次 4. 括号可以嵌套

4.输入是合法的

上来就遇到这么长的题让我很慌,加上之前 redis 被问到不会,这里感觉都要停止思考了。。看了半天说想办法从后往前把数字乘进去去掉括号再处理,问她思路有没有问题,得到肯定回答才松了一口气,然后说了下具体方法,理清之后面试官把括号去掉了,然后说时间不够了写下简化版代码吧

10.反问

算法题写了有二三十分钟,感觉要凉了,没想到结束时面试官说先别走啊,我去喊一下二面面试官,瞬间复活

二面

逐渐有状态了,二面还算轻松,全程在线,当时感觉过挺快,回头一听才发现问了这么多问题

1.gmp

2.协程的优势

3.进程线程区别

4.进程地址空间有哪些划分

5.进程间通信

6.共享内存是怎么回事?映射到实际物理内存的虚拟地址在地址空间的哪一部分(我猜在堆区)

7.虚拟内存

8.页面置换算法(说了局部算法和全局算法)

9.LRU 实现思路

10.mysql 引擎,它们的区别

11.innodb 辅助索引为什么存主键 id,回表不是要浪费时间?

12.b+ 树索引优势

13.acid

14.隔离级别,可重读是怎么实现的?幻读是怎么回事?间隙锁知道不?

15.读写锁互斥关系,其他分类的锁

16.我看你项目用到了 redis 具体用到了哪些数据结构?(string,hash,zset)

17.zset 实现,跳表是怎么回事?高度?时间复杂度?为什么不用 b+ 树?

18.redis 是单进程还是多进程?

19.扒项目(另一个爬虫项目)

代理服务的默认端口?(第一次听说代理还有默认端口)

页面解析用的什么?

爬虫比较困难的场景?

纯js渲染的页面怎么爬?

20.(第一个项目)压测怎么做的?其他一些可以优化的点

21.力扣原题,舒服:力扣33. 搜索旋转排序数组

22.反问

二面面试官超级 nice,各种引导,问到我不会了就说ok没问题,全程给我信心,越面越顺

三面

1.扒项目(收获什么的)

2.我看你项目用了 mongodb,mongodb 存储索引知道吗?和 mysql 比有哪些优势?(回答 mongodb 并不熟,只是毕设想用用新东西,优点就知道非结构化扩展容易,速度快)

3.MySQL存储引擎

4.项目用到了 redis 哪些结构(zset,hash),说一说底层实现

5.zset 除了跳表+hash表外还有其他实现吗?

才想起来数据量较小时会用压缩列表实现

又问压缩列表实现的主要目的,答节省内存

6.进程通信方式

7.io多路复用的几种方法(不熟,就提了下名字)

8.cookie session

9.拥塞控制

10.力扣原题,舒服:力扣15. 三数之和

三面面试官应该是某个部门老大,面相和蔼,问了30分钟就结束了,有点慌,没想到结束后10分钟hr就发来微信约hr面了

四面

最后一个个面试就是HR面试,主要就是聊天,实习生都没啥好问的。

好了,今天就分享到这里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值