字节提前批飞书Java三+四面面经(已意向)

三面(8.7 1h):面试官全程乐呵呵的,看起来就是大佬风范,呜呜呜...
  1. 简单自我介绍一下
  2. 讲讲你的项目(让我讲了15min....)
  3. 死锁的条件(互斥,占有和等待,不可抢占,环路等待,并讲了如何预防)
  4. 说的特别好,哲学家进餐问题了解吗?(n个哲学家,n只筷子 ...)
  5. 哲学家进餐问题,怎么破坏死锁?选择哪个条件破坏?(如果是占有和等待,就让哲学家一次性拿两个筷子,封装成原子性操作,否则就不拿。如果是不可抢占,就让哲学家持有筷子时设置一个过期时间,拿不到就释放。如果是环路等待,就给筷子编号)
  6. 破坏环路等待这个条件会有什么问题?(一时间没反应过来,支支吾吾)我建议你写一下(我都不知道写啥,随便划了几笔,然后说没get到意思),就是比如说哲学家1拿[1,2],哲学家2拿[2,3],会有什么问题?(噢,原来是这个意思,最后在纸上划了下说哲学家5会拿[5,1],即使给筷子编号后还是循环了)这个问题怎么解决?(颠倒其中一个哲学家的顺序,不过我还没验证这个正确性)是的,就是这个。
  7. 做道题放松一下:
    有一个Data 类,里面实现了lock方法,提供了lock()和unlock(),现在有一个线程不安全的方法:swap(Data D1, Data D2),请你实现一个线程安全的方法:swap_threadsafe(Data D1, Data D2)
  8. 最后这道题绕了很久,一直get不到面试官的意思。最后面试官说我直接告诉你吧,用两个对象的object_id处理。
  9. 我这是压力面,不知道你有没有感觉(噢,我好像没什么感觉,主要是你一直乐呵呵的,我就比较放松...)
  10. 反问:忘记准备反问问题了,随便问了个进去写go写哪些方面,面试官回答的我也忘了...
然后面试结束了。只留下凌乱的我。
过了两个小时,HR打电话告诉我说前两面面评不错,第三面有点问题,联系我8.11四面。

于是,这几天我疯狂看牛客字节的面经,操作系统和计网各种边边角角补了一堆,各种花里胡哨的链表也写了一堆。
结果四面问我的全是比较常规的问题,这几天的努力一点也没发挥出效果,反倒之前的八股和项目忘了很多,导致回答起来不是很流畅,口误也比较多。

四面(8.11 1h):面试官看起来30有余。开头自我介绍因为网络原因面试官说一直听不清楚。我说我开热点吧,然后找了3min手机... 找的我心态都崩了。
  1. 简单自我介绍一下
  2. RabbitMQ延迟队列怎么实现?(答的有点磕磕盼盼,不过意思还是说清楚了。建一个无消费者的队列,给队列设置消息的TTL,消息过期后的route-key以及消息过期后前往的交换机。当该队列里消息经过TTL过期后根据交换机和route-key路由到另一个队列,由监听这个队列的消费者消费)
  3. 对分布式事务的理解(也有点磕磕盼盼。两条不同连接里要保证逻辑上的事务一致性就是分布式事务。分布式事务实现有两种,一种是基于XA保证强一致性的Seata,另一种是基于最终一致性在业务逻辑层通过消息补偿实现,之后举了下单和锁库存之间保证事务的例子
  4. Seata通过XA实现分布式事务的流程(有三个角色:事务协调器,大事务,小事务... balabala流程说了一半发现自己不记得了,于是直接和面试官说具体细节我忘记了...)
  5. TCC了解吗?(相当于2PC手动版,我们要自己实现三个方法,具体不记得了,因为没用过)
  6. volatile特性(保证线程之间的可见性,防止指令重排。然后讲了CPU缓存一致性,总线嗅探,JVM加内存屏障指令等等)
  7. CAS原理讲一下(4个参数,1是指向对象的地址,2是偏移量,3是旧值A,4是新值B。首先根据1和2从内存地址取值存到A里,然后对该值修改得到新值存到B里,在写回内存前从内存地址里取最新的值和A进行比较,如果一致就写入,否则返回false)
  8. G1如何处理大对象的(这里答的不太好,有点乱,感觉有点跑题。G1垃圾清理是软实时的,用户可以设置G1垃圾清理的时间。G1并不是一直会清理老年代,而是堆内存到45%开始清理。G1里有一个个region,清理时会对region进行价值评估,然后结合用户设置的清理时间选择对内存性价比最高的region清理)
  9. TCP三次握手,四次挥手讲一下(balabala)
  10. TCP拥塞控制讲讲(讲了网络拥塞是啥,处理拥塞控制的流程)
  11. 设计模式里观察者模式(有Subject和Observer,Subject里维护一个List<Observer>,当Subject里的数据源发生变化时,遍历这个数组,调用Observer里的方法,这样Observer就可以感知到Subject里的数据变化,并且执行相应的操作
  12. 设计模式6大原则(这里答的是真的乱,6大原则名字我都忘了,磕磕盼盼的把6大原则是啥大概说了下。如果是以前我可以把这6大原则设计的原因和好处都解释一遍的)
  13. linux查看客户端网络连接状态的指令(不会,linux指令平时一般用于grep日志和进行一些部署操作。后来百度了下是netstat指令)
  14. 手写观察者(5min)
  15. LC322 零钱兑换(7min写完,运行时遇到一个输入输出的奇怪的bug导致结果不对,捣鼓了10min. 当时紧张死了,以为自己做错了。还好最后解决了)
  16. 说一下你debug的过程。(我的逻辑是对的,只是处理输入输出这里有点问题,然后把问题复现了,并讲了思路)
  17. 反问:进去之后转go的话在学习知识上需要偏向于哪些方面,比如是偏向于操作系统这种底层还是RabbitMQ这些中间件的应用级别(面试官说了一大堆,起码说了5分多钟... 最后给的建议是在学校期间多了解了解一些技术,然后专精一个方向,比如专精redis,这样之后遇到redis的问题你就可以处理了)

总体而言面字节面的我心累。
许愿HR面吧...

——8.20更新——
已收到意向,无HR面。祝各位小伙伴早日收割满意的offer~
——9.06更新——


#字节跳动提前批面试##面经##Java##校招##字节跳动#
全部评论
可以说一下你16的过程怎么说的吗
1 回复 分享
发布于 2021-08-16 01:35
搞不好是sp
点赞 回复 分享
发布于 2021-09-23 12:05
请问楼主投的base 哪里啊
点赞 回复 分享
发布于 2021-08-19 13:23
tql码住学习
点赞 回复 分享
发布于 2021-08-16 11:49
345我听都没听过
点赞 回复 分享
发布于 2021-08-16 01:34
怎么学的,这么强
点赞 回复 分享
发布于 2021-08-13 00:56
tql大佬
点赞 回复 分享
发布于 2021-08-13 00:14
请问G1的软实时是怎么理解的?
点赞 回复 分享
发布于 2021-08-12 11:43
太强了!
点赞 回复 分享
发布于 2021-08-12 11:34
已经面到最后一轮了说明楼主还是很优秀的额,相信自己!
点赞 回复 分享
发布于 2021-08-12 11:32
四面之后还有HR吗?
点赞 回复 分享
发布于 2021-08-12 11:30
一个字 牛
点赞 回复 分享
发布于 2021-08-12 00:54
飞书LC322汇总在题库里了,https://codetop.cc
点赞 回复 分享
发布于 2021-08-11 22:37
大佬大佬大佬大佬
点赞 回复 分享
发布于 2021-08-11 18:51
点赞 回复 分享
发布于 2021-08-11 18:22

相关推荐

想run的马里奥在学...:这个学历帮你扫平百分之80的障碍,投就完了,这会找不到就等3月暑期一样能找到
点赞 评论 收藏
分享
01-08 11:19
已编辑
深圳职业技术学院 护士
我是从大一下学期5月开始转互联网的,原因很简单,对本专业的就业薪资与前景非常不满,而我特别想赚钱,所以选了互联网,而又因为带我的师兄都是前端,所以阴差阳错就做了前端当时的梦想就是进腾讯,进腾讯,进腾讯!大一下学期学了3个月的前端的基础知识后,开始参加学校工作室的考核,当时整个暑假都没回家,跑去自习室和考研的同学坐一下,那段时间我敢说我去的比大多数人早,走的比大多数人晚,把所有的时间精力都扑在做工作室考核上面,不过结果非常遗憾,我竞争不过两个超级大神,最后进不去了(广工的anyview是我一身之痛)不过进了物理学院的软件组,有了自己的工位还有好多转码师兄的指导后,开始长达半年的实验室之旅......在这半年,我几乎没有上课,没有去哪里玩,我像一个被写了程序的机器人一样,7点半起床,去实验室学前端,一直到晚上10点&nbsp;11点。我太笨了,太笨了,学东西太慢了,coderwhy的网课看了一遍又一遍,项目代码写了一遍又一遍,红宝书也是一遍一遍的看......就这样,过完了这打了鸡血的半年,寒假也只回去十天左右,然后就到了24年的3月我开始焦虑,非常非常的焦虑与害怕,因为我开始刷牛客了,开始去网上了解各种就业信息,一大堆负面信息朝我涌来,我不知道怎么区分就全盘接收前端已死,互联网完蛋了,非科班别想了,双非别想了,没有学历就等于判了死刑......有半个月我半夜都会被吓醒,后面想到的一个破局之路就是刷实习,大量的堆实习,弥补我双非的学历,非科班的专业带来的巨大劣势于是开始转战图书馆,找了考研的人一起坐,他们什么时候去我就什么时候去,开始背八股,前端三件套,框架,工程化,算法,计算机网络......这些对我当时的我来说太多了太多了,也太难太难了,越看越焦虑,越焦虑我越不敢停下来,每天晚上都要去跑5公里来让自己平静下来就这样过了一个多月,我准备的七七八八开始投实习了,第一次面试,我整个人紧张的止不住的颤抖,喝了一杯又一杯的水,上了一次又一次的厕所,皇天不负有心人,在四月底找到了自己的第一份外包实习,很大程度地缓解了我的焦虑,回去休息了半个月五一后入职,实习了一个星期左右,感觉太难受了,工作氛围及其压抑,同事也是感觉都乱来的,而且喜欢打压我,我在写算法的时候,他们老说不用写这个,这些是大厂才要的,你又进不去大厂......&nbsp;后面我只能偷偷跑楼下写,过了小半个月我实在呆不下去就离职回学校了,第一段实习就这样结束了,而且老板不给我发工资......于是我开始在学校二次沉淀了,开始大量刷leetcode&nbsp;代码随想录&nbsp;codetop&nbsp;准备更强的项目&nbsp;更深入地背八股,于是一直学啊学啊,那个暑假就回去两个星期学车,其他时间都呆在学校的实验室里24年8月开始全面投实习,拿了古茗&nbsp;卓望数码的offer,本来打算去杭州古茗的,结果美团打电话说面试通过,阴差阳错地去了上海美团,开启了自己的第一段实习刚去没多久,还没适应那里的生活工作环境,学校传来噩耗,外出实习被抓到了,老师逼我回去,说不回去毕不了业,我当时听完电话后,整个人崩溃了,我跑去公司楼道间一直哭,我不甘心,我太不甘心了,我不甘心来之不易的实习泡汤,幸好后面申请了一门实验课重修,如愿留在上海于是就在上海美团实习了四个月,一直到了25年1月,我开始飘了,我感觉自己牛逼坏了,感觉美团平台不够高,想去更高的腾讯和字节,放弃了美团核心部门,而且高转正率的机会,选择了离职,当时还在牛客写了一篇长文于是回家休息到年后,2月多开始回学校全力准备暑期实习,一直面一直挂,直到5月份才找到字节的实习,这三个月是我最痛苦最煎熬的日子,我的自信心被不断的击碎,一直面一直挂,而身边朋友开始接连上岸,我开始怀疑自己,开始后悔当时的决定,开始觉得自己就是一个看不清自己的傻逼然后呢,4月底&nbsp;在没招了,万念俱灰的时候,字节约面试了,一点也不想复习,裸面,结果阴差阳错给我干进去了5月中开始字节的实习,虽然压力比较大,但还可以接受,平平稳稳能干了三个月,自我感觉良好,以为转正稳了,结果到八月初的时候,通知转正失败,当时天都塌了,然后开始找其他部门的机会,后面活水成功,去另一个部门实习了一个月,其实转正概率也不小,但是当时也是心比天高,以为自己牛逼坏了,所以选择离职秋招9月中开始全面秋招,结果大家也知道,秋招大溃败,各种终面挂&nbsp;hr面挂&nbsp;排序挂&nbsp;有时候也不知道为什么挂,问题也都答出来了,算法也都写出来了,但就是挂哈哈哈哈其中很多时间都是在打字节的复活赛,反复仰卧起坐,反复鞭尸,后面感觉面字节跟回家和亲戚聊天一样,他会问什么我都知道,甚至我可以抢答,面完还能聊天开点玩笑......在12月中的时候,字节又约面了,阴差阳错又到了三面,结果还给整挂了,当时确实破防的要死,然后转部门面试,本来打算拒绝的,因为实在太心累,太折磨了,但还是咬咬牙去面了,然后莫名其妙问的也就那些,三面还整了几道脑筋急转弯,本来以为又要挂了,结果过了,据说是因为我的竞争对手三面ai作弊被发现了,所以只面了她16分钟,所以就轮到我了,我也不用hr面直接审批,然后审批半天,隔天直接谈薪,hr开了个我拒绝不了的薪资,而且表达出来的意思是无论其他开多少字节都能match的意思,诚意满满回望这两年多的经历,真的是非常非常感慨,我想和大家说的是每个人都会有属于自己花期,只是时间的问题而已,努力踏实做事,终究会有回报!我也曾在这条路上迷茫、焦虑、崩溃与无助,但我做的唯一的一件事情就是,整理好心情,重新出发,坚持下去,光脚的不怕穿鞋的,拼了兄弟们!
码农索隆:我感觉兄弟你所处在环境已经算是双非中比较好的了,双非院校中很少有实验室,也鲜有师哥师姐会带着去学习,而你也很争气抓住了这次机会,一飞冲天
现在前端的就业环境真的很...
点赞 评论 收藏
分享
评论
10
74
分享

创作者周榜

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