当前位置: 首页 > 面试经验 >

字节跳动提前批 Java一面

优质
小牛编辑
88浏览
2023-07-18

字节跳动提前批 Java一面

一面是个小哥,估计比较腼腆,骗我说显示坏了他没开摄像。我笑着说没事。技术面试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分钟。尴尬的一笔。#如何判断面试是否凉了##字节跳动信息集散地##面经##我发现了面试通关密码##关于提前批我想问#
 类似资料: