字节跳动日常实习七面面经
A部门 base:杭州
一面:(面试官很年轻,贼帅~)
1.为什么投杭州?我说朝代之中最喜欢宋朝,他说他也是哈哈哈
2.讲一下ArrayList和LinkedList
3.讲一下hashmap的扩容
4.扩容当中存不存在Node数组当中所有节点都转化为红黑树?
5.mysql 联合索引,写了一些sql语句让我判断走不走索引,走哪些索引
6.redis数据结构 讲一下简单动态字符串
7.redis过期键删除策略,过期键删除过程中是否会阻塞,删除完成的标志是什么?定期删除间隔的时间具体是多少?
8.redis的qps是多少?
9.讲一下Java的锁
10.cas具体原理
11.ABA问题如何解决
12.讲一下ReentrantLock
13.可重入具体如何实现
14.智力题:一个5升的杯子,一个3升的杯子,如何取4升的水
15.讲一下mysql的索引
算法:求两个字符串的最长公共子串
(还问了一些问题,时间太长我忘了。。。)
反问:我问部门用什么语言,他说用Go
二面:
1.项目相关
2.一个人给另一个人转账100,这个过程你要考虑什么?
3.这个过程会不会出现死锁?为什么?
4.讲一下Java锁的升级机制
5.平衡二叉树的特点
6.红黑树和平衡二叉树的对比
7.讲一下volatile
8.刚才你提到内存屏障,内存屏障如何实现?
9.虚拟内存了解吗?讲一下?
10.为什么会有多级页表?
11.死锁讲一下?
12.如何预防死锁?
13.银行家算法讲一下?
14.LRU了解嘛?讲一下实现思路?
15.你刚才说要用到hasmap,map的key是什么?value是什么?
16.一个一百万的数组,要求最大的k个,如何更好更快的求?
17.如何学技术的?
18.以后的计划是什么?
算法:重排链表
反问:我问他对我有什么建议?
三面:
1.项目相关
2.还是转账,你要考虑什么?
3.事务如何开启
4.讲一下redisson的实现原理
5.算法:两个有序数组求第K小(要求时间复杂度logn)
(还有一些问题,没有录音也想不起来了。。)
反问:部门做什么业务?对我有什么建议?
B部门 base:北京
-
自我介绍一下,重点突出你和别人比的优势在哪里,你来这个实习想要收获什么?
-
算法:无重复字符的最长子串
-
讲一下jwt
-
我给你一个加密后的jwt,不给你密钥,你如何获取被加密的数据?(我内心:what fuck?)
-
单点登录?
-
不用redisson,你用redis如何实现分布式锁
-
你项目中写到用rabbitmq保证数据一致性,具体是如何保证的
-
sql:给我一个场景,让我判断如何建立索引
-
其他的也忘了。。这次感觉面试怪怪的
10.反问:对我的评价
C部门 base:北京
一面:(视频面试他不露脸,我血亏hhhh)
-
作为hashmap的key有什么条件?
-
在浏览器上输入一个www.baidu.com,会发生什么?
-
这个过程具体是如何获取到html文件,最后渲染页面的?
-
get请求和post请求的对比?
-
除了安全和幂等呢?
-
还是浏览器输入网址那个问题,ip地址是通过dns获取,那端口号是怎么获取的?
-
讲一下DMA技术?
-
讲一下虚拟内存?他的特点是什么?作用是什么?
-
进程和线程的区别?
10.Java如何创建进程?
11.进程间通信的方式?线程间通信的方式?
12.讲一下mysql的索引?为什么用B+树
13.讲一下mysql的引擎,myisam和innodb的区别是什么?
14.http是由什么组成的?
15.http和https的区别?
16.redis的map的底层编码是什么?为什么会有两种?什么时候用哪一种?
算法:医院叫号,不管病人什么时候来都要按照从小到大的顺序叫号,先让我说思路,我说小根堆,他说好,你写吧,不能用优先级队列哇,我想那就是堆排呗~
反问:部门是用Java嘛?我哪里需要继续改进?
二面:(一面后五分钟约二面,我说明天就可,她说现在不行嘛?,我直接上飞书跟面试官对线)
-
项目相关
-
限流和削峰的具体区别?
-
你这个项目的系统如何设计?
-
并发、并行、异步 讲一下
-
项目中异步的场景讲一下
-
你刚才介绍项目说用死信队列保证库存和订单的一致性,那要是把他俩放一个库里不就行了,一个事务不就能解决?
-
说一下对架构的思考?
-
你刚才说用gateway和nginx做负载均衡,你项目中为什么没用?(我说机器不够,只有一个电脑23333)
-
你刚才说项目用信号量做了一个限流,为什么要限流呢?这个逻辑放到业务层不行嘛?
-
信号量具体是如何做的?
-
浏览器放一个网址,具体过程是什么?
-
mysql的索引,hash,B树,B+树的区别
-
你刚才说mysql从磁盘读数据是以页为单位的,那一行数据假如2kb,有一千万行,需要从磁盘读几次?
-
再问一下并发,volatile和synchronized各保证了什么?
-
你刚才提到互斥和同步,他俩啥关系?
(还有一些,也忘了,面试官很好很nice)
算法:括号生成,我说回溯,他让我讲一下思路,然后说可以,又在题目后边加了个不让用递归,我。。。看来只能bfs了
没有反问,让我等hr通知面试结果
三面
1.项目相关,问了好多,得有20分钟
2.本地缓存那里一致揪着我不放,一直问到我不会
3.缓存击穿和缓存穿透的区别
4.刚才你提到解决缓存穿透可以用布隆过滤器,讲一下?
5.为什么要用redisson,而不用redis实现分布式锁
6.consul了解吗,我没听说过,他说部门就是用的这个注册中心
7.dubbo讲一下,我不会~
6.sql题
感受