字节 抖音电商C端后台开发日常实习 一二面面经(已凉)
0224 18:00-19:30 一面
- 自我介绍
- 实习情况
- 布尔类型几个字节?为什么?
- 讲一下类加载机制
- 说了双亲委派
- ArrayBlockingQueue和LinkedBlockingQueue的区别
- 除了数据结构的差别,还有什么区别
- 性能哪一个更好
- 并发性能哪一个更好
- 两者锁机制的差别了解吗
- 介绍下ConcurrentHashMap
- 说了HashMap基本结构,和1.7分段锁、1.8CAS+synchronized
- 介绍下syncronized
- 说了用法、偏向锁、轻量级锁
- MySQL索引是什么数据结构
- 说了B+树相对于B树的优点
- ACID是什么事务隔离级别
- RR级别是怎么实现的
- ReadView
- 抢购系统架构是怎样的
- 说了服务器,MySQL,Redis,但是面试官想听有哪些模块
- 秒杀下单怎么做的
- 库存是怎么放到redis里面的
- 答了手动放;自动的做法也说了下
- 讲一下令牌桶算法怎么实现的?
- Guava::RateLimiter
- 下单成功后返回什么
- 排队成功,请等待订单生成
- 怎么通知订单生成成功
- 答了推送机制,长连接/WebSocket;发短信
- 令牌桶和漏桶的优劣,取舍
- 算法:用限定元素组合比n小的第一个数
常规八股答得还不错,但是楼主面试的时候比较紧张,做算法题时很多地方没考虑到,面试官很有耐心,给了一个小时时间慢慢写。周五晚上面的,周一通知通过,感谢一面面试官。
0302 14:00-15:00 二面
- 自我介绍
- 挑一个项目讲
- 什么是事务型消息
- 楼主项目里用的是RocketMQ,这里感觉面试官理解成Kafka的事务消息了
- 半消息是怎么转移到正常队列的
- 一直没get到面试官的点,说直接取出来放进去就好了
- 面试官说一直会有消息进来,怎么保证顺序,我说一个业务流程只发了一条消息,不需要有序
- 如何保证消息有序
- 项目中每个事务一个消息,不会失序
- 如果需要投递多条消息,需要在同一个队列才不会失序
- 什么是消息队列,为什么用消息队列
- 库存怎么扣的
- 为什么使用Nginx部署
- 什么是动静分离
- 哪些数据可以静态化
- 聊天框敲击回车发生了什么,可以说出所有涉及到的计算机知识
- 有点懵,只答了网络协议那一套,感觉面试官不是很满意
- 数据结构熟悉哪些
- 展开讲B+树
- 一个B+树可以存多少个数据,推导过程
- 页大小16KB从哪来
- 说了操作系统默认4KB,扇区512B,磁盘预读机制,SSD的4K对齐,感觉也不是面试官想要的答案
- 用户态和内核态的区别
- 内核态可以执行资源操作,提供系统调用给用户态使用,系统调用通过中断陷入内核
- 算法:接雨水、复制带有随机指针的链表(只需要说思路)。秒了
当时算法题做出来以为稳过了,结果晚上就发现流程结束。HR说面试官反馈知识不够体系化,算法题做得太久。
太菜了,继续努力。
PS:楼主211本985硕,科班,但是本科主要是做客户端开发,一段华为嵌入式方面的实习。确实后端方面经验比较少。