当前位置: 首页 > 后端技术 > Java

字节跳动的面面总结都是套路!(现烤)

时间:2023-04-01 23:10:42 Java

大家好!之前分享给朋友的简历模板,你下载了吗?今天就让我们一起来看看更详细的大厂面试,帮助大家快速熟悉面试流程。稍后,我会为大家准备更多高质量的字节跳动专访。关注公众号SpringForAll社区,回复【byte】免费领取,点击跳转也可领取背景我毕业2本书,工作四年,一直从事Java工作。都是二线公司,不是一线公司。四年跳了三家公司。在家休息了几个月,5月中旬开始面试。由于跳槽太多,现在已经是淡季了。我的字节哥,内部提拔的,升职部门不详,从字节海外电商推送到教育线简历,都因频繁跳槽而夭折。终于被广告和市场部接走了(原来是Java部门)。在这里我还是奉劝大家不要像我一样经常换工作,唉。而且如果想进大厂,建议找人推荐。这是我第一次接受字节跳动的采访,也是我今年的第一次采访。也算是我对233各种意义的初体验。一边是小哥,估计是害羞,骗我说显示器坏了,没开摄像头。我笑着说没关系。技术面试20分钟,算法orz我做了10分。一共半个多小时。1.简单说说项目。我的项目比较折腾,所以先介绍一下,然后项目就跳过了。2、redis的zset是怎么实现的?为什么使用跳表而不是其他数据结构?Redis的zset是基于ziplist、dict和skiplist实现的。这里我简单说一下这三个字段的字段以及优化的细节。至于为什么要用跳表,我直接回答了官方原文。话说回来,感觉zset的每个大厂都会考。3、redis、rdb、aof的持久化方式,这里展开一下。面试官直接说时间有限,不用了,希望短时间内多提问。这次面试的整体节奏很快,很多都是简单说说然后问下一个问题。4、redis集群方式有什么特点?哨兵与主从匹配,可以保证可靠性。Redis集群可以增加可扩展性。5、rediscluster的通信机制,说说基于goosip的蜂巢,不了解的请跳过这一段。6、mysqlinnodb和mongodb的索引结构b+树,简单说一下。这个问题结束了。7.我听错了rr级别如何防止幻读的问题。我听说为什么rr级别应该防止幻读。所以答案是关闭的。据说因为rc级别不会出现LostUpdate问题,但是rr级别会因为mvcc版本出现。rr作为一个更高级别的level,必须要处理这个问题,所以用锁来处理,但是snapshot本身并不能解决writeskew,所以并没有解决幻写,从某种角度来说,有没有完全解决幻读。后来发现答案好像方向不对,就简单说了snapshotread,currentread,gaplock,rowlock这些东西。这个话题讲了很久,我说错了。8、synchronized的原理,先说下底层实现。开头也规范的讲了锁的升级流程和互斥锁。最后面试官问的比较深,问我monitor里有什么。只记得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,逃逸分析,stackframe里有什么,还好去年都看到了,都被阻止了。3.说说metaspace和permGen。本来信号不好,还是说英文。听了几遍才知道我问的是metaspace和permanentgeneration。简单的说。4、在元空间创建对象会开辟物理地址内存吗?这个TM问什么?我对orz5了解不多。system.gc()会触发gc吗?和fullgc有什么关系?不确定。这个问题的答案比较简单。哈哈。java就这样结束了6.redis的aof文件过大怎么处理,怎么解决,aof的打开方式有几种?你知道重写命令吗?因为不了解这一带,所以差点被灭族。Redis依然是我的强项,但是我输的太惨了。7.卡夫卡。..答案是没用过(其实是用过,不过是很多年前的事情了,所以就说没用过,简历上只写了rocketmq)8.什么样的你用过MQ吗?说一下rocketmq的消费方式,什么是死信队列只用过rocketmq。聚类和广播,面试官问是不是只有这两个,我说是。然后大家都很尴尬。死信队列就结束了。9.告诉我交换的事。.回答说我没有用rabbitmq(其实我用过)。之前面试官听错了,以为我用的是rabbitmq,吐槽怪不得只有两??种消费方式。10.ack机制,offset偏移时,broker复制原理。作为一个MQ白痴,基本的回答只是浅尝辄止。其实activemq、rabbitmq、rocket、kafka我都用过(毕竟跳槽的多)。但是mq确实是我的软肋。唉,我的心态在这方面崩溃了。当时,我想挂了。11、mysql索引优化不对是什么原因?我终于问了我擅长什么。说到优化器的策略,面试官说他不想问这个,所以让我解释一下,然后我把explain的所有字段都说了,面试官说还是理解错了。然后我就说忘了这道题跳过吧,有点尴尬12.explain语句会执行sql吗?不,优化器结束了。所以行会有错误。13、mysql的二段提交,讲了binlog、redolg和grouping。说实话,题直接指的是二段提交。不熟悉的人可能不知道问题是什么。14、说到undolog,是不是只触发回滚?Undolog在回滚的基础上保证了原子性。由于innodb锁住索引,在更新主键的时候,原来的数据也会被保留,所以更新后,微提交之前的数据会变成两条。commit时,会回滚原来的数据。这个场景有点绕,但我想我应该答对了。15.Algorithm字符串数组中的字符能否拼接成某个字符。当时的心情是相当崩溃的。所以这道题虽然不难,但是最后还是没有写出来,也没有按照一般的例子orz。总结面对面之后,我的心态崩塌了。除了mysql,其他答案一般,算法也没做出来。面试官看我脸色不好,挥手让我打起精神。当时,我真的以为我挂了。没想到最后竟然是三面,所以要感谢面试官接下来的两面,哈哈哈。三棱三棱面试官是个大boss,秃顶严重,全程看起来很忙碌。他有点心不在焉,主要是聊天。他问接下来三份工作公司是做什么的,做过什么项目。聊天10分钟,技术10分钟,算法5分钟。1.Java创建一个网络io流。会运行什么,基于java底层或者网络或者操作系统。这部分我的java比较简单(因为据说byte即使是java,也很有可能做go,所以感觉可能语言比较少)。最主要的是操作系统和网络。比如ringbuffer,dma,软中断硬中断之类的。2、说说零拷贝,简单说说sendfile和mmap。另外提到了senfile类似于网络中点对点的概念,然后转向网络3.说说ftp和http的区别。ftp不懂的可以跳过4,文件下载一般用什么协议,udp或者tcpudp用的比较多,都可以。如果udp主要通过nat穿透,很容易打洞。这个问题已经通过了。5.closewait和timewait有什么区别?我回答这两个的时候正好说反了哈哈哈6.如何保持长链接,为什么需要长链接keep-alive。否则每次建立连接都要创建fd,浪费资源开销。7.开始海量采集日志,不懂问什么,就说日志用kafka。最后他提示了多台机器,于是我说mapreduce,简单的说了mapreduce,就结束了。8、你说的主要是离线加工。如何实现实时性?对于流处理,我没用过flink和spark,所以不能强求你回答(我简历里没写我懂大数据,问这个干嘛orz)9.该算法给出一串字符串,并写出三个字符的所有可能组合。本题为唯一白板题,无需跑题。(当时看到这道题,想用dfs加回溯,问了面试官后,他说只有三个是固定的,于是傻傻的决定写个三层的for循环,写完面试官看了看itandsaidthatyoucanIwriteathree-layercycle,Isaidum)Summary这边的题感觉有点莫名其妙。许多人看了我的面对面的经文,并抱怨他们所问的。最后还是挂在了这个算法上。我觉得我好笨。内部推荐我的大哥说我面评就一句话,说我算法表达弱。松手。唉,这也是我第一次现场写算法,以为只要结果正确就好,苦于不知道套路。综上所述,知道最后挂了还是挺可惜的。不仅到了第三面,最重要的是还能做到,结果是我傻了。唉,好像和字节没什么关系(心疼2位面试官)。但是,字节效率还是很高的。可惜刷了那么多算法,字节面之后就没刷过一题算法。最大的问题是我之前没有写过算法。一旦不是原题,我就慌了。其实以我当时的算法水平,应付社会招聘已经足够了。至少后面一道题的算法我没研究过,其他公司算法难度和bytes差不多的时候,我基本很快就做完了,没有一道是五道过不了的分钟。算得上是字节让我在算法上成了老油条233。想进大厂的朋友注意了,大厂的面试套路很神秘,早点准备比较有利于大家,埋头做题效率低,而且会比较多高效阅读面试经验!小编准备了字节跳动脸书合集,关注公众号SpringForAll社区,回复【字节跳动】即可免费领取,点击跳转也可领取