校招字节教育后端面经
具体问题以下分类总结:
Java
- synchronized,lock,AtomicInteger 底层原理
- HashMap,ConcurrentHashMap 底层结构原理
- 讲讲服务注册于发现。这部分主要讲了springcloud eureka 和部分 zookeeper,zookeeper的选举机制
- spring AOP 的实现方式, siglib 能否代理final修饰的类
- jvm 垃圾回收过程,并详细讲一种垃圾回收器
- 强引用,软引用,弱引用,虚引用应用场景
计网
- 拥塞控制和流量控制
- 快重传和超时重传
- 为什么四次挥手后客户端等2MSL
- DNS解析全过程
- http2.0,http3.0
- https的连接过程
- CA证书的验证过程
- RPC框架了解吗
- 如何设计 基于udp的可靠传输
- tcp如何保证数据安全性的,磁盘如何保证数据不丢的,应对坏道情况,这个应该是问数据备份的,不是很懂。
操作系统
- 阻塞io和非阻塞io
- 进程和线程区别,通信方式分别是什么
- 虚拟内存和物理内存
- linux 按 ctrl + c 中断的原理
- 协程高效在哪
Mysql
- Innodb,B+树,聚簇索引和非聚簇索引区别
- 一千万条数据,问 b+ 数大概多高
- 为什么用 b+ 树而不是 b树,红黑树
- 在设计联合索引需要注意什么
- 联合索引最左原则的底层原理
- mysql 的 MVCC 以及是否解决幻读
- 手写sql,实现一个 按时间降序的分页查询
- redo log,bin log,undo log
Kafka
- kafka的rebalence
- ISR
- 如果新加进一个消费者会发生什么
- 如何保证数据一致性
Redis
- RDB和AOF区别
- 为什么RDB 要 fork 子进程而不是线程
- redis基本数据类型
- zset的底层数据结构,跳表何时增加高度
- 分布式 redis,缓存和数据库读写不一致,答 延迟双删
- 面试官让随便讲讲redis,所以还说了缓存穿透,击穿,雪崩以及处理方法
场景题和智力题
- 打字的智能提示和纠错的原理,让你来设计,你怎么做。
- 如果有一个访问过的所有网站的记录集合,如何快速判断当前网站是已经访问过。(考虑布隆过滤器)
- 从一个网站下载的时候,进度条如何实现的。
- 64匹马,八个赛道,问至少跑多少次能找到最快四匹马。
- 操作系统给你一块空闲内存,你如何设计使用和回收。
手撕代码
- 柱状图中矩形最大面积 leetcode 84
- 查找第k小的数,用堆以外的方法做
- 给m个房子涂n种颜色,相邻房子不同色,cost[i][j]表示给i号房子涂j颜色代价,求最小上色总成本。力扣应该有原题
其他
还有就是聊项目,面试过程体验很好,面完第二天中午hr准时通知并安排下一场面试,三面后三个工作日就发了offer。
面试重基础,重思考能力,遇到问题尽量不要说不会,而是顺着面试官的方向合理推测一下。自己多说些,面试官问的就会少一点,往熟悉的方面引话题。
2020年互联网太卷了,愿大家都能上岸,找到理想工作。
#面经##校招##字节跳动##Java工程师#