字节跳动后台Java2020面试真题(含手写代码及设计题)

题记

2020校招开始了,为了了解最新热题,少侠决定“以身犯险”,为大家带来新鲜出炉的原厂真题!篇幅限制,就不再一一列举答案,要是有感兴趣或者对题目答案有疑问的读者,欢迎评论或者私信交流!

商业变现部门(20200705)

一面(Pass):

什么叫死锁,手写一个MySQL死锁的案例?
什么是倒排索引,MySQL倒排索引的实现原理?
手写:三个线程对同一个变量进行累加十次,主线程等待三个子线程累加完成,打印出30。
ThreadLocal的应用及原理?
redo log和undo log的作用?
HTTPS加解密过程?
Nginx的请求过程?
sessionID存在哪里?
死循环能否导致死机?
JVM引用类型有哪些?强引用,弱引用,有哪些应用场景?
如何设计一个短链接服务,如微博的短连接。
手写:二叉树的后序遍历(非递归)。
手写:整数开根号,精确到m位小数。

二面(Pass):

100百万条数据导入缓存Redis,怎么实现?
智力题:9个粉丝,1个礼物,一个色子,如何公平的决定这个礼物分配给谁?
健康码的设计逻辑?如何实现定位?
缓存一致性如何实现?
手写:最长连续公共子串?
分布式事务如何实现?
智力题:64匹马如何最快的找出4匹跑的最快的马?
说一说项目中遇到的难点或挑战点?

三面(Pass):

说一说项目中遇到的难点或挑战点?
MySQL主从同步如何实现?
Redis有哪些数据类型,分别的适用范围?
开发中更新数据时先更新Redis还是MySQL?Redis和MySQL的双写一致性如何保证?
开发中用过哪些设计模式?说一下策略模式的UML图以及为什么采用该模式?
JDK中应用到了哪些设计模式?
手写:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。
手写:给出一个n×n的整数矩阵,求最小路径元素的和?

HR面(Pass):

校招时拿过哪些公司的offer?
当时为什么选择了现在的公司?
现在为什么想要跳槽到字节跳动?
工作中有没有遇到什么不满足预期的事?

Boss加面(Reject):

说一说项目中遇到的难点或挑战点?
MySQL的EXPLAIN执行计划有哪些参数。
手写:右连接查询。
设计:随机午餐会
背景:客户增长研发部门的同学越来越多了,目前200多人分工也越来越细,大家平时交流互动的机会少,因此希望每个月,随机挑选一些同学(当前计划是8位)在周边找个地方聚餐,之后走团队活动经费报销。
要求:希望写个简单的程序完成每个月聚餐同学的随机挑选,具体的一些要求:
1 已经被选中的同学,后续被选中的权重要降低;
2 程序方便部署和使用;
3 考虑好可能的异常情况。
手写:田忌赛马

PS. 当时以为Boss加面是要给我发SP,因为当时感觉前三面的表现还行,基础和算法题基本上都做出来了。没曾想第二天HR(对,就是之前联系我offer审批已经通过的那位)给我发了感谢信。于是又有了下面的故事。。。

教育业务部门(20200805)

商业变现部门被Boss拒绝以后,教育部门的HR联系我,说参考我之前的面试可以减少一面,于是有了教育部门的两轮面试。

一面(Pass):

HTTPS加密?
说一说TIME_WAIT状态?
cookie和session的区别?
session在服务器上如何保存?
Redis过期策略?
RPC调用过程及原理?
MySQL事务的隔离级别?
设计秒杀系统的难点和需要考虑的问题?
秒杀系统的分布式一致性问题如何解决?
秒杀系统如何设计架构,才能扛住像天猫双十一那样瞬时流量?
令牌桶限流的原理?
手写:反转单向链表,每隔N个值反转。

二面(Pass):

项目的难点分析和解决方案?
项目的系统架构?
Nginx负载均衡策略?为什么选择IP哈希策略?
你了解过天猫的系统架构么?是如何实现高并发和高可用的?
一张MySQL表最多不应该超过多少条记录?这个阈值一般可能是经验值,说说这个经验值是基于哪些因素得出的?
MySQL分页查询的LIMIT随着表记录越大响应越长,如何优化?
消息队列能保证一致性吗?如何保证分布式事务的一致性?
HashMap的rehash是个比较耗时的过程,如何重新设计该函数,实现线上正在rehash的代码性能不受到影响?
手写:最长覆盖线段的长度?

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值