面试前就有听说过字节比较考验算法,面试的时候果然是,还好自己刷题比较多,这也验证了一个说法,大家在面试字节等目前比较火的互联网公司,一定要记得多刷题。
文末会有自己面试的时候准备好的面试题PDF文档,有注意各位查漏补缺,有需要的可以进链接免费获取到,这次面试的答案我也已经整理出来了,文末会有获取方式! 具体的面试题,大家看正文吧!
信息来源于一位网友。
字节跳动一面
自我介绍
我简历里面有一个商城的项目,要求画一个商城项目的所有的模块,然后讲解。
在用户登录的时候,由于HTTP是无状态的如何识别不同的用户(session或者cookie),然后让说一下session和cook各有什么优缺点。
单点登录的问题如何解决(服务器集群的情况下,用户如何在一-台服务器上登录,访问其他的服务器就不需要登录了) ?
答:服务器集群之间厂播session厂播或者使用Redis共享session。
Redis的底层是通过什么实现的?
为什么Redis他是通过hashtable实现的,但是它的扩容的时候并没有卡顿?
为何Redis是单线程的还是这么快?
商城如果有用户注册的模块,那么在用户注册成功之后一般会返回一个邮箱连接,然后用户点击连接跳转到商城主页。现在要求连接的有效时间为30分钟,这种服务如何保证?
答:可以在数据表中增加一个超时时间的字段,用户点击连接的时候判断是否已经超时,在进行商品展示的时候,如果一个商品有不同的分配,那么可能会涉及到有多级分类的问题。
如何涉及数据库表,来实现商品的多级分类?
把你知道的TCP都说下?
说一些TCP的三次握手、四次挥手?以及各自的状态。
在四次挥手的情况下,如果服务器端出现了大量处于close-wait的连接状态,分析一下原因,如何设置参数解决这样的问题?
在客户端time-wait的状态-般会持续多长时间?为什么要持续这么长时间?如何有大量的time-wait状态,出现这种情况的原因是什么?如何解决?
两个字符串的最大子序列问题。
点击下面这个,进击即可获得
点这个,点这个
字节跳动二面
对于你的商城项目,如果对于同一个分类有多个卖家,如何设计数据表?
对于高并发的系统,如何设计架构才能避免瞬间数据库收到瞬间高流量的冲击?
如果你用Redis实现的话,可能会出现商品超卖的问题,那么你是如何结果商品超卖问题的?
一般在支付的过程中,用户支付、账户被冻结、订单的生成、卖家库存减少、卖家收到钱,这是个一系列的过程,那么你如何设计实现分布式的事务?
答:消息队列
如果用户在提交订单之后向消息队列发送消息,这个时候网络出现异常,消息队列并没有接收到用户发送的消息怎么办?
答:消息队列会有一个回调接口,对于那些没有确认或者取消的消息不断的轮训,判断是否提交成功。
对于不同的业务我们会进行分库存储,说一下MySQL的主备模式?
MySQL的主从同步时如何实现的?
日志在MySQL的主从同步过程中,SQL线程可不可以并行的执行?
答:不可以,因为这样可能SQL执行的顺序不同,导致事务提交时间有差异
说一下NIO机制、select系 统调用函数?
B B+树的特点?
字符串匹配,二叉搜索树的第K小节点,链表每隔K个节点进行翻转。
卡着项目问题一直问,大家去面试的时候,一定要对简历中所用到的知识点有一定的见解,不要被面试官的连环炮吓到了!
字节跳动三面
自我介绍
问我GitHub账号
设计一个短连接服务
不会,涉及了MD5hash算法
两个鸡蛋问题,如果有100层楼,如何判断出恰好在第几层楼摔坏?
能不能推演出一个数学公式
用户访问一个URL的全部过程
场景:
一般情况下,我们的IP的存储都是将点十进制转化为-个长整型进行存储,如1.2.3.4–》1234,现在有一个20w行的文件,其中文件的每一行都存储了一些信息:
1234中国电信 张三
1235-2346中国移动,李四
设计一个IPquery的服务,以最快的形式,根据我查询的IP返回用户的基本信息。(用 代码实现)
最后:
提供【免费】的Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。
点击下面这个,进击即可获得
点这个 点这个
还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书。