2020届秋招散招 字节跳动后端开发面经(已拿意向书)
个人信息
广工2020届本科毕业生,非985 211,专业软件工程
经历
之前头条正式批笔试4道编程题只AC了2道,然后被刷了做了200多道还是太菜了
后来看到牛客有散招免笔试,抱着试一试的心态投了,然而几天过去毫无反应,20天后突然告诉我进行面试
9.26一面,9.27二三面,之后10.9晚上收到电话,拿到意向书。坐标深圳,部门头条(?当初投的好像叫互娱,应该是被调剂了吧),岗位后端开发,语言应该是用Go而不是Java
一面(纯技术面)
- 队列的实现,需要注意的地方
- 快速排序的实现、时间复杂度分析
- 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轮面试都少不了的手撕代码(
三面的算法题差点炸了)
另外,1面有些问得深答不出来,当时面试官问得老多了,一点停下来的感觉都没有。
最后,谢谢各位面试官给我面试机会!
#字节跳动##Java##面经##校招#