3个月前头条正式批笔试4道编程题只AC了2道,然后被刷了做了200多道还是太菜了,本来对字节不抱太大希望,毕竟后台竞争太大,而且字节招客户端开发比较多。后来看到有散招免笔试,抱着试一试的心态投了,然而几天过去毫无反应,20天后突然告诉我进行面试。8.10一面,8.12二三面,之后8.25晚上收到电话,拿到意向书。
字节跳动后端一面(纯技术面)
- 队列的实现,需要注意的地方
- 快速排序的实现、时间复杂度分析
- B树和B+树的区别、应用
- HashMap的实现,扩容机制,扩容时如何保证可操作
- Redis扩容机制(渐进式单线程扩容)
- Spring AOP的原理
- Spring IoC的原理,如何实现,如何解决循环依赖
- 两线程对变量i进行加1操作,结果如何,为什么,怎么解决
- CAS概念、原子类实现原理
- synchronize底层实现,如何实现Lock
- AQS有什么特点
- 可见性的底层原理
- JVM内存模型,为什么要这么分
- 本地方法栈和虚拟机栈的区别
- 如何查看JVM参数是否正确
- TCP三次握手,如何实现
- Socket编程底层如何实现
- select和epoll的区别
- 算法:蛇形打印二叉树
字节跳动后端二面(项目面+技术面)
- 项目详聊(问了很多、很细)
- Innodb多列索引
- MySQL默认事务隔离级别,不可重复读是什么意思,如何实现可重复读
- Redis服务端有20GB内存,现在要缓存200GB数据,如何处理
- 算法:给出[[1, 2], [3, 5], [8, 8], [15, 16], [32, 38]],求间隔
字节跳动后端三面(综合面)
- 谈谈Java垃圾回收机制
- 算法:给出两个升序数组A、B和长度m、n,求第k个大的数
- 算法:给出数组A,长度为n,数组中元素的值位于[0, n - 1]之间,求是否有重复元素
- 职业规划
- 您如何学习Java
- 最近有在学什么,分享一下
总结
3次面试都面了1小时以上,有些问题自己也忘了,以下是这次面试的个人感受:
- 1面技术面,问得广又问得深且喜欢问实现和原理;
- 2面项目面,主要是项目和架构;
- 3面综合面,猜测是考察对知识的整体认知和对自己的学习方法、未来规划的认;
- 当然3轮面试都少不了的手撕代码(三面的算法题差点炸了)。
最后只想说,希望以上我的经历能给大家带来帮助,并且对每位阅读到这里的朋友送上一份福利,在此奉上我自己收集整理的[全套JAVA面试集]:基础+中级+高级等面试真题解析,SSM框架、分布式、微服务、调优:Spring、SpringMVC、MyBatis、ZK、Nginx、MQ、kafka、Redis、MongoDB、SpringBoot、Dubbo、SpringCloud等,以及设计模式、并发编程、网络、算法与数据结构等各方面的面试解析。
全套JAVA面试集
再者,如果你要去准备面试或者学习,可能光单纯的刷这些个面试题的作用还不能达到最佳效果,因此我将此阿里大牛手写整理的[Java进阶核心知识集]也一并奉献出来,只愿大家一举得Offer,跳个槽涨个薪。我也能攒波人品,一举两得,何乐而不为!
Java进阶核心知识集
最后只说一句:不管你是谁?不管你是要学习也好面试也罢,我都愿意将自己花了几个月整理收集的[全套JAVA面试集]+[Java进阶核心知识集]分享正在努力奋斗的你。
免费领取!
Java集合
Java多线程并发
Netty 与 RPC
Zookeeper
Kafka
由于文章的限制有需要的小火伴可【点击出处免费货区】
本文含有隐藏内容,请 开通VIP 后查看