字节跳动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 的容灾,我说的是用分片和副本分片来实现的,不知道对不对,同样不正确的希望予以指正。
二面总结
二面完了,面试官跟我说谢谢参加面试,我就知道凉了。
整体总结
- 还是重视基础,特别算法题还是要多刷;
- 我经常表达的不够简练,有些部分讲的有点啰嗦。