字节跳动Java开发社招二面凉经

一面

算法题

  • 二叉树中和为某一值的路径;
  • 股票的最大利润;
  • SQL 题。

总结:两道算法题剑指 offer 上都有,我面试的时候第一题写出来了,第二题不要求写代码,就说思路,我刚开始说了一种暴力解决的方法,时间复杂度 O(n2) ,后面面试官问有没有 O(n) 的算法,后来想了一下也回答出来了,都不算难。SQL 题挺简单的就不说了,但也提了个醒,牛客上的 SQL 题也可以去做做,就不知道别的厂子会不会有 SQL 题,希望大家评论区分享一下。

我 19 届毕业,感觉社招的算法题比校招会轻松些,最大的感受,社招算法题不需要运行 ac ,面试官看看思路就好了。(ps:也可能是就才面了头条,不知道别的厂子是不是这样哈)。

面试题

  • 用 id 做主键和用手机号做主键,怎么选择;
  • 聚簇索引和非聚簇索引的区别;
  • 怎么实现分布式锁;
  • redis 怎么实现分布式锁;
  • redis 为什么速度快。

总结:原谅我记性太差了,可能还问了别的,想不起来了,但主要就问了些数据库的知识,而且也不难,准备的很多都没问。

一面总结

一面感觉面试官很和蔼,感觉就年龄差不多。举个栗子,问我 用 id 做主键和用手机号做主键的区别 的时候,我第一反应说了一句:"用手机号做主键 B+ 树高度相对要高,你懂我意思吧 😂",面试官笑了笑说:"我 get 到你的点了,但需要你说的再具体一点"。

二面

算法题

  • 输出一个比输入字符串刚好大的字符串,例如 1234 -> 1243 /微信群抢红包。
  • SQL 题。

总结:面试官刚开始问我的算法题是 输出一个比输入字符串刚好大的字符串,我刷题太少了,这道题没见过,然后想了大概两分钟,面试官说如果没思路就换一个吧,所以就换成后面那个 微信群抢红包 的题了,这个的实现网上也经常看到,不难。

面试题

  • Dubbo 容灾有哪几种,说一种的使用场景;
  • ES 怎么容灾的。

总结:Dubbo 容灾,我认为是 Dubbo 的 9 种容错机制,failover、failfast、failsafe 等,如果不是这些的话,希望大家下面评论区予以指正。容错机制这些其实我知道,但是讲的有点啰嗦感觉。然后 ES 的容灾,我说的是用分片和副本分片来实现的,不知道对不对,同样不正确的希望予以指正。

二面总结

二面完了,面试官跟我说谢谢参加面试,我就知道凉了。

整体总结

  1. 还是重视基础,特别算法题还是要多刷;
  2. 我经常表达的不够简练,有些部分讲的有点啰嗦。
#字节跳动##社招##面经##Java工程师#
全部评论
加油老哥
3 回复
分享
发布于 2020-02-20 22:58
用id做主键和用手机号做主键,我觉得应该是这样,id自增:有序,手机号无序。我们使用MySQL,选择InnoDB引擎的时候,有且仅有一个聚焦索引,聚焦索引的逻辑顺序和物理顺序一致。所以当我们新加数据时候,我们如果采用手机号作为主键,则B+树会产生页分裂,同时会产生内存碎片,加之索引调整需要代价,所以用手机号作主键不合适。而当我们用id作主键,id自增,就没有上述问题了。  主语你回答的B+树高度更高。可能是出于每页保存的元素而言,手机号码占用空间更大。但是总体来说,B+树在MYSQL引擎里面最后的高度基本都是2-4层,IO次数基本没有什么区别。4层B+树,可存百万级别以上数据
3 回复
分享
发布于 2020-03-24 04:07
联想
校招火热招聘中
官网直投
我思考了一下 我今天参加的面试 面试官没有和我说谢谢😂
点赞 回复
分享
发布于 2020-02-20 22:15
楼主为啥问的都是分布式方面的问题
点赞 回复
分享
发布于 2020-02-21 00:42
感觉是不是应该用id做主键回答 mysql新增数据顺序插入问题啊
点赞 回复
分享
发布于 2020-02-22 23:59
额,没有问项目吗
点赞 回复
分享
发布于 2020-02-23 16:38
老哥,内推的吗?
点赞 回复
分享
发布于 2020-02-25 03:37
id和手机号当主键的原因是不是,手机号无序在更新的时候导致聚簇索引页分裂,而id为主键的话是有序的。另外id的长度一般比手机号要断,这也符合当主键的特性
点赞 回复
分享
发布于 2020-02-25 09:27
请问抛硬币那个应该怎么处理啊?
点赞 回复
分享
发布于 2020-02-25 22:42

相关推荐

11 101 评论
分享
牛客网
牛客企业服务