头条抖音后端技术3面题:Linux+RabbitMQ+GC+数据同步+网络编程等
坐标北京,某某211本科毕业生的面试经历:
“之前学校活动有去过字节跳动公司总部参观,所以一直以来就蛮想进入字节工作的,被字节的企业文化和工作氛围所影响。字节作为发展速度最快的互联网公司,旗下的很多产品的用户都比肩BAT了,所以自己也算是字节的死忠粉了。
这次字节跳动的面试,给我的感触很深,意识到基础的重要性,这次字节共4面技术面+HR面,特分享一下这次的4面技术面真题,可能有些记不全了,但多少也能够给一些正在面试字节或计划面试字节的朋友提供帮助。”
一面:
hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
Linux的共享内存如何实现,大概说了一下。
Linux 中的用户模式和内核模式是什么含意?
在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允 许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
socket网络编程,说一下TCP的三次握手和四次挥手
同步IO和异步IO的区别?
Java GC机制?GC Roots有哪些?
如和判断一个对象是否存活?(或者 GC 对象的判定方法)
红黑树讲一下,五个特性,插入删除操作,时间复杂度?
快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少
第一轮非常重要,第一面能通过,后续被录用的可能性就比较高
二面
算法题多到爆炸,感觉是算法专场,宇宙条果真名不虚传
说一下Java垃圾回收机制
64匹马,8个赛道,找最快的4匹马。
64匹马,8个赛道,找最快的8匹马。
给出两个升序数组A、B和长度m、n,求第k个大的
给出数组A,长度为n,数组中元素的值位于[0, n - 1]之间,求是否有重复元素
讲一下多线程与多进程区别
JVM中什么时候会进行垃圾回收?什么样的对象是可以回收的?
Spring主要思想是什么?
你未来的发展方向是什么?确定了么?打算一直做Java?有考虑过转吗?
那你平时是怎么学习Java的呢?
分享最近看的一本书
三面
自我介绍,主要讲讲做了什么和擅长什么
设计模式了解哪些?
Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据
AtomicInteger怎么实现原子修改的?
RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
redis数据结构?
redis数据淘汰机制?
Redis 集群方案应该怎么做?都有哪些方案?
四面(约五十分钟)
mysql实现事务的原理(MVCC)
MySQL 中控制内存分配的全局参数,有哪些?
Redis 有哪些适合的场景?
有哪些数据库优化方面的经验?MySQL数据主从同步是如何实现的?
MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
如果Redis有1亿个key,使用keys命令是否会影响线上服务?
Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
遇到最大困难是什么?怎么克服?
未来的规划是什么?
你想问我什么?
字节跳动HR面
再次感叹一下,字节跳动的小姐姐又漂亮又年轻!
1. 自我介绍
2. 你了解字节跳动吗?说说你眼中的字节吧!
3. 你平时用字节跳动的哪个产品比较多?
4. 为什么想要来字节?意向城市是北京吗?
5. 说一下你自己的职业规划吧
6. 预期薪资
7. 其他一些常规问题
以上就头条抖音后端研发面试题,以下该面试题的部分参考答案。