字节一面凉经 tiktok 生活服务

字节TikTok生活服务 一面

1h,第二天感谢信

实习

具体问了一下业务,应该是觉得业务简单,没有细问

八股

MySQL

  • 隔离级别:四个
  • 默认隔离界别是什么,如何实现:可重复度,MVCC(讲得比较具体,听到一半就叫停了)
  • 三大日志:具体问了binlog的主从复制(不会)

Redis

  • 三个问题:雪崩、击穿、穿透 (过程把击穿和穿透讲混了,给了不好的印象)
  • 内存淘汰策略:随机抽样、懒删除、LRU算法(我讲的比较简单给后面埋坑了)、LFU

RPC

了解不深,感觉可以弄个轮子项目

实习或者项目经历困难的点

讲了设计模式的使用,不满意。

手撕

LRU算法,get与put操作都是 O1的时间复杂度(八股的时候说双向链表,但是get操作o1不行,最后时间到了才想到Map + Node双向链表,而且还忘了java有自己实现的类LinkedHashMap (私下里写完了)

反问

  • 业务:tiktok海外的生活服务项目
  • 面试答得怎么样:代码能力差(手撕没撕出来)、项目简单(希望听到系统架构上自己的考量,比如时间优化,高可用等)、细节不够(击穿和穿透弄混了)

鼓励我的好话

  • 知识面比较广(mysql和redis我答得比较深),换句话说只会八股

反思

实习经历简单,可以往项目经历上靠,弄个轮子项目或者一些高可用高并发的项目,但是感觉只能支撑到一面,如果想要二面结果,自己得要有系统设计的思想

不知道努力方向对不对,难啊

全部评论
mark tiktok生服
点赞 回复 分享
发布于 10-12 01:10 陕西

相关推荐

11-27 12:10
门头沟学院 Java
1. JWT数据格式Header.Payload.Signature,Header存算法,Payload存用户信息,Signature用于防篡改2. 用户感知token过期前端请求返回401状态码本地缓存过期时间主动判断3. 拦截器实现是,实现Spring的HandlerInterceptor接口,重写preHandle等方法4. Bean生命周期实例化→属性注入→初始化→销毁5. 后置处理器实现BeanPostProcessor,在bean初始化前后拦截,如AOP代理生成时使用6. Lombok作用自动生成getter/setter/构造器/toString等,减少样板代码,提升开发效率7. Redis数据结构String/List/Hash/Set/ZSet/Bitmap/HyperLogLog/GEO8. ZSet实现底层用跳跃表(SkipList)+哈希表,跳跃表按分数排序,哈希表支持O(1)查分数9. ZSet查询复杂度O(logn),因跳跃表分层结构,每层跳过约一半节点,类似二分查找10. InnoDB索引类型主键索引、唯一索引、普通索引、全文索引(5.6+)、空间索引11. 索引有效性判断看查询条件是否命中索引字段,是否避免%前缀模糊查询/函数计算等破坏索引的操作12. 索引底层实现B+树结构,普通索引叶子节点存主键值,主键索引存行数据13. 进程vs线程进程:资源分配单位,独立地址空间线程:CPU调度单位,共享进程资源,切换开销更小14. 线程同步措施synchronized/Lock/Atomic原子类/volatile/CAS/ThreadLocal15. TCP关闭流程四次挥手:客户端FIN→服务端ACK→服务端FIN→客户端ACK16. 关闭连接状态客户端:TIME_WAIT(等待2MSL确保包送达)服务端:CLOSE_WAIT(未及时调用close)TIME_WAIT过多会占用端口资源,影响新连接建立手撕 数组最小操作次数
查看17道真题和解析
点赞 评论 收藏
分享
评论
7
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务