2022字节飞书企业应用暑期实习二面
一面完第二天(3月1号)晚些时候收到了二面预约,选择了3月4号上午面试。
面试官依旧(为什么是依旧呢,因为一面面试官也鸽了我几分钟)是比较忙迟到了5分钟,是一位看上去比较成熟稳重的boss,压力有点大。
- 自我介绍
- 聊了一下上一段实习的内容,负责的工作,用的技术栈?
- 你所熟悉的技术栈?(我说我学的是Java,但是了解到贵公司用的应该是Go,如果有机会的话我愿意重新学习,大佬说不,我们也用Java)
- 聊了聊你做的项目吧,简单介绍一下
- 详细说一下你这个商城项目运作的流程?(这里我从用户角度和开发者角度解答了一下,在每步中所用到的技术)
- 商品上架是写在MySQL中还是ES中的?MySQL和ES是怎么保证一致性的?双写模式了解吗?(项目中的ES只是提供了搜索功能,这块做的比较简单,其实并没有保证MySQL和ES的实时同步,但我答了可以用订阅binlog日志的方式保证其一致性,至于双写模式,在后续的Redis和MySQL的一致性中用到了。面试官建议说如果这个你没有做就可以不用提。)
- 商城的数据库表结构是怎样设计的?(分了不同服务的数据库进行解答)
- 详细介绍一下订单服务的表结构?
- 表上加索引了吗?为什么不加?
- Java的集合类有哪些?区别是什么?
- 说一下HashMap的put()方法?
- HashMap中的resize()方法?
- Java线程池了解吗?怎么创建?核心参数有哪些?其作用分别是什么?
- Java异常栈了解吗?常见的异常有哪些?(分为编译时异常和运行时异常做了解答)
- SpringMVC的工作流程?
- Linux的指令了解有哪些?
- 如何查看MySQL的日志?
算法题:
一栋楼高100层,给你2个鸡蛋,当鸡蛋在高于某一层(记为N)丢下时会碎掉,低于这一层的位置不会碎。
每次操作你可以选一个没有碎的鸡蛋从任意楼层扔下,如果鸡蛋碎了,你将不能再使用它,如果没有碎,在之后的操作中你可以重复使用这个鸡蛋。
问在最坏的情况下,能确切的确定出N的最少尝试次数是多少?
扩展:如果有m个鸡蛋,n层,其值应该是如何?
双蛋问题,用动态规划解。刚开始不记得转移方程应该怎么写了,想了十几分钟,面试官说你有想法就先代码实现一下吧。我就先回答了用二分的思想去解,但二分不能保证最坏的情况下最少,这不是最优解。然后又想了10分钟,A出来了。
写完代码面试官让我解释一下思路,问我什么时候毕业,什么时候能开始实习,然后是反问。
总结:前面考查对项目的熟悉程度,以及对项目整体架构的理解,后面就是一些常见的八股了,问的不是很深,面试官只对我提到的一些东西进行提问,比较和善。算法题有点难,想了好久。
PS:中途面试官有事还离开了会议,我题目A了等了10分钟还没来就联系HR了,大佬都这么忙的吗orz。
#字节面试##实习##面经##Java##字节跳动#