【字节跳动】社招面经 后端 问答题+设计题+算法题

Author: Xcourse   2023-Mar-15 22:06   Reads: 917

欢迎加入微信工作内部分享群,每天发布新的精选高薪工作。

官方邮箱:enquiry@xcourse.sg

微信分享群:@新加坡工作内部分享群

WhatsApp群:@Singapore Jobs & Internships

Telegram中文群:@新加坡工作内部分享群

Telegram英文群:@Singapore Jobs

------------------------------------------------------------------------------------------------------

字节面经

字节算是我面试最多的公司了,前前后后面了不下四次,实话说,字节的hr小姐姐还是很热心的,一般面完两天内就会微信通知你,咨询问题也是很热情的解答。

 

面试题

  1. 自我介绍
  2. Redis你比较熟吧,说说它机制为什么快
  3. 有几种数据结构,底层分别是怎么存储的
  4. Redis有几种持久化方式
  5. 多线程情况下如何保证线程安全?
  6. 用过volatile吗?它是如何保证可见性的,原理是什么
  7. MySQL的索引结构,聚簇索引和非聚簇索引的区别
  8. MySQL有几种高可用方案,你们用的是哪一种
  9. 说说你做过最有挑战性的项目
  10. 你具体负责哪部分的东西,哪些最有挑战性,说说你做了哪些优化
  11. 秒杀采用什么方案,分表怎么做的,redis挂了怎么办,
  12. 分表为什么要停服这种操作,如果不停服可以怎么做
  13. 你怎么防止优惠券有人重复刷?
  14. redis数据幂等性是怎么保证的(类似于分布式锁那种,有个key就行了)

设计题:

1、如果让你设计mysql高可用方案的话,你会优先考虑哪些方面

2、抖音评论系统怎么设计,如果加入好友关系呢?(考虑到数据读取的性能,可以采用写扩散的方式)

3、怎么设计一个短链地址,要考虑跨机房部署问题

你说要哈希算法生成短链,会存在什么问题(哈希冲突),该怎么解决?(可以用布隆过滤器,但是不好控制,而且仍存在hash冲突)

有没有更好的方案?(自增序列算法,每次接收一个长链,就分配一个ID,转成62进制再拼到短域后面)

存在的问题?(自增id方案如果用雪花算法,可能存在机器时钟回拨的问题,导致id重复,说到这里,我终于明白那家伙为什么说要考虑跨机房部署问题)

该怎么解决?(用Redis做自增id生成器,性能高,但要考虑持久性的问题;或者改造雪花算法,通过改造workId解决时钟回拨的问题)

 

算法题:

1、有一个数组,里面元素非重复,先升序再降序,找出里面最大的值(二分法,要考虑只有一个元素和两个元素的边界情况)

2、链表深拷贝

3、统计用户在线最大峰值和人数,要精确到秒(额滴神啊,秒级这个谁受得了,我的思路只能精确到小时,面试官说没问题,后面成功写出来跑过测试用例)

 

软实力:

1、你怎么评价你自己

2、你怎么看电商这块领域,为什么要选择电商

3、有没有要问我的


Tags: interview backend senior

Topics: 面经 社招