字节三面面经

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

相关推荐

19 126 评论
分享
牛客网
牛客企业服务