关于java:字节跳动面经总结都是套路新鲜出炉

34次阅读

共计 4133 个字符,预计需要花费 11 分钟才能阅读完成。

hello,大家好!

之前给小伙伴们分享过简历模板,

大家都下载了吗?

明天来看一份比拟具体的大厂面经,

帮忙大家 疾速相熟面试流程

前面给大家筹备了更多 优质的字节跳动面经

关注公众号 SpringForAll 社区,回复【字节】即可收费支付,点击跳转也可支付

背 景

自己 2 本毕业,目前工作四年,始终是 Java。

做的都是些二线公司,没做过一线。四年跳了三家公司。在家劳动了几个月,

五月中旬开始面试。

因为跳槽过多而且曾经是旺季的起因。内推的我的字节哥们儿,推了不晓得多少个部门,从字节海内电商推到教育线简历都因为频繁跳槽都挂了。最初才被广告营销捞了起来(而且竟然是个 Java 部门)。

这里还是规劝大家跳槽不要像我这么频繁,唉。而且想进大厂,倡议找人内推。这是我第一次面字节,也是往年第一场面试,各种意义都算是初体验了 233。

一 面

一面是个小哥,预计比拟腼腆,骗我说显示坏了他没开摄像。我笑着说没事。

技术面试 20 分钟,算法我做了 10 分多种 orz。总计半个多小时。

1. 简略说下我的项目

我我的项目比拟挫,就介绍了下,而后我的项目就跳过了

2. redis 的 zset 是如何实现的?为什么应用跳表不应用别的数据结构?

redis 的 zset 基于 ziplist 和 dict 以及 skiplist 实现。这里我简略说了下这三个有什么字段,以及优化的细节。至于为什么应用跳表,我间接答复了官网原文。话说回来感觉 zset 每个大厂都会考啊。

3. redis 的长久化形式

rdb 和 aof,这里原本我想扩大说一下。面试官间接说工夫无限,不必了,心愿能在短时间多问点货色。这场面试整体节奏很快,很多都是 简略说下就问下一个问题 了。

4. redis 的集群形式,各有什么特点

哨兵配主从,能够保障牢靠。redis cluster 能够减少可扩展性。

5. redis cluster 的通信机制,说一下蜂巢

基于 goosip,具体的不理解,这一段就跳过了。

6. mysql innodb 以及 mongodb 的索引构造

b+ 树,简略讲了下。这一题就完结了。

7. rr 级别如何避免幻读

这一题我听错了,听成了 rr 级别为什么要避免幻读。所以答复偏了。就说因为 rc 级别不会有 LostUpdate 问题,然而 rr 级别因为 mvcc 版本会呈现,rr 作为更高等级级别必须要解决该问题,所以应用锁来解决,然而快照自身不能解决 write skew,所以并没有解决幻写,某种角度来说也没有齐全解决幻读。前面发现如同答复方向错了,所以还是简略提了下快照读,以后读,间隙锁,行锁之类的货色。这一题讲的有点久了,失误失误。

8. synchronized 原理,讲一下底层实现

一开始我也就规范的说了下锁降级的过程,也说了 mutex lock。最初面试官问到比拟深,问我 moniter 外面啥内容,我就记得 waitsets,entrylist,owner,count 这几个,而后说了下,Java 根底就这么完结了。

9. 除了 zk 你还用过其余注册核心吗?之间有什么区别

nacos,eureka,consol。有的是 cp,有的是 ap。注册核心个别走 ap 就够了。简略说了下起因

10. 算法

开始出的是,最小编辑代价。一看是较难,我放心做不出,要求换了一题。换成了二叉树之字形遍历,因为缓和,后果写了 10 分钟。难堪的一笔。

小结

整体而言就是节奏很快,是往年节奏最快的一场面试,倡议大家筹备的时候也推敲下 怎么用起码的字答复最多的内容。难度的话合乎我对字节面试惯例难度的印象。最初出算法的时候,出了一道较难的题,把我心态整崩了。因为据我理解,字节个别后面答复的不错的话,算法不太会刁难你。过后做题的时候我满脑子都想着为啥出这么难,我后面答复的还行啊。其实也可能是面试官不懂这个规矩,就轻易出了一道,不要太敏感 2333。

二 面

最难的一面来了。

面完我整个人都裂开了。面试官我感觉应该也是所有面试官中技术最强的,没有之一。另外面试官那边乐音很大,有时候听不清他说什么。不过这回面试官终于露脸了。

技术 25 分钟,算法 25 分钟。

1. 说下我的项目

这回面试官比拟关注服务器的数量,qps 之类的货色。这些我都记得,不过我的项目整体比拟挫。面试官也就不深问了,间接进入八股文环节。

2. 会什么语言?说下 jvm 吧。

我只会 java,哈哈哈。所以面试官就问 java 了。jvm 问的还挺深,什么 tlb,逃逸剖析,栈帧外面有什么,还好去年看过全都防进来了。

3. 说下 metaspace 和 permGen。

原本信号就不好,还说英文,我听了几遍才晓得问的是元空间和永恒代。简略说了下。

4. 元空间中创建对象会不会开拓物理地址内存

这 tm 问的是什么?我题目都不太懂 orz

5. system.gc()肯定会触发 gc 吗?和 full gc 有什么关系?

不肯定。该题答复的比拟奢侈。

哈哈。java 就这么完结了

6. redis 的 aof 文件过大怎么解决,怎么解决,开启 aof 的形式有几种?理解 rewrite 命令吗?

因为不理解这一块儿,简直团灭了。redis 还算是我的强项,后果竟然败的这么惨

7. kafka。。。

答复没用过(其实用过,然而好多年前的事件了,所以就间接说没用过,简历上只写了 rocketmq。)

8. 用过什么 mq,说一下 rocketmq 的生产形式,什么是死信队列

只用过 rocketmq。集群和播送,面试官问只有这两种吗,我说是啊。而后大家一阵难堪。死信队列简略讲下就完结了。

9. 说一下 exchange。。

答复说我没用 rabbitmq(其实我用过)。面试官原来后面听错了,认为我用过的是 rabbitmq,吐槽说难怪生产形式答复只有两种。

10. ack 机制,offset 何时位移,broker 复制原理

作为 mq 白痴,根本答复的都是浅尝即止。其实我 activemq,rabbitmq,rocket,kafka 都用过(毕竟跳槽多)。然而 mq 的确是我的弱项,唉,这一块儿面的我间接心态崩了,过后心想要挂要挂。

11. mysql 索引优化没有走对是什么起因

终于又问我善于的了。说了下优化器的策略,面试官说不是想问这个,就问我 explain,而后我就把 explain 的字段都说了一遍,面试官说还是了解错了。而后说算了这题跳过,有点小难堪

12. explain 语句会执行 sql 吗

不会,优化器就完结了。所以 rows 会有误差。

13. mysql 两段提交

说了下 binlog 和 redolg 以及分组。说实话,问题间接就说两段提交,不相熟的人可能都不晓得问的是啥啊

14. 说下 undolog,是不是只有 rollback 才会触发 undolog

基于回滚保障原子性。因为 innodb 的锁是锁住索引,所以更新主键之类的的时候,原数据也会保留,所以更新后微 commit 前一条数据会变两条。在 commit 的时候会回滚掉原数据,这个场景有点绕,然而我感觉我应该没答复错。

15. 算法

字符串数组中的字符是否拼接成为某个字符。过后心态比拟崩。所以这题尽管不难,然而最初没写进去没走通用例 orz。

小结

面完心态崩了,除了 mysql,其余答复的都个别,算法也没做进去。面试官看我脸色不好,还挥手让我前面加油。过后是真的认为本人挂了。没想到最初有三面,这里感激下二面面试官,哈哈哈。

三 面

三面面试官是个大佬,头秃的重大,全程都挺忙的样子,有点心不在焉,大多都是聊天,问了下三份工作公司都是干啥的,本人做了什么我的项目。

聊天 10 分钟,技术 10 分钟,算法 5 分钟。

1. java 创立一个网络 io 流。会有什么操作,基于 java 底层或者网络或者操作系统说一下。

这块我 java 就简略了下(因为据说字节哪怕面的是 java,也很可能做 go,所以感觉多少点语言之外的可能好一点)。次要还是说了操作系统和网络。比方 ringbuffer,dma,软中断硬中断之类的。

2. 零拷贝说一下

就简略说了下 sendfile 和 mmap。此外提了句 senfile 比拟相似于网络中的对等概念,而后转到了网络

3. 说一下 ftp 和 http 的区别

不理解 ftp,跳过

4. 文件下载个别用什么协定,udp 还是 tcp

udp 用的多一点,两个都能够。udp 次要 nat 穿透的话打洞容易,这一题过。

5. close wait 和 time wait 有什么区别

这两个我答复的时候刚好说反了,哈哈哈

6. 怎么放弃长链接,为什么须要长链接

keep-alive。不然每次链接都要创立 fd,浪费资源开销。

7. 日志海量收集

开始的时候没听懂问什么就说日志用 kafka 啊。最初他提醒多台机器,我就说 mapreduce,简略说了下 mapreduce,就完结了。

8. 你说的次要是离线解决,如何实现实时的呢

流解决的话,flink,spark 都没用过,所以不强答了(我简历也没写我会大数据啊。怎么问这个 orz)

9. 算法

给出一串字符串,写出选取三个字符组合进去的所有可能。这一题是唯一一题白板,不须要运行。(这题看到我就想用 dfs 加回朔,然而问了下面试官说固定只选三个,我就傻傻的决定写三层 for 循环,写完后面试官看了一下说你就写了三层循环啊,我说嗯)

小结

这一面问的感觉都有点莫名其妙,很多人看了我的面经都吐槽问的都是些啥。最初就挂在这个算法上了。感觉本人傻了。内推我的老哥说我面评就一句话,说我算法表白弱,我想想就明确了,大家写算法的时候肯定要想分明,宁肯写进去是错的,思路也要往最优解走啊。唉,字节也是我第一次当场写算法,认为只有后果对就行了,后果吃了不理解套路的亏。

总 结

最初晓得挂了还是很惋惜,不仅曾经到第三面了,最重要的是明明是能做进去的,后果本人傻 x 了。唉,看来是和字节无缘(感觉对不起 2 面面试官)。

不过字节的效率还是很高的。惋惜了我刷了这么多算法,字节面完后我就再也没有刷过一题算法了。

要说最大的问题,就是之前没写过算法,一旦不是原题,我就会很慌。其实过后我的算法程度曾经够应酬社招了。至多之后没再刷过一题算法,以及其余公司算法难度和字节差不多的状况下,我都是根本疾速撸完,还没有哪个五分钟不能过的。也算是字节让我在算法上成了老油条吧 233。


想进大厂的小伙伴请留神,

大厂面试的套路很神秘,

早做筹备对大家更无利,

埋头刷题效率低,

看看面经会更有效率!

小编筹备了一份 字节跳动面经汇总集

关注公众号 SpringForAll 社区,回复【字节】即可收费支付,点击跳转也可支付

正文完
 0