秋招上岸,写点感悟和面经回馈牛客

从七月底到九月初面试频频被挂,屡屡碰壁,颗粒无收。到九月中旬开始转运,各种走完HR面,看到希望。到这周三天连收三个意向,加上之前的一个offer,突然间,秋招就这样很梦幻的结束了😂
先大概说一下我的基本情况吧,武汉某985渣硕,Java岗。因为之前在北京实习,发现自己很不喜欢北京这个地方,深圳又离家太远,气候不习惯。所以本来是瞅准了毕业要去杭州的,想着就算阿里去不了还能去个网易滴滴啥的(真的是一点B数都没)🤣🤣🤣,于是7-8月网申和提前批完全没有投任何北京深圳的公司(其实直到现在也没投)。理想很丰满,现实很骨感,对互联网行业来说放弃了北京深圳等于放弃了一半以上的机会,而当时我却没有意识到这个问题的严峻。直到8月中下旬,当我意识到杭州公司岗位的情况并不乐观的时候,果断采取了预备方案,补投了一大批上海的公司以及一些杭州的三线互联网公司。
ps:我觉得杭州这个地方真的很奇妙,高校方面:浙大一流,其余三流;互联网公司:阿里网易一流,其余三流。完全不给任何过渡的机会啊。。。(个人观点,没有冒犯别的学校和公司的意思,我本科就是杭州双非学校)

以下是我投的一些公司以及最终的情况:
滴滴(杭州)    笔试挂
新浪微博(杭州)    要求线下面试无报销    放弃面试
网易考拉        提前批内推    一面挂
网易雷火        笔试完没消息
阿里新零售    简历挂。。。
京东(杭州)    一面后无消息
拼多多        一面挂
字节跳动(杭州)    二面挂    捞到北京移动端 放弃面试
美团点评(上海)    三面+HR  收到意向书
招银网络科技(杭州)    二面+HR 资料审核基本上offer
上汽国际商贸        技术+HR 挂
小红书(上海)        三面+HR 收到意向书
平安产险科技        二面+HR offer
贝贝网(杭州)        二面+HR 等结果
有赞(杭州)    二面挂
老虎集团(杭州)    笔试完没消息
爱奇艺(上海)        笔试完没消息

上面是一些参加了笔试面试的公司,还有一些投了简历石沉大海的或者鸽了笔试的就不写了,总之投了30家左右,不算多也不算少,目前拿到offer或者意向的有:美团点评、小红书、招银网络、平安产险科技。

简单写一下我记录过的几个公司的面经吧,感觉有些太晚了,但是希望对大家有帮助

网易考拉

一面 20min左右 视频面
全程怼java基础,而且都是语言层面的基础,项目完全没提
java的基本数据类型、占用空间
java的包装类,有什么作用
Integer和String的一系列==和equals问题
double、float表示数的精度问题,怎么比较大小
java中的访问限定符
static的作用
synchronized原理,作用,锁对象和锁class的区别
线程有哪些状态,线程状态转换对应那些操作
算法题:A、B两个数组,A是B的子集,数组内的数都是乱序的,找出B数组中没有在A数组中出现过的数

比较久远,只记得这么多了,难度也不大。视频面试,感觉面试官急着下班的样子,心不在焉。可能是考拉受到收购风波的影响,今年不怎么招人吧(我这样安慰自己)

字节跳动

一面 45min左右 视频面
介绍项目
redis有哪些数据结构,底层怎么实现
redis集群原理,哈希槽有什么用
使用的什么redis客户端,讲一讲使用
了解哪些数据库引擎
innodb和myisam的区别
数据库索引有哪些数据结构,B+树有什么优势
什么是聚集/非聚集索引,覆盖索引
联合索引最左前缀原则
三个列ABC,sql条件语句要搜索ABC、BC、CA,需要建立几个索引
JVM内存结构,每个部分包含什么
什么是GC分代
MinorGC和FullGC触发条件
有哪些GC算法,对应什么收集器
static方法加synchronized关键字什么效果
算法题:两个用字符串表示的大数相加,返回和,用字符串表示

二面 40min 视频面
一面完10分钟安排了二面
讲项目
讲一下LRU算法的原理
自己实现一个LRU缓存要考虑哪些方面,对外提供哪些方法
怎么判断LRU缓存中的元素是否该被淘汰,应该设置哪些指标
线程状态都有哪些,哪些方***让线程进入waiting状态
了解过那些集合,讲一讲其中线程安全的集合
concurrenthashmap怎么实现线程安全
JUC包里的同步工具了解过哪些
ReentrantLock实现原理是什么,源码层面
ReentrantLock和synchronized关键字的区别
volatile原理、作用,怎么使用
TCP/IP三次握手、四次挥手过程,尽量详细
算法题:N步反转链表,比如:1->2->3->4->5->6->7->8,N=3,则反转后的结果为3->2->1->6->5->4->7->8

算法题一开始理解错了,最后写的很不好。线程那里也答得不好,挂

拼多多

一面 37min 电话面
这个面试状态贼差,再给我一次机会一定能表现好。。。
上来先一道算法题:排序数组中找两个数和为N(剑指原题),如果有多对结果输出两数成绩最小的情况(剑指貌似没有这个)
我说这两个数的差越大,乘积越小。面试官让我用数学方法证明,没证出来。。。
问项目细节
数据库执行update方法时,如何将affect rows行数作为方法返回值
项目中哪里加了缓存,基于什么考虑
如何保证缓存一致性
MySQL乐观锁怎么实现,SQL怎么写
事务隔离机制
RPC执行过程,原理
RPC发生雪崩怎么处理
如何保证服务集群的高可用
如果一个操作要调用两个不同的服务,其中一个服务不可用,当前操作被阻塞,又有大量新请求不断涌来,怎么解决

只记得这么多了,还讨论了好多架构层面的问题,当时实在太菜了,完全招架不住。最后面试官说时间关系,今天面试就到这里。。。挂

京东

一面 1h20min 线下面
这个面试官路子不太一样,但是收获不小
设计一个全链路监控系统有什么思路
asm如何操作字节码,有没有了解过javaagent虚拟机参数
讲项目
B+树阶数怎么确定
数据库语句执行过程
数据库乐观锁怎么实现
Mysql临时表怎么查询
tcp为什么三次握手,有大量的连接处于timewait状态怎么解决
拜占庭将军问题
dubbo设计好处,如何实现负载均衡
RPC和HTTP restful调用比较
消息队列用处,如何保证消息不被重复消费
序列化相关知识
eh***缓存怎么用的,本地缓存和redis缓存应该怎么查
CMS二次标记有什么技巧
分布式一致性问题,有哪些算法
redis数据结构底层分别怎么实现的
红黑树和跳表比较
redis主从***,集群问题
线程池任务分配策略,为什么这样分配

聊了很久,很多问题都忘了,这个面试官路子不太一样,总是提出一个问题先给我把基本原理讲了,再抛出一个高阶问题给我回答,我真的接不住啊。。。比如先给我讲一遍线程池如何工作的,然后问我这种设计思想有什么好处。。。你把我想说的都说完了啊哥哥。。。不过面试体验还不错,面试官也很耐心很有亲和力,只不过估计听说我不想去北京以后他就对我没兴趣了吧。。。我不配做东哥的兄弟

美团点评

一面 1h10min 电话面
简单说了一下项目,全程问各种基础,问的极其广但不深
介绍项目
用过哪些java集合,哪些是线程安全的,hashtable和chm分别怎么保证线程安全
jdk1.8和1.7有哪些区别
创建线程池有哪些参数,分别什么作用,线程池有哪些拒绝策略
动态***有哪些实现方式。cglib怎么用
介绍一下线程安全,JMM,缓存一致性协议
分别解释一下原子性、可见性、有序性
讲一下volatile的原理,使用场景,内存屏障是什么
synchronized和ReentrantLock的区别,为什么synchronized是重量级的
AQS原理,哪些地方用到AQS
OSI七层模型
HTTP头部结构,HTTP2特性,HTTPS为什么是安全的
GC算法,哪些对象会被认为是垃圾
知道哪些查找算法,讲一下快速排序
RPC原理,服务发现如何实现,zookeeper的watcher机制
Dubbo的结构和工作原理
数据库索引相关,如何判断SQL语句有没有用索引
数据表设计原则
B+树作为索引的优势,最左前缀原则
Mybatis工作原理,如何映射
讲一下BIO、NIO和IO多路复用,Reactor线程模型
用过哪些日志框架
如果有300G的日志保存IP数据,内存空间有限,计算出出现次数最多的前100个IP

二面 40min 线下面
自我介绍
讲项目
画项目的架构图
如何进行技术选型的
针对项目提出一些场景问题,让我提供一些解决办法
服务熔断、降级思路
如何实现请求限流
消息队列的作用,如何保证消息不丢失
redis如何实现滑动窗口
int值的范围
正则匹配的问题
算法题:将一个字符串转成int型数字输出

就记得这么多了,基本都在问项目,基础涉及的不多。

三面 35min 线下面
自我介绍
询问学习方法,怎么学习一个新知识
servlet工作原理,servlet规范
熟悉哪些排序算法,讲讲堆排序越详细越好
讲项目,项目难点在哪里
项目里最有成就感的地方
当场打开我的github(简历上写了地址,简直作死),让我打开项目代码开始讲相应的部分
然后面试官说我觉得这没什么难度啊。。。

全程感觉被压力面试,特别紧张,觉得肯定完蛋了,很多问题都不记得了。。。

HR面 25min
基本上常规问题,聊得很开心,最后和我说两周内出结果

小红书

一面 40min
实习的项目
怼自己的项目
dubbo工作流程、zookeeper中的节点类型
MQ消息消费失败怎么办、消费成功还没有手动确认时宕机了怎么办
Spring的IOC容器原理,bean的生命周期
LRU描述,怎么实现
乐观锁进行CAS不断自旋怎么办,乐观锁的使用场景
Netty是干什么用的,基于哪些原理
***模式,Java的动态***有哪些,分别怎么用
Lucene怎么工作,倒排索引是什么,搜索结果的优先级排序怎么实现
算法题:一个数组中找出所有只出现过一次的数

二面 30min
讲项目,详细讲
分库分表什么情况下用,有什么用
设计数据库索引有什么原则
设计数据结构,一个栈pop、push、和getMin(获取栈中最小元素)三个操作都是O(1)复杂度(剑指)
算法题,删除一个链表中所有重复元素(剑指变形)
反问

三面 37min左右
讲项目,详细讲
线程和进程的区别
操作系统分配资源的最小单位
操作系统资源都有哪些
如果redis里面的某个key有大量的访问,并发量一台redis撑不住怎么办
用集群的话但是key相同还是会打在一台master上,怎么办
数据库索引
B+树做索引有什么好处
B+树索对于查询性能的提升体现在哪
逻辑题:25匹马,5赛道,不用计时器,最少比赛多少场可以选出最快的3匹马
职业规划
自己最大的优势/缺点
让别人评价你你觉得别人会用什么词、为什么
反问

HR面
讲一下自己的经历、为什么考研、为什么选上海岗位、为什么实习去北京、对小红书有了解么、期望的薪资是多少、现在手里有哪些offer。聊得也很不错

有赞

一面 55min 电话面
介绍项目
Dubbo原理
eh***有什么优势
一系列的redis操作中又一个Redis操作失败了怎么办
Java集合 ArrayList和LinkedList比较
线程池原理、怎么进行调度、线程池数量一定不会小于核心线程池大小吗

二面 45min 视频面
动态***
加权轮询机制怎么实现
滑动窗口用redis怎么实现、计数器怎么实现
Rabbitmq消费者如果消费失败怎么办
RPC框架的服务端如何进行服务暴露的
有赞是不问算法题的,我看过的面经里也都没见过,我觉得手撕代码这个环节还是很有必要的。。
其实问了很多,我没有专门记录,只凭着记忆写了点。主要会问很多项目细节,每个人的项目都不一样所以没什么参考价值。

另外还有平安产险科技、招银网络、贝贝网的面经,也基本是项目为主,基础部分要么照着简历问一问要么基于项目展开一下,就不贴了。其中有一次面试还被面试官恶心到了,当时就想怼他两句扭头走了,简直价值观有问题🙄🙄🙄不过最后还是忍住了。。。具体是哪家公司就不说了。。。

总结一下吧,大佬可以无视哈。首先我本人很菜,其次由于我只投了杭州和上海的公司,确实错过了很多的机会,所以最后也没有收割多少offer。不过人的精力也是有限的,每一场面试完及时做总结,发现自己不足加以弥补是很重要的。从七月底到现在快两个月的秋招,我觉得自己真的成长了许多,一开始面试时自我介绍都磕磕绊绊,讲项目也讲的没有什么条理,遇到不会的问题会尴尬得一个字都说不出来。后来随着面试越来越多和不断总结提高,我渐渐地能从容的应对各种情况了,总会习惯性地分几点有层次的回答问题,遇到不熟悉的问题也不再是尬在原地,而是尝试着用已有的知识去分析问题,和面试官多多交流。其实很多时候面试官并不要求你能把一个场景题的最优解决方案回答出来,只要你可以多和面试官交流,尝试着从不同的角度分析问题,给出多个可能的处理方案,把自己思考问题和解决问题的能力展现给面试官就足够了,面试官也会很认可这样的表现。

另外我的一个经验是,一定要对自己简历上的项目足够熟悉,熟悉到每个场景有几种解决方案,优化演进的过程是什么,技术选型是基于什么考虑,基于每个模块每个业务场景可能出现的潜在问题都要有足够的了解。因为如果面试官对你的项目有兴趣,或者说你能在介绍项目的时候讲得足够有深度,那么面试的内容多半会以项目为主。而如果你能给面试官展现出你的思考能力和解决问题的能力,是很加分的。

还有关于算法题,我面试时撕过的算法题都不算难,不知道是不是因为运气好。我刷题刷的不多,剑指offer两遍+leetcode40道左右+牛客公司真题30道左右。算法能力还是非常重要的,时间充裕的话多刷题会对大多数的面试帮助很大。包括考虑边界值,输入合法性,和一些其他的编程习惯和代码规范也都是手撕算法时所要考察的内容,都需要勤加练习。

最后是关于运气和缘分,我一直相信面试中运气和心态对于面试结果的影响是要超过50%的(当然某些巨佬可以秒杀一切面试,不在考虑范围内),可能有点夸张但就我的经历来说是这样的。面试的时候遇到一个什么样的面试官,碰巧遇到什么样的问题,自己当天的状态好坏,心态的起伏变化都会对面试结果产生极大的影响。其实说这个主要是为了告诉一些目前还是0offer或者没有拿到理想的offer的同学,在面试失败时,不要做过度的自我否定,不要认为这百分百就是自己的问题,不要因为眼下的一些小小的失败就觉得自己一无是处,谁知道明天是什么样子呢,或许下一场面试就是你转运的时候呢?保持一个良好的心态,认真准备每一场面试,不到最后就别放弃,成功终究会降临在你的头上的!

最后祝所有牛友都能早日上岸,拿到理想的offer,成为人生赢家哈!
#秋招##Java工程师##面经##面试流程##offer比较##岗位评价##招聘进度#
全部评论
顶起来!
点赞 回复
分享
发布于 2019-09-27 17:57
还是要多看几遍,很多总结都很到位
点赞 回复
分享
发布于 2019-09-27 18:03
小红书
校招火热招聘中
官网直投
非常用心的面经顶起来!
点赞 回复
分享
发布于 2019-09-27 20:04

相关推荐

16 54 评论
分享
牛客网
牛客企业服务