字节三面面经

字节Java后端面经 一、二、三(10.31更新 已意向书)

10.30 
中间催了一次hr,10.30晚上十点多给的意向书,hr最近蛮辛苦的。

10.29 
催了两次安排面试的hr,10.29下午hr打电话了解情况,应该就是hr面了,要了身份证说两天内发意向书。


一面 10.19 50min 半小时后约第二天二面

1、算法:二叉树中和为某一值的路径

2、SQL:tab表,两列,start_time,end_time,查找开始时间与结束时间的区间与[1,10]相交的记录

一开始用了or,面试官问,or的作用范围;然后改成了union,面试官问,怎么处理union中的重复记录,以及union和or的优缺点。

追问:怎么加索引?如果再多两个字段,并且也要查询到,又该怎么加?

3、MySQL索引原理

4、HashMap和ConcurrentHashMap的区别,说了1.8的区别,主要是synchronized+cas,然后扩容操作两者的底层源码的区别。

5、GC中,CMS和G1的区别,详细说了各自的流程(有一些细节,比如写屏障、增量、三色标记、卡表)

6、synchronized和lock的区别,结合具体的实现和源码,比如MonitorObject,wait_set,entry_list,owner用于可重入等等。

一面总结:一面基本不关心项目,全是基础,基础也很常见,但是很深,抄底了,算法还比较简单,sql也不算难,但是需要考虑全情况,以及如何考虑延伸出的问题。以上是主要的感觉比较有借鉴意义的,不是很重要的就没列。

二面 10.20 50min 一小时后约第二天三面

1、实习相关,实习的做的东西一定要搞懂,一定要跟基础联系到一起,自洽。

2、学校项目,做的比较偏,Opentsdb,Opentsdb的底层,引出hbase,再引出nosql,再引出mysql。

3、MySQL查询慢:从SQL语句角度;从表设计角度;从系统架构角度,抄底。

4、项目引出消息队列和Redis,主要问Redis。

5、Redis是单进程单线程的,什么时候会有两个进程?bgsave的时候,fork。

6、fork的时候父子进程对内存的使用?结合新旧Linux版本说的,旧版本双倍内存,新版本写时复制,以及如何处理等等。

7、概率题:一个骰子,怎么等概率地从9个人中选出两个人。

方案一:一个一个选,可以,但是面试官想要更好的

方案二:一次选出两个,get到面试官的点了

8、算法:最长公共子串,不是最长公共子序列,但是想法类似,一开始暴力,然后用DP优化。

9、之前你聊过两次,都是二面挂,你觉得挂在哪里了?以为只是聊天,疯狂自黑。记得哪些题目把你难到了吗?不记得了?那让我来查一下你的面试记录。

10、那好,我看以前你这SQL不会,让你做个类似的:

学生表:学号、姓名

成绩表:学号、课程、成绩

找出挂科两门的学生的信息

二面总结:二面开始考察项目,做延伸。建议简历中写到的东西都的会,分重点主次进行准备,但是至少得会第一层次,常考的知识点得学到第二层次。开始出现智力题,投了三次字节,一般都会遇到智力题。SQL必须掌握。以上是主要的感觉比较有借鉴意义的,不是很重要的就没列。

三面 10.21 1h10min 无消息,心凉

1、实习

2、项目,选型

3、Https,对称加密和非对称加密,为什么要这样做,为什么用对称加密

4、以下代码有什么问题?

    List<String> userNames = new ArrayList<String>() {{   add("BMW");   add("BENZ");   add("ford");   add("AUDI");   }};   for (String userName : userNames) {   if (userName.equals("ford")) {   userNames.remove("ford");   }  } 

5、为什么会出现这个问题?ArrayList源码,remove,iterator,modCount,expectedModCount,有点忘记了,讨论了一下搞定了。
解答:集合类通病,同步修改问题。

6、Token,token的实现,生成,存储了什么,如何设置过期时间,客户端还是服务端设置,客户端能知道token里面存的什么吗,如果客户端想知道里面存的信息呢。token的报文既然加密了,为什么还要用签名做验证呢,token和cookie+session的区别?
7、算法:判断一个数组可不可以被分成两个和一样的子数组,lc好像是原题,没刷到,背包问题。用二维dp,要求优化,优化成一维,时间复杂度不变。
一系列问题,答得有点乱,有点凌乱,学的太浅了。

8、赛马:64匹马,8个赛道,决出前四,最少比赛几次?

答:11次;面试官要求优化一些条件,在10次内比完,有点懵,憋了很久,讨论了一会儿,没搞定,面试官说先这样吧。心凉。

总结:三面就是天马行空了,什么都有可能问到,感觉学识和智力被碾压。这一面考察的东西可能是深度基础+应变能力+技术,稍微有点凉。


一共投了三次,前两次二面挂,第三次到了三面,虽然很艰辛,但是的确学到了很多。最后许愿一个意向吧,不然春招还得来打扰字节的大哥们。



#面经##校招##字节跳动##Java工程师#
全部评论
已经二面可能差不多通过了,许愿三面
2 回复 分享
发布于 2021-09-02 15:20
那个代码运行不报错,但是会跳过遍历“AUDI”
1 回复 分享
发布于 2020-10-23 09:08
啥部门啊
1 回复 分享
发布于 2020-10-22 17:39
第二题的sql代码是什么呀,直接使用where加条件判断行吗
1 回复 分享
发布于 2020-10-22 14:53
秋招还是实习啊
1 回复 分享
发布于 2020-10-22 11:19
给我许愿一波携程😘
1 回复 分享
发布于 2020-10-22 11:18
4的代码是不会报错的,remove倒数第二个元素,迭代器结构已经被破坏了,不会抛出并发修改异常,但是会跳过最后一个元素。
点赞 回复 分享
发布于 2020-10-23 10:58
楼主饿 二面第6题 怎么答呢 考的是Linux嘛
点赞 回复 分享
发布于 2020-10-23 09:36
楼主能分享下学习路线吗😂
点赞 回复 分享
发布于 2020-10-23 08:38
厉害,要面你这些,我肯定挂了。。。感觉我的好简单
点赞 回复 分享
发布于 2020-10-23 00:57
楼主优秀
点赞 回复 分享
发布于 2020-10-22 20:19
我二面感觉凉了 没收到约三面😞
点赞 回复 分享
发布于 2020-10-22 20:19
许愿HR面,刚面完三面
点赞 回复 分享
发布于 2020-10-22 19:58
商业变现是吧
点赞 回复 分享
发布于 2020-10-22 17:36
投骰子是啥意思啊 没看懂
点赞 回复 分享
发布于 2020-10-22 16:24

相关推荐

一面:几乎都是项目方面讨论,一道手撕,反问面试官很友善,更像是探讨的方式进行问答,他输出似乎更多一些,最后也给了一些学习上意见-&nbsp;CMU-15445&nbsp;项目:-&nbsp;为什么是一个读快写慢的,了解过&nbsp;RocksDB吗,LSM&nbsp;Tree&nbsp;如何存储的-&nbsp;缓存池管理器维护哪些数据(页表,空帧链表...)-&nbsp;替换策略,ARC&nbsp;基于何种假设而效果好(说是顺序扫描&nbsp;LRU差),探讨了下&nbsp;LRU&nbsp;是更适合&nbsp;28定律热点数据-&nbsp;索引是怎么存储的,页面结构怎么样-&nbsp;支持事务吗,undolog&nbsp;如何实现,redolog&nbsp;如何存储-&nbsp;redis&nbsp;数据结构有哪些,zset&nbsp;如何实现-&nbsp;MQ了解吗,kafka&nbsp;怎么保证高可用-&nbsp;设计题:数据库和缓存同步相关的,忘记了,大概是说先删除数据库数据,如何通知到&nbsp;redis-&nbsp;手撕:最小的&nbsp;k&nbsp;个数,手写堆二面:自我介绍,纯粹八股,没有问任何项目,一道手撕,时间原因不进行反问-&nbsp;僵尸进程(父进程未回收已结束的子进程)、孤儿进程(父进程先退出)是什么-&nbsp;Kill&nbsp;-9&nbsp;(SIGKILL&nbsp;不能被捕获和忽略)若无法杀死另一个进程为什么(无权限)-&nbsp;若进程持续高&nbsp;CPU&nbsp;占用,如何排查-&nbsp;MySQL&nbsp;慢查询如何优化,给的建表语句和SQL,只有主键索引,还有&nbsp;order&nbsp;by,联合索引;如果索引后还是慢,如上亿数据,分库分表;-&nbsp;设计题:设计一个高并发文件上传服务-&nbsp;1.&nbsp;传输协议怎么选择?TCP&nbsp;和&nbsp;UDP&nbsp;区别,UDP&nbsp;优势是什么,TCP&nbsp;如何建立连接,若使用&nbsp;UDP&nbsp;,如何在应用层支持可靠性-&nbsp;2.&nbsp;应用层方面协议怎么设计,交换什么信息-&nbsp;3.&nbsp;高并发连接,I/O&nbsp;多路复用-&nbsp;4.&nbsp;大文件、传输失败,并发分片上传、断点续传-&nbsp;手撕,给定一棵&nbsp;N个节点的树,给定一个长为&nbsp;N&nbsp;的数组,判断该数组序列是否是这棵树的一个&nbsp;BFS&nbsp;遍历序列&nbsp;(以数组第一个元素为起点进行&nbsp;BFS,记录访问到的节点,BFS每过一层再去检查给定序列对应几个是否能访问到)答得不好,手撕有个很愚蠢错误一直没看出来,应该凉凉,任重道远
查看19道真题和解析
点赞 评论 收藏
分享
评论
20
129
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务