坐标北京,某某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. 其他一些常规问题
以上就头条抖音后端研发面试题,以下该面试题的部分参考答案。
面试题答案,获取方式
Linux 中的用户模式和内核模式是什么含意?
Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据