字节跳动三面拿 offer:网络 +IO+redis+JVM+GC+ 红黑树 + 数据结构
5G 的到来证明了互联网行业发展一如既往的快,作为一名开发人员(Java 岗)梦想自然是互联网行业的大厂,这次有幸获得面试字节跳动的机会,为此我也做出了准备在面试前一个月就开始做准备了,也很荣幸的拿到了字节跳动的 offer,这里分享一份字节跳动三面过程!
字节一面:
hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
Linux 的共享内存如何实现,大概说了一下。
socket 网络编程,说一下 TCP 的三次握手和四次挥手
同步 IO 和异步 IO 的区别?
Java GC 机制?GC Roots 有哪些?
红黑树讲一下,五个特性,插入删除操作,时间复杂度?
快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少
字节二面
自我介绍,主要讲讲做了什么和擅长什么
设计模式了解哪些?
AtomicInteger 怎么实现原子修改的?
ConcurrentHashMap 在 Java7 和 Java8 中的区别?为什么 Java8 并发效率更好?什么情况下用 HashMap,什么情况用 ConcurrentHashMap?
redis 数据结构?
redis 数据淘汰机制?
字节三面
mysql 实现事务的原理(MVCC)
MySQL 数据主从同步是如何实现的?
MySQL 索引的实现,innodb 的索引,b+树索引是怎么实现的,为什么用 b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
如果 Redis 有 1 亿个 key,使用 keys 命令是否会影响线上服务?
Redis 的持久化方式,aod 和 rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
遇到最大困难是什么?怎么克服?
未来的规划是什么?
你想问我什么?
以上就字节跳动后端研发面试题,以下该面试题的部分参考答案。
金九银十跳槽季,小弟为各位大哥准备了几份面试宝典:
一份是技术干货《Java核心知识点整理》
一份是面试真题《1000道互联网Java工程师面试题》
Java 核心知识点整理
1000 道互联网 Java 工程师面试题
评论