渣渣本科的秋招面经
个人情况:双非本科,没有实习经历,自认为也没什么好的项目经历,整个秋招太难了。
运气还不错的拿到了快手的offer,大部分都是投了没信,无论大厂小厂,很多笔试机会都不给
没有秋招的经验,除了头条投了提前批和内推了腾讯正式批,后面的基本都是9月10号左右才开始投简历
当然面试技巧也很重要,傻傻的,一问一答,很难。简历包装也很重要,傻傻的,不重视,笔试机会都不给。
总结三点经验吧:
- 秋招之前能去实习,有实习经历个人感觉很重要
- 面试要学会随着面试官的点扩展出自己熟悉的部分,从点到网的这么一种感觉
- 简历写好一些,大部分面试官都会照简历问,所以准备简历的内容很重要,不然面试官都不知道问啥,就容易问到知识盲区
- 简历垃圾(面试官问了都不知道问啥,就随机问)
- 面试技巧为 0:一问一答,面试官都无语了
- 投简历找内推可以,但很多牛客上的根本就不帮你投,投没投你都不知道,还不如自己网申(反正网申跟内推都差不多了,都要笔试),除非部门直推
- 简历写太浮夸也不好,就像我后面猫眼跟滴滴都是问的SpringCloud,消息队列这些的底层实现。本人菜,没看过源码。导致很多回答不上
面经如下(记不太住,大家看看都有哪方面的问题就好,都比较常规)
头条 7.17 一面
自我介绍编程算法:找出第一个缺失的正整数
项目经历
mysql innodb 索引 隔离级别
编程:使用双线程实现count++各五次,不加synchronized可能会发生什么问题
网络TCP通信,状态
操作系统:进程
mybatis是什么,为什么使用Mybatis
腾讯一面08.10
多态怎么实现TCP客户端发送第一次关闭握手后还能接收服务端的数据吗
HTTP是文本协议还是二进制协议
Http怎么传输图片
Mysql B树与B+树的区别以及为何使用B+树而不采用B树
Http各个状态码
linux命令,查找进程内存使用情况
平时的项目除了采用日志查找问题还有什么方式
Mysql 公众号的emoji表情字符集采用什么字符集
Hashmap怎么解决hash冲突,除了链表还有什么方式
TOP K问题 1亿个数据找1000个最大值的时间复杂度
红黑树的查找时间复杂度
讲一讲你了解的红黑树
美团点评一面
自我介绍JVM垃圾回收
HashMap底层实现
Mysql事务隔离级别
有没有数据库或者JVM的调优经历
排序算法的稳定性和时间复杂度
理想的工作状态
说一个比较能体现自己实力的项目
OPPO一面 9.19现场面(一问一答,自我感觉很好,然后晚上同学收到二面短信自己没收到短信)
项目中Token令牌登陆验证和表单重复提交怎么实现的redis的数据结构类型有哪些
项目中排行榜怎么实现的,点赞怎么实现的(redis)
List、Set、Map常用的有哪些,linkedList、ArrayList的区别,HashSet底层实现原理,HashMap底层数据结构
Spring IOC为什么要用,好处是什么,AOP的实现的技术(CGLIB和动态***,他们的区别是什么)
Spring注入方式(区别,按类型和按名字查找)
mybatis怎么批量插入(foreach的使用),批量修改呢(不知道,回答的也是用foreach,我另外补充了if判断需要修改的字段,然后动态生成SQL语句(他点头了))
线程的状态都有哪些,怎么转换的
索引的数据结构、B+树结构、为什么下面要有链表相连各记录
组合索引的命中问题(最左匹配原则)
反问环节
头条1面 9.21(面试官太凶了,一脸不耐烦。一紧张,脑子一片空白。菜是原罪)
数据结构算法:将怎么实现最近最少使用缓存
B+数的查找【100-200】 过程讲出来
B树的查找呢?
优先级队列怎么实现
二叉树的S型打印 (讲了双向ArrayDeque的实现方式)只用队列和栈实现呢?(两种方式我都讲了用一个布尔值标记当前应该先入左结点还是先入右结点),HR不同意,说不需要标记(2层2层的打印)
操作系统是如何管理内存的
TCP三次握手,如果两次握手会发生什么问题
反问环节:直接放弃
华为 一 二 业务 面 9.22 (现场面,3点到6.30)
技术面忘了,两面都是讲讲项目跟基础,常规问题问了个正则表达式
除了后台,平时还了解过其他方向的兴趣吗?
编程题:手撕。。。
一个大字符串,一个小字符串,在大字符串中找出一个长度最小的字串,里面需要包含小字符串的所有字符。
快手 一面70+分钟 二面45分钟 10.15(都是面完即约下一面时间)
一面(不全,大概)自我介绍,介绍了做过的项目,然后面试官说直接问基础吧……
集合全套,说一下。
线程池说一下,(太罗嗦了)直接叫停,说一下任务来了的执行过程
设计模式,手写一下观察者模式
Spring的好处。
AOP原理。
传播行为有哪几种。
MySQL索引、聚集索引是什么、联合索引怎么存储的
TCP三次握手
手写一个阻塞队列(小BUG的地方很耐心的指导了一下)
二面(不全,大概)
自我介绍,介绍新项目,谈了微服务架构的分布式锁自己根据压测结果来优化过程
乐观锁悲观锁
同步怎么实现的(synchronized和Lock,底层原理说了一遍)
HashMap尽量说,ConcurrentHashMap也说一下
Mysql事务隔离,产生的问题说一下(说的过程还提下了锁跟MVCC,但是没有问我)
Mysql索引说一些(说了四个索引类型,B+树的结构及优点),又问聚集索引
手写一个堆排序
项目有用过多线程吗?那分布式锁除了Redis还有什么方式实现
链表找环(快慢指针),又问,哪怎么找入口呢(我说从头节点再出发一个指针去找,但是没说出来具体,面试官提醒说,思路是对的,用慢指针跟头节点一起走,他们相遇的地方就是入口(数学证明))
HR面 12分钟 10.24
学的专业,培养方向(实验班)跟其他同学有什么不同。
自我介绍
为什么自己能进实验室?
大学生活平时是怎么度过的。
自己的性格?
投过哪些公司或者投的工作地点的选择
秋招结果进展
反问环节?
10.17 数字广东 学校现场面 一面技术面20+分钟和HR面20+分钟
全程讲项目HR面聊一些个人选择和个人情况
10.23 猫眼一面 电话面55分钟 (面完约二面时间)
自我介绍,项目相关的。用过消息队列,知道底层实习原理吗?
主流的消息中间件的对比。
用了索引为什么会快呢?
springcloud,讲讲你知道的一些东西吧。
JVM,讲讲你知道的。(内存结构、垃圾回收)
Redis是单线程的还是多线程的。知道底层的实现吗?
讲讲线程池吧,执行流程(先核心线程,再入队,再最大线程,再丢弃)和那些参数
不加锁操作变量会导致什么问题。
Java多线程,讲讲你知道的锁吧(太多了吧。。。。)
使用锁访问共享资源会产生什么问题呢?(答,合理用了锁应该就没问题了,后面直接问死锁)
举一个死锁会发生的例子。一般怎么解决死锁呢?
编程:原题。一个矩阵,从左到右递增,从上到下递增,找一个数,返回坐标,没找到返回-1,-1
反问环节。完了直接约二面时间
10.25 猫眼二面 电话面66分钟 又是个小姐姐面试官 (两天后邮件:不合适)
自我介绍,自己觉得项目亮点Redis采用单机部署,如果Redis挂了怎么办
怎么保证Redis的高可用
JVM内存结构、垃圾回收
元空间除了放方法区之前的内容和常量池之外还有其他的吗?
Java多线程锁是怎么实现的、底层获取监视器的具体实现知道吗?
SpringCloud注册中心怎么实现的、eureka底层怎么实现的知道吗?
浏览器一次请求的整个过程
TCP的三次握手如果换成两次握手行不行,为什么
TCP怎么保证可靠传输,除了序列号和确认号之外还有吗?
流量控制和拥塞控制
(面试官补充了还有对数据包的顺序重组)???
编程题:求一棵树的最大的子树(所有结点的值的和)(递归版本用一个静态变量max做标记的做完了没问题,问如果不用静态变量的话能做出来吗?求大佬给点思路)
智力题:一个圆,一根线能分成2分,2根线能分成4份,N根线能分成几份(2、4、7、11)
反问或者有什么想补充的吗?
11.7 滴滴一面 40分钟 (5分钟后短信:通过)
自我介绍+项目介绍(Spring Cloud、dubbo、消息队列这些写在简历里还是需要准备一些底层实现,深入研究,不然还不如不写。免得面试官问了也不会。)ArrayList扩容,怎么扩容(回答了Arrays.copy,copy函数底层(native底层)又是怎么做的呢?)
Spring Boot相关(启动过程、怎么实现不配置就能用呢?回答了spi)
JAVA里面 SPI机制相关
类加载器中,Java SPI中 JDBC 那些类是哪个类加载器加载的。
常用的集合类,HashMap、ConcurentHashMap
Redis五种数据类型,底层实现类型
MySql索引(B+树,为什么使用B+树)
写一个程序,模拟死锁
算法:数组二分查找
11.7 滴滴二面 28分钟(5分钟后短信:凉)
自我介绍+项目介绍Redis怎么在项目中用呢?
SpringCloud用了哪些组件,ribbon做负载均衡用了吗?
ribbon跟ngixn负载均衡的区别?
ngixn负载均衡的算法有哪些?
讲讲CMS垃圾收集器、回收那个年代,每个年代都有哪些收集器。
MySql索引(B+树,Hash的区别)
一条Sql语句执行慢,该怎么处理
MySql调优,你有哪些思路?
Redis实现一个即时聊天室有什么思路?
算法:二叉树的后续遍历都有哪些方式实现,然后让写非递归的后序遍历(用了一个栈实现,能实现,但是不是最好的方式,面试官问能用两个栈来完成吗?)