首页 > 秋招上岸,个人历程和面经总结
头像
最肯忘却故人诗
编辑于 2021-09-30 16:31
+ 关注

秋招上岸,个人历程和面经总结

2021.4.16号投出自己第一份实习简历,4.23号收到第一次实习面试,5.25号收获第一份实习offer6.21号开始正式秋招提前批第一次面试,8.21号收获第一份大厂offer,9.6号投出最后一份简历。国庆即将来临,我也选择在国庆的前一天总结一下我的秋招之旅,我的秋招也宣告结束了!非常感谢牛客平台,在这个平台上承载了我以及许许多多人在招聘过程中的喜怒哀乐,酸甜苦辣。我从牛客上学到了很多,也是牛客让我遇到了许多并肩作战的小伙伴,我的秋招之路也没有那么孤独了。此外艾特自己的两位兄弟@人菜就要多学习 @转行不易,他们都是两年制的硕士,我们本科一个班,两个人都算是非科班转码并且斩获了各个大厂的offer,也是在他们的引领下,自己走上了转行的道路,非常感谢他们!也非常感谢一路陪伴我的朋友们!

背景介绍

本科东北某985机械专业,研究生浙江某985机械专业,完完全全非科班转码选手。无实习(虽然获得了实习offer,但是导师不放人)、无实际项目、无计算机相关竞赛(唯一能挂上钩的就是数学建模竞赛,哈哈),JAVA后端选手。目前收获的offer:阿里巴巴,美团,京东,好未来,携程;正在意向:虾皮,华为;仍在进行:快手等HR面,网易等二面。看到这里,可能部分非科班选手会觉得我是因为学历占了很大优势才能拿到这么多offer,但我想说的是非科班转码中学历所占的比重真的不是很大,且听我慢慢道来。

我适合转码吗?

我想大家看到这个帖子的时候,绝大多数人已经决心想要转码了(毕竟不转码可能都不知道牛客网),有些人可能是正在转码或者秋招的路上。这一小节我就写给那些还没想好要转码的同学或者刚开始转码但有些动摇的同学吧。其实,适合转码和为什么转码本质是一回事情,搞清楚了你为什么转码其实就知道你适不适合转码了。那就先说一下我什么转码吧?大家也都看到了,我本科和研究生都是机械专业,加起来机械学习了六年之久,为什么突然想要转码呢?我想第一个直接的原因,就是薪资的原因吧,大部分人都是冲着互联网薪资来的,毕竟自己辛辛苦苦读了这么多年书到头来发现自己的专业是天坑专业,连个让自己满意的工作都找不到,我想这是大多数人不能接受的吧;第二个原因,兴趣爱好,我把这个原因排在了第二位,可能对我来说是第二位吧,因为我也不确定我是因为它的高薪在学习的过程中对计算机这个行业产生了兴趣,还是因为对它感兴趣而喜欢学习它。但是如果恰好计算机就是你一直感兴趣却由于种种原因而读了其它专业的情况的话,那么毫无疑问,请坚定决心转行计算机吧!第三个原因,自己的确受不了现有的专业了以及发现自己也真的不适合科研,天坑专业的论文以及里面的数据怎么来的,不用我说我想大家懂的都懂。而这恰恰也是我喜欢计算机的一个原因,因为计算机比较真啊!不是0就是1,代码写通了就是通了,有bug就是有bug,没有那么多虚假。最后,我想说的是,只要不是一写代码就恶心,极度讨厌写代码的话,那你就是适合转码的!此外其它的任何困难都是可以克服的!学不会?都是工科专业,上了多少年学了,不存在学不学的会!没时间?每天其实抽四个小时,坚持下去一年就可以了,时间都是自己挤出来的,省出来的!没实习?没关系,实习不是必须的!其实一切的一切,都是看你个人的转码意愿,在你个人意愿比较强烈时,这些问题你自然都会找到解决办法的。

学习路程的难点及需要注意事项

这个小节,本来是想分享一下我的学习路线以及推荐一些课程给大家的,但后来想想,自己推荐的东西也都是网上一搜就能搜到一堆的,所以这里就不重复推荐了哈。在这里我主要分享整个学习过程中常见的困惑和难点吧。

1.什么时候刷算法题?

我个人建议一定要早刷!早刷!具体要多早呢,其实学完javaSEJava基础之后就可以一边看数据结构,一边开始刷起leetcode了。刷算法题毫无疑问是最痛苦的,但要明白的一点是,最痛苦最难学的东西一定就是和别人拉开差距的地方!首先笔试是需要做算法题的,面试也是会手撕算法题的,面试过程中也会经常问各种数据结构的问题,所以学好数据结构以及刷好算法题是十分重要的。我个人在这个方面其实就有点吃亏,前期其实我还有坚持刷,中期的时候觉得学的东西太多了,就没有好好刷,一直到后期才开始集中刷,最后也只是刷了300多道。此外,十分重要的一点是一定要保证自己刷的算法题遇到一定能会,所以这就要求我们需要经常回顾一下自己做过的题并且做好总结。我个人是这么做的:整个秋招的笔记我都是记录在oneNote中的,其中有一个笔记本专门记录了myLeetcode,我首先按照标签分好类,每次做完一道题,就把整个题截下来并贴上代码,此外还可以按照有没有第一次做出来或者考频来做个记号。我还是挺推荐整个学习或者秋招过程中做好学习记录的,好处主要是可以温故知新并不断扩大知识点内容,比如常考的知识点像锁升级过程或者垃圾回收算法之类的,大家完全就可以把这个知识点记录下来,然后下次看到可以补充的再补充进去,如果忘了就翻出来看一下,而不是每次觉得自己忘了又重新去百度或者看博客,每次看到的内容都不一样,这当然不利于自己的记忆了,甚至每次看到的内容可能有对的也有错的。
2.要学的东西太多了,该怎么办?
不可否认的是,刚开始接触JAVA语言时,看到密密麻麻的学习路线,的确会头皮发麻,不知所措。学习过程也是跳来跳去,一会是javaWeb,一会又是数据库,数据库完了之后又来个ssm,ssm结束之后咋又开始学springboot,此外还有大家说的redis,es,虚拟机,消息队列又是什么?操作系统,计算机网络该啥时候学呢?我想这些问题在大家还没学完整个体系的时候都会出现这样的问题,这个是十分正常的。之所以会出现这个困惑的原因是你没有完整做过一个项目的原因,如果你完整做完了一个项目,你就会知道这些组件以及你所学的每一个技术在项目中所处的位置了。比如springboot是搭建项目的框架,javaWeb可以来用做前端页面,数据库可以用来存储我们的数据,redis可以用来缓存数据库的数据,es可以用来搭建搜索引擎,消息队列可以用来解耦等等,而这一切的基础都是基于三大件即操作系统,计算机网络技术,计算机组成原理。所以看到这,大家知道该先学什么了吗?对,三大件!但是真学起来,你可能会觉得很枯燥,很难理解,这恰恰又需要你去先学习一下JAVA基础以及体验一下我们的页面与代码的交互过程才又能理解这三大件的。所以,你看吧!并没有什么绝对的学习路线,学习顺序并不是固定不变的,而恰恰是需要你不断学习下一个技术并偶尔去回顾一下上一个技术的,并且中间要穿插着学习计网和操作系统,它们是互相影响的,并且能互相促进理解的。所以我想说的是,不必纠结先学啥,也不必纠结具体的学习顺序,因为这些东西是你迟早都要学完的,只要保证基本的顺序,慢慢去学即可,当你学完整个体系并且做了一个项目之后,你就会柳暗花明,拨云见雾!
3.没有实习,好慌啊,实习到底重不重要?
首先,回答最容易回答的一个问题。你要问我实习重要不,我肯定会说重要!为什么重要呢。因为实习让你见识到真正的生产环境,让你提前了解你实习的公司以及一个部门是如何协同运作的,这些是你自己学习所不能体验到的。但这是泛泛的回答,实习固然是重要的,但是具体到个人或者不同的时间节点,这个回答是不固定的,甚至有时候实习是拉后腿的。我个人是没有实习经历的,但是我全程参加了找实习的过程,从4月末到6月初,我基本参加了所有大厂的实习招聘,并且获得了网易,美团,京东的实习offer,虽然由于导师的原因,自己没能去参加实习。虽然没有实习,但我是完全不后悔的,一开始还会羡慕拿到实习并且真正去实习的同学,到后面我一点也没有羡慕了。主要的原因有以下几点:1.当时自己虽然学完了整个路线,但是并没有深入学习,自己急需深入学习各个知识点,这是需要花费大量时间的,如果去实习了并不一定有那么充足的时间;2.如今各个厂的提前批越来越提前了,如果去实习,很可能或错失很多提前批机会;3.如果实习没转正,或者实习过程中干的是杂货,做的东西包装不进简历里面,完全是功亏一篑。行吧,我说完了,可能你会觉得这些理由有些许牵强,但这些的确都是我当时这么想的,“任何事物都有两面性”,的确如此,去实习也有实习的好,不去实习当然也有不去实习的好,但是前提你一定要抓住这段时间,好好去学,一定不会差。
4.项目的问题该如何解决?
项目呢,我一共做了两个,一个是牛客论坛系统(单体springboot项目),一个是B站的谷粒商城(微服务分布式项目)。没实习的小伙伴我建议项目一定要两个(写简历上的),多了或者少了都不太好。至于项目,我最大的建议点是从简历出发!!什么意思呢?首先,我们所做的项目最终都会写到简历上的,而面试官也大都会按照我们简历写的内容来问,所以如何把项目写到简历上是一个很重要的事情。建议还没有秋招的小伙伴先去了解一下投互联网的简历长啥样的。那么有一个十分重要的问题就是,简历上关于项目的技术要点该怎么写?这个就是关键了,所以说大家在做项目和学习项目的过程中一定要注意这个!并不是一股脑直接做完,细到每一个方法都想知道是干嘛的,而是在学习项目或者看教学视频的时候,头脑中不断地去思考这一节课所教的技术点到底可不可以写到简历中,或者你觉得项目的这个点你学的很透彻,那么你就可以写到简历中!而不是你把整个项目学完,回头一看发现全忘了不知道该写什么到简历中或者按照别人的简历照搬,这都是对自己十分不利的。下面贴出了一份我在学习B站上谷粒商城项目时所作的记录,这个项目是我在找实习结束后做的,是7.1号到7.20号做的,这个项目很长,B站400多集,有的小伙伴光搭环境可能就崩溃了,而我在拿着牛客论坛系统经历过找实习的面试后,就按照我上面所说的方法去学习了这个项目,整个过程我只用了20天,最后写到简历以及后续秋招的面试反馈都是很好的,这个项目数次于面试中救我。下面贴了我的两个oneNote的记录图,这是我在一边学习项目时,一边思考简历中可以写的东西,项目一看完,我的简历这部分也就写完了。

5.学习时间与科研如何安排?
关于转码的学习时间与学校的学习任务或者科研的平衡,这里我送大家一句话:工作必须有,毕业也要毕;工作若没有,毕业有何用;工作都有了,拼死也能毕了毕。所以,转码为重,科研能水则水,转行一旦成功了,还怕毕不了业嘛,拼死也不能让自己毕不了业啊!其实,研究生的主要矛盾还是集中在导师方面。有的导师非常好,允许你转码甚至放你实习;有的导师不食人间烟火,不明白为啥现在学生都想转码,自己所在的“天坑专业”以后就业不是“挺好的”吗;有的导师是要求严格,谈话组会频繁,这种压力是最大的。所以导师可能是你转码路上最大的“拦路虎”,但是怎么说呢?毕竟你还是他的学生,你所学的专业还是导师的方向,导师要求你科研,要求你学习本专业的知识,这是无可厚非的,你所能做的就是最大空余时间来学习转码知识,这边我说一下我的情况吧,我的导师算是比较严格的,而且我所在的课题组从来没有任何一个人有过实习经历,就算毕业的师兄师姐也没有,而我之前说的拿到实习offer由于导师的原因没能去实习并不是我和导师沟通后的结果,而是我直接判定的结果,根本就没敢也没去和导师商量。而且我所在的实验室导师和我们就在一个屋子里,白天导师基本都会来实验室,出去接杯水都会从你身边路过,所以白天我基本没有时间学习计算机,都是晚点等导师走了才是开始学。从3月初到9月初,自己每天大概是凌晨三点到四点回寝室,早上8点左右起床,好几次是通宵学习在食堂吃完了早饭才回去睡觉。现在想想,真的像梦一样,我也不知道我当时是如何坚持下来的。和大家说这些,并不是让大家效仿我一样熬夜,而是想告诉大家,只要转行的意愿足够强烈,时间或者学习上的苦难都是不足为惧的!

秋招面经

这里面包含提前批以及秋招的面经,有凉经也有成功的经。不夸张的说,自己是从找实习即4月末一直面到了9月中旬,闲的时候两天一面,忙的时候一天三个不同公司的面试。所以说有的厂基本是面试了三次,第一次是找实习,第二次是提前批,第三次是正式批,而且每个批次可能由于挂了还会捞你,前前后后,大大小小,我基本面试了上百次了吧。熟能生巧,面试也是,希望大家无论实习与否,找实习的过程尽量参加进来,以及千万不要错过提前批!

vivo(一轮技术面,挂)

6.21 19:40 -8:20
1.自我介绍
2.ThreadPoolExecutorle类的使用及其实现类有哪些
3.CAS锁
4.谈一下AQS类
5.countdownlatch如何使用
6.怎么理解运行时异常
7.计算机网络五层协议
8.怎么理解滑动窗口
9.http协议已经发展到几了
10.http协议有状态吗
11.Session存放在哪
12.怎么保持缓存一致性
13.redis线程模型
14.redis触发器
15.mysql存储引擎的区别
16.唯一索引和非唯一索引的区别
17.怎么理解ACID
18.分布式锁了解吗
19.kafka组件及使用场景
20.linux常用命令
21 怎么在linux中打开一个1G的文件
22.怎么理解零拷贝
23.SpringBoot相比Spring的优势
24.反问


蔚来(一面挂)

一面:2021.7.10 17:00-16:00
自我介绍
项目登录密码怎么存储的
redis数据结构类型
zset数据结构及应用场景
缓存穿透,雪崩,击穿
TCP与UDP区别
TCP可靠连接如何保证
算法题:
1.两个结点的最近父结点
2.快排找到数组第K大(含重复元素)


大华(已OC,2轮技术面+HR面)

7.20 19:00-19:30一面
1.自我介绍
2.Redis缓存点赞数怎么存的
3.hasmap数据结构以及get和put过程
4.hashmap是无序,想要实现存储和取出顺序一致(比如页面下拉页表),使用什么数据结构(Linkedhasmap)
5.多线程中的闭锁和栅栏
6.线程池7大参数
7.SpringAop如何理解
8.mysql隔离级别及默认隔离级别
9.A,B同时开启一个事务,B的插入已经提交了,那么A能否查到B插入的数据
10.mysql主键索引和普通索引的区别
11.双亲委派机制及缺点
12.打破双亲委派机制的案列

7.22 19:40-20:25 二面
1.自我介绍
2.项目的架构设计
3.注册登录怎么做的
4.注册时的激活流程
5.缓存点赞数如何实现
6.取消点赞如何实现
7.同步消息的堆积怎么实现
8.如何理解缓存
9.缓存雪崩,缓存击穿,缓存穿透
10.为什么选择ES
11.如何创建一个SpringBoot应用
12.怎么理解Restful风格,好处
13.Post和Get
14.http协议,是否有状态
15.Cookie和Session,Cookie的限制
16.访问一个网址发生的事情
17.JDK8的Stream
18.mysql的事务
19.mysql中的MVCC
20.JVM的内存模型
21.线程池七大参数
22.如何学习的JAVA

7.27 15:40-16:00 HR面
1.自我介绍
2.项目的收获
3.项目分工
4.自我规划
5.家里兄弟姐妹
6.薪资要求

华为消费者部门(OC,两轮技术面+一轮主管面)

一面 8.26 9:30-11:00
1.自我介绍
2.绩点情况及学习情况
3.学习语言
4.JAVA常用集合及特点
5.开启一个线程的方法
6.如何保证线程安全
7.final关键字
8.spring的模板和特点
9.常用的设计模式
10.redis的特点
11.笔试review
12.算法题
华为机试——6个数找最大时间
https://blog.csdn.net/AMDDMA/article/details/105331387

二面  8.26 主要聊项目 14:30-15:30
1.首先确定项目是练手还是上线的
2.项目如何确定的需求
3.项目的各个模板以及表设计的层级jiege
4.项目中遇到的困难以及如何解决的
5.项目有没有继续迭代优化
6.具体的问题:项目中缓存怎么用的
7.如何一些热帖很多 分布在不同结点 如何做一个排序
8.手撕代码  leetcode692 前K个高频单词

主管面 8.27 15:30-16:00
1.自我介绍
2.介绍课题
3.学习遇到的困难
4.你觉得你的优点是什么 举个例子
5.反问环节

虾皮上海提前批(两轮技术面,挂)

面试:2021/7/25 17:45-19:00
投的是虾皮上海的JAVA开发,但面试官是新加坡的,面试体验挺好。
1.上来是3道算法题。。。,难受。不过好在面试官先和你讨论思路,然后慢慢往下做,
第一道是一个数组中只有一个数字重复出现,找出这个数字。对应Leteecode 136-只出现一次的数字;
2.后面两个算法题分别是,最长连续和子序列,和最长连续乘积子序列,对应Leetcode的53和152.
3.第一个项目中的ES怎么用的,ES集群
4.第一个项目中主要用了ES哪几种查询
5.常用的Redis数据结构
6.缓存穿透,传承雪崩,缓存击穿
7.Redis的SortSet底层数据结构(跳表) 并画出来
8.mysql底部的索引结构
9.怎么理解微服务
10.RPC框架

二面 2021/8/1 17:45-18:30
1.如何设计ES的索引结构以及分布式下的存储
2.GCROOTS到底如何找到垃圾的
3.如何优雅的停止一个线程


虾皮深圳正式批(待意向,两轮技术面+HR面)

一面8.29 11:00-12:00
1.常见的排序算法以及口述快排和冒泡排序
2.单链表和双链表插入元素的过程
3.堆和队列的区别以及堆排序过程
4.100G文件大小的数据进行排序
5.TCP四次挥手和三次握手
6.进程和线程区别
7.上下文信息指什么以及常见的上下文切换场景
8.了解程序计数器吗
9.尾递归了解吗
10.项目中写ES的时候出现问题怎么办
11.写算法 二叉树深度 链表合并
12.帖子的分数计算公式
13.为什么使用本地缓存帖子
二面 9.4 10:00-11:00
思维题:一根金条,需要付给工人,工人工作七天,需要每天给他一段1/7的金条,如何保证切两刀就完成任务。
1.常用的设计模式
2.动态代理模式的好处
3.布隆过滤器
4.主键自增的好处
5.redis数据结构
6.跳表怎么设计的
7.哈希冲突的解决方法
算法题:最长无重复子串 3. 无重复字符的最长子串
HR面 9.9 18:00-18:20
1.你对虾皮面试下来总体的感受
2.对虾皮后端开发岗位的看法
3.你对虾皮的了解
4.个人的职业规划
5.你在科研项目中遇到的问题及如何解决
6.你觉得你的性格缺点是什么
7.你现在手上的offer
8.个人的学业情况
9.反问

京东提前批(一面挂)

2021/7/24一面 10:30-11:00
1.自我介绍
2.为什么转码
3.学习方法
1.string中常用方法
2.string是可变的嘛
3.常用的集合类工具
4.不可变设计的好处
5.集合类空数组的好处
6.static对象和成员变量的加载顺序
7.mvc框架的好处
8.servlet filfter listener的加载顺序
9.用过的rpc框架
10.发生死锁的条件及如何避免
11.递归和深度优先遍历的区别
12.spring的核心思想
13.如何实现spring的容器

京东正式批(已OC,两轮技术面+HR面)

面试 8.10 20:00-20:42 数据中台
1.介绍项目中Redis如何使用的
2.介绍一下登录流程3
3.MySQL索引的调优
4.如果一个系统运行了两周之后,突然变慢了,怎么排查(说实际能行的)
5.你认为你的优势和缺点(两个)
6.如果你和你同事在一个项目上有不同的方案,但是都能实现而且工作量一样,并且同事坚持用他的,你怎么办。
7.大学参加的社团
8.怎么看待加班

8.11 13:00-13:30 二面
1.介绍项目中redis缓存怎么做的
2.redis缓存的bigkey问题如何解决
3.springboot的依赖注入
4.你在看springboot的源码收获
5.数据库三范式
6.学习方式
7.为什么没有实习
8.为什么转码
9.最近看什么书

8.12 10:50-11:25 HR面
1.自我介绍
2.如何学习的,时间怎么规划的
3.为什么转码
4.对工作地点的要求
5.坚持最久的事情
6.你学习规划的期望值以及离这个目标还有多远
7.期望薪资


美团优选(已OC,2轮技术面+HR面)

美团一面  8.17 号
15:00-17:05
1.算法题:LRU
2.项目介绍
3.项目中如何实现单点登录
4.项目中的分布式锁如何实现的
5.用过redission吗
6.电商系统一般有那几块服务
7.JAVA的三大特性
8.JVM内存模型
9.JVM内存结构
10.堆里面可以分代,还可以使用什么区分(G1中分region)
11.可以手动GC吗
12.new一个会放在哪个区
13.搜索树和红黑树对比
14.map接口下的类
15.JAVA里锁的区别
16.死锁解决办法及监测方法
17.mysql创建一个表需要注意什么
18.mysql的语句优化
19.TCP三次握手
20.操作系统段页式内存管理的寻址
21.写代码时候前应该如何思考

8.20号 19:00-20:00
1.项目中下单和扣库存分布式任务怎么保证的
2.java hashcode和equals方法为什么需要两个一起重写
3.说一下collections下的接口以及队列常用方法
4.说一下map下的子类,为什么需要linkedhashmap 以及treemap的应用场景
5.jvm常用的垃圾回收器,以及新生代和老年代垃圾回收器的不同
6.为什么新生代用标记复制算法
7.中途一个算法题:有序数组第一个出现的目标数字的下标(二分法寻找左边界)
8.操场系统为什么有内核态和用户态
9.说一下aqs是怎么阻塞线程的
10.开启线程的方法
11.mysql的基本组成单元
12.mysql底层结构和隔离基本
13.线程中的异常如何处理
14.为什么数据库需要意向锁
15. hasmap正在扩容时插入会发生什么事情
16.explain里面的字段
17.说说你最近学习啥以及收获
18.给你一个任务,如何去完成

8.23号 17:00-17:30 HR面
1.自我介绍
2.大学里最喜欢的科目和感觉比较难的科目,为什么觉得难
3.所做的项目遇到的难点,如何克服
4.大学里参加的比赛
5.最近学习的书
6.自己意向的公司
7.比较注重公司的什么特点
8.学习路线
9.未来发展规划
10.反问环节:新人培训,入职后能否换城市


好未来(2轮技术面+HR面)

一面 8.14 18:00-19:00
1.JAVA面向对象的特点
2.如何理解多态
3.抽象类和接口的区别
4.重载和重写的区别
5.JDK,JRE,JVM区别
6.JVM内存区域模型
7.JMM内存模型
8.synchronized关键字
9.CAS锁
10.线程池七大参数
11.OOM溢出如何分析
12.JAVA集合集合
13.计网五层模型
14.AQS锁
15.servlet生命周期
16.如何理解微服务
17.算法 两数之和

二面 19:00-19:40
1.项目介绍
2.如何保证分布式事务
3.进程调度算法
4.说一下红黑树
5.写一个sql:一个学生表里每门课程的最高成绩的学生ID(可能有重复)
6.算法题:买股票

HR面 19:40-20:10

网易云音乐直通车(挂)

一面 8.30 16:30-17:15
算法题:链表重排序143. 重排链表
1.java 阻塞队列以及性能
2.hashmap流程以及rehash
3.spring动态代理
4.spring事务的底层实现
5.java线程池参数和常用类型
6.如何设置线程池中线程优先级
7.tcp重用字段和拥塞控制
8.linux命令
9.智力题 如何在1-21个无序数字中找到缺失的数字
反问

二面 9.3 16:40-17:40
1.mysql悲观锁和乐观锁
2.mysql索引
3.mysql联合索引的好处
4.mysql事务以及四大特性以及可重复读的含义
5.为什么要有缓存
6.项目中如何保证缓存的更新的
7.分布式事务的处理方法
8.可靠消息+最终一致性的解决方案
9.除了rabbitmq还了解什么消息队列
10.写jdbc的时候如何保证数据库事务
11.分布式项目如何负载均衡
12.如何学习的

快手第一次 (1面挂)

快手一面 9.4 14:00-15:00
1.单例模式
2.如何去除list的重复元素并返回一个list
3.项目介绍
4.分布式锁如何实现的
5.介绍一下分布式事务以及项目中的应用
6.数据库隔离基本以及默认隔离基本
7.kafka为什么快以及和rabbitmq对比
8.为什么需要缓存
9.缓存穿透和击穿怎么解决
10.讲讲布隆过滤器
11.异步远程调用怎么确定这个请求是谁发来的
12.远程调用的流程
13.hashmap的数据结构
14.synrchroinzed关键字
15.linkedhashset底层


快手第二次(等HR面)

一面 9.18 10:00-10:54
1.java的三大特性及好处
2.java的objeect类中的方法
3.equals和hashcode重新规则
4.wait和notify用处及原理
5.sync原理
6.lock锁
7.乐观锁和悲观锁
8.锁升级过程
9.springaop和ioc
10.两种动态代理
11.四次握手
12.从磁盘读取一个文件的过程
13.虚拟地址,磁盘空间有内存地址嘛
14.mysql默认隔离基本及能解决的问题
15.mysql存储结构
16.redis io线程

二面 9.18 14:00-14:50
1.合并两个有序链表的递归和非递归方法
2.二分查找左右边界并设计测试用例
3.分布式锁




携程上海(已OC,两轮技术面+HR面)

一面 8.30 14:00-14:45
1.java基本类型
2.equals和hashcode方法
3.volitate关键字
4.hasmap和安全的map
5.说一下synrchronized关键字
6.mysql索引
7.mvcc
8.redis过期删除策略
9.redis为什么是单线程想
10.redis数据结构
11.list底层数据结构
12.项目中怎么用redis的
13.雪花算法
14.项目介绍
15.如何保证超卖的
16.链表是否有环 topK 爬楼梯
17.反问

二面9.7 18:00-19:10
1.java垃圾回收怎么做的
2.jVM各个内存区域的默认大小
3.JVM设置内存区域的命令
4.为什么用mysq的lnnoDB引擎
5.项目中如何解决并发问题的
6.说一下分布式锁
7.mysql为什么用B+树
8.myisam引擎的优势
9.redis变慢的原因
10.如何理解面向对象

HR面 9.14 15:45-16:05
1.自我介绍
2.为什么选择转码
3.为什么当时不考研到计算机
4.毕业之后准备做后端开发的原因
5.一些项目问题
6.做项目遇到的瓶颈
7.你的优势
8.你在整个秋招过程中觉得自己的不足
9.对携程的了解

阿里菜鸟网络(已OC,3轮技术面+HR面)

一面 8.31 19:00-19:40
算法题:合并二叉树617. 合并二叉树  二叉树层序遍历 102.二叉树的层序遍历
1.为什么转码
2.JVM加载一个类的流程
3.JVM类加载器以及打破双亲委派的例子
4.多线程同步的常用的方法
5.多个线程同时操作一个对象如何保证安全
6.ThreadLocal原理
7.项目介绍
8.秒杀的超卖什么解决
9.rabbitMQ延迟队列怎么实现的
10.如何一个消息消费者消费一半宕机,如何保证消息能继续消费
11.多个消费者,如何保证一个消息只能消费一个消息
12.有没有用过mybatis自动生成器以及底层原理

二面:9.1  23:00-23:30
1.为什么转码
2.对项目有什么自己的改进
3.项目中的redis中怎么使用的
4.redis雪崩,击穿和穿透怎么解决
5.JAVA的跨平台性怎么体现的
6.解决并发问题的常见方法
7.JAVA IO说一下
8.一些简历上的其它问题:比赛和是否能来实习
三面:9.6 19:45-20:10
1.redis的优点
2.redis的数据结构使用场景
3.redis分布式锁怎么用的
4.redis的特点
5.redis持久化
6.kafka怎么保证消息顺序性
7.本地缓存的缺点
8.jvm的oom调优
9.dump内存的命令
10.消息队列应用场景

HR面 9.8 16:00-16:20
1.自我介绍
2.你觉得学习与工作的不同
3.自己想要的工作节奏
4.自己的学习方式
5.坚持最近的事情
6.参加比赛获得的感受
7.学生工作获得的感悟
8.反问

Oppo提前批(挂,2轮技术面)

1.自我介绍
2.mysql引擎
3.事务四大特性
4.隔离级别
5.两种引擎的不同
6.多版本并发控制
7.https和http
8.多版本并发控制
9.四次挥手
10.中间人攻击
11.redis有序集合的底层数据结构
12.红黑树的两个重要操作
二面:9.2 16:40-18:00
1.分布式锁要保证的几个要点
2.zookpeer分布式锁怎么实现的
3.zookpeer分布式锁过期时间的问题
4.该怎么设计高并发系统
5.讲一下cap和base理论
6.项目中服务熔断怎么做的
7.如何实现限流
8.短时高并发流量如何限流
9.令牌桶算法
9.服务熔断的底层
10.如果一个服务里面有重要的数据和不重要的数据,此时直接熔断了服务之后重要数据就不能使用了,如何解决
11.项目中如何解决缓存的更新的
12.缓存雪崩和缓存穿透
13.展开讲讲布隆过滤器
14.讲讲多级缓存的概念
15.常用的本地缓存组件,有没有自己对比过
16.说一下caffeine里的过期怎么做的
17.redis为什么快
18.redis的io机制
19 redis管道流
20.如何学习的,怎么保证广度和深度


腾讯(挂,1,2面)

腾讯1面 8.5 14:50-16:10
缓存相关
1.缓存穿透,缓存雪崩,缓存击穿
2.项目中redis怎么用的
3.缓存过期策略
4.缓存与数据库的一致性
5.为什么项目用了本地缓存
6.lru和lfu算法及缺点
7.redis对lru算法的改进
mysql:
1.mysql中的视图
2.改变一个视图其它事务能看到吗
3.mysql为什么用b+树
Java相关:
1.如何设计一个线程池
2.Java内存模型
3.Java内存结构
4.volitate关键词
操作系统相关:
1.线程如何调度
2.linux指令
3.多路复用
消息队列:
1.什么是消息队列
2.如何保证消息不丢失
3.如何保证消息不重复
算法题
最长无重复子串

2面 8.9 19:00-20:00
1.简单问了一下项目(我已经明确说了分布式那个项目是网上开源的了)
2.算法题1:Leetcode1166 设计文件系统
3.算法题2:写一个简单的计算器
4.算法题3:找出两个排序数组的相同的数

总结

时间真快啊,去年这个时候,我还在群里羡慕我在开头提到的两位老哥,羡慕他们成功上岸,他们也不断鼓励我也肯定可以上岸的。说真的,那个时候,我心里是没底的,但却也是充满信心的。一转眼,我的秋招也结束了,从第一次面试的磕磕绊绊到后面可以和面试官互相扯皮,从第一次笔试零蛋到后面笔试太难或太简单的提前交卷,这一切的一切,都在事情本该有的运行规律与自我成长中。

还记得3月份羡慕别人拿到大厂实习offer的感觉到6月份自己拿到三个大厂实习offer的沾沾自喜与充满信心,随之而来的是秋招提前批的不断的面试挂,vivo一面挂,TP-Link简历挂 ,蔚来一面挂,之前拿到实习的京东也一面挂了自己,信心被慢慢击垮,再到后来是科研任务与秋招的双重压力,有两次受到导师的批评骑着电瓶车眼泪就要打转。其实啊,笔试挂了不重要,面试挂了也不重要,大家都是如此的,你需要做到的就是不断坚持,不断巩固自己,不必在意周围人的眼光也不必在意导师的批评和面试官的评价,积累经验,不断学习,终将如愿所偿!这是一场只属于你自己的战争,这也是一场只属于你自己的绚丽绽放,在这个路上,可能你成功了不会有人为你喝彩,你失败了也不会有人来安慰你,但只要你自己觉得这是值得的,那就够了。

好了,我的秋招之旅到这里就算是彻底结束了,或许有的同学早已结束了,又或者有的同学还在苦苦秋招中亦或是有的人刚开始。但我想说的是,无论怎样,一定要坚持,祝大家秋招顺利~顺利毕业~国庆快乐!希望这篇面经能给学弟学妹解答一些疑惑以及为仍在秋招的同学们带来一些鼓励,欢迎有问题的同学留言,一起交流学习。







更多模拟面试

全部评论

(47) 回帖
加载中...
话题 回帖