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

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

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







#面试题目##京东##美团##好未来##vivo##浙江大华技术股份有限公司##蔚来汽车#
全部评论
能不能给我指点一下啊,学霸,我完全没路线
1 回复 分享
发布于 2022-02-16 00:12
大佬能参考谷粒商城项目部份简历上怎么写的吗
1 回复 分享
发布于 2022-02-12 21:20
太牛批了!!
1 回复 分享
发布于 2022-01-27 15:24
大佬,你一共学了哪些技术呀。我目前研一。本科因为通信,学过计算机网络和简单版的数据结构与算法😢然后学了SE、MySQL、JDBC、Web、SSM、Maven、SpringBoot、Redis。我学长让我再学下操作系统、容器(Docker?)、jvm和并发。我看您的面经里貌似是不涉及SpringCloud的,但好像有消息队列的😢我目前还是不是很清楚到底学哪些😭网上学习路线都鱼龙混杂的😢我目前学的也不是很深,就过了一遍视频然后敲了点练习😭之前暑假时间多,现在导师开始每周组会,就好少时间学了,我自己还脱发😭
1 回复 分享
发布于 2021-10-10 13:21
关于导师的那些话感同身受,向大佬学习 感谢分享
1 回复 分享
发布于 2021-10-08 19:13
群友打卡点赞
1 回复 分享
发布于 2021-10-01 09:18
给大佬点赞!!!
1 回复 分享
发布于 2021-09-30 18:45
太强了,大佬,你就是我的目标
1 回复 分享
发布于 2021-09-30 18:43
学了多久啊😂
1 回复 分享
发布于 2021-09-30 16:30
群友赶来 火钳刘明😘
1 回复 分享
发布于 2021-09-30 16:28
终于~我们都上岸了~只有走过来才知道这一路的艰辛,幸得结果不负我们~未来更要一起加油~
8 回复 分享
发布于 2021-09-30 16:00
大佬牛逼!
4 回复 分享
发布于 2021-09-30 16:09
这是一场只属于你自己的战争,这也是一场只属于你自己的绚丽绽放
2 回复 分享
发布于 2021-10-01 13:12
不得不感慨,比我优秀的人依然比我努力
2 回复 分享
发布于 2021-09-30 23:38
虽然没有这么大佬!但是我也是经历了提前批每次几乎都一面挂以后,终于拿到意向了!秋招可太不容易了!向大佬学习!点赞收藏了hhh
1 回复 分享
发布于 2021-09-30 19:13
现在才看到,更坚定了转码的决定
点赞 回复 分享
发布于 2024-01-19 11:21 陕西
佬,太强了,等你出社招面经
点赞 回复 分享
发布于 2023-11-24 19:21 北京
佬,请问简历上的项目就是谷粒商城嘛
点赞 回复 分享
发布于 2023-05-04 11:12 日本
太强了!!!瑞思拜
点赞 回复 分享
发布于 2022-07-23 00:33
我也是做了牛客论坛项目,请问大佬为什么在7月份又做了一个谷粒商城呢,牛科论坛项目不够吗,因为我觉得还要学微服务才能做谷粒商城,时间不太够了
点赞 回复 分享
发布于 2022-05-05 13:31

相关推荐

这是我的自述长文,算是对四年的一个回顾(主要是大三大四)我的文字功底挺差劲的,但是无论如何,还是希望通过文字记住这一段人生经历的省流:这是一个没有大学规划,愚笨的计算机大学生的四年,在人生的重要阶段处处踩坑且不自知,直到临近毕业时,生活的重拳打在自己的身上后才幡然醒悟### **我的情况**目前我是25届**0offer**的应届**毕业生**,25届**考研失败**的路边选手我的大学开局也不算差:就读的是广东省内一所还算行的双非一本大学,计算机科班出身,高考那年其实可以去报重邮、杭电等计算机不错的学校,但是因为自己想要留在省内的意愿,所以没有选择这些更强势的计算机双非。我刚入大学是对这个专业无知的,我也就会玩玩游戏,我的假期时间也极大地花费在了玩上,对未来要做什么,要学什么一概不知且没有规划,**我没有去参加什么算法竞赛,也没有去参加学校的实验室,然后也没有争取发表论文**。只是在后面跟同学做过一个校级的大创项目。我是一个碌碌无为的差劲本科生### 我的大学**我的初高中学生思维很重****大一**的时候,学的是C语言。但是那时候没有很重视编程,因为自己也不知道后面要怎么做。然后在**大二**开始,学校有选课,是面向对象程序设计,然后在那时候在B站上。接触到了xx程序员的Java,然后才发现原来编程可以这么有规范,这么有意思,然后在大二的上下学期,大概学了一下Java的基础,然后也学了SSM框架。接着也开始学了一点Spring boot2,也开始做了一点项目,就比如黑马的两个外卖。但是我是断断续续的学的。我并不是能够坚持地学下去,直到大三中段的时候我才勉强学完这些知识,此时在黑马点评也才开了个头。然后**大三**下学期的时候,因为家里人是比较**推荐考研**的。然后我也有这个想法,于是就开始准备了考研。然后我就很大程度上地停止了我的Java开发。到那时候,我做的东西是:大创的项目,还有那两个外卖。但是考研的准备的也并不是很好。我的高数是在3月份开始准备的。那时候一直看的是武忠祥老师的高等数学基础篇。一直断断续续看到六七月份左右。然后408是在四月份左右准备的。但是因为科班有基础(尤其是计组),并没有遇到很多麻烦的点,但也是看到7月底8月份左右才过完408一轮。显然,这样的学习的效果也不是很好,因为就很**长时间的断断续续**。所以,基础掌握的也没有很好,高数和408做题都还是比较困难。时间来到了**大四**,去年八月底返校,学校需要有一个毕业实习学校的安排是:出去外面找,需要找3个月以上且跟专业相关的实习。但是如果报名的是学校与企业的实训项目的话,那么只需要去到学校与企业合作的那个场地去,接受那种类似于培训班一样的培训为期大概是4个星期。我选择了学校安排的实习 — 这样更省事,我实训期间也有在做数学题,还有408相关的题,培训老师也还听关照我的,但是确实因为要完成实训任务,所以做的效果也比较差劲。实训结束的时间点是国庆前,就这样,直到国庆开始,才算比较进入考研的状态。### 我的考研备考在10到12月份的的备考时,我是比较在状态的,但是我学的不总是那么地踏实,我常常会因为外部事务受到影响。比如,毕业论文的选题是在11月初左右,那段时间不知道毕业设计到底应该做什么合适。又还有,因为我看到有以前的同学,通过自己的努力进入到了互联网大厂,而且也看到了那时候身边有同学都有保研去不错的学校,所以我突然觉得我自己现在的考研准备也没有意义 — 因为确实干不过像他们那样清晰规划而且努力奋斗的人,然后我的备考也时常会被一种虚无感所笼罩着,因为是对未知前路的恐惧。以及对未来应该要做什么的迷茫,这种情况一直持续到了我考研初试结束。不过在考研结束后,其实我觉得自己考的还是不错的(25的数学卷子也比较简单)。我觉得自己大概能有340、350左右。### 我的毕业论文准备然后正好那时候有学校内部的实习内推。我被推荐到了一个国企控股的一个小公司,然后我在里面从1月初开始从事后端开发的实习工作。在之前毕设选题时,我想着复试的时候不要单纯地做一个系统,所以最终我就选择了实现一个基于深度学习的系统系统。就是用深度学习构建图像识别模块,然后再做一个前后端服务这样的形式(但是其实都是老头掉牙的东西)。于是,从1月份开始,我就进行着白天上班后端开发,晚上下班回到宿舍进行深度学习理论学习的生活,我一开始是想好了怎么做的。我计划是懂一点深度学习理论知识,然后从github找一个比较有效的图像识别模型(比如Resnet),如果有精力就在原模型上继续改进,进而自己再构建一个前后端系统就可以,最后把这些用AI总结一下毕业设计的内容,再包装一下,突出一下重点,那我往后复试和毕业论文也会轻松很多了,后面老师也发了我一个能跑的Resnet模型,我觉得可以就用它来做,在这时候感觉**一切都是不错的,日子都很有盼头,所有的一切都是建立在我觉得我能够。进入报考院校的复试开始的。**### 转折但是在过年期间,我的老师觉得我的工作量可能不太够。我的老师计划想让我用更高级一点的识别模型来做。但是我**完全没有学习过那方面相关的知识**。那时,我就突然觉得我的**毕业压力有点大了**,我就想辞掉实习工作,然后返回学校开始。专心的进行毕设的完成。我的实习公司的小组是一群非常好的人,还有我的组长,也是非常关照我,在我离职的时候也表示理解,在二月中的末尾,我辞掉了实习工作,整个实习经历不到一个月。回到学校大概是2月末左右,那时候也是考研出分了。我初试的分数330+,其实也还算行(算看的过去)。但是就是学报考的学校,它的复试分数线突然涨了很多。所以我没有能够进入复试阶段。那时候,我很疲惫,我很痛苦,每天就进入了一种焦虑痛苦不安状态,那时候做毕设相关的工作的时候也是比较摆烂的(做一下躺一下),心情也是一般般。但是,事情总是要推进的,于是那段时间我也会往返于宿舍与实验室(因为有老师的3090服务器)之间,尝试利用AI的加持完成新模型的构建。但是结果我**失败了**,**因为我确实菜,学不明白,学不懂,也懒**。我完全不懂那方面的知识,我是之前按照卷积神经网络相关的知识来学习的,新模型是图神经网络的方案。然后利用AI生成的模型效果甚至不如原来的Resnet模型跑出来的效果。于是我只好跟老师坦白了情况 — 我真的不懂、不会,老师就让他手底下的研究生带我,做回原来的Resnet模型的工作。### 我的春招然后在3月中下旬左右。我就边准备春招边搞毕业设计,那时候的春招的准备方向是:**小林的八股,然后加力扣上的算法题开刷,把外卖项目拾回来,再把点评项目搞完**,那时候也正是金三银四,我也陆陆续续接到一些公司的面试。招银、亚信等不错的公司,也甚至还有美团。但是自己确实没那么喜欢算法题(大一大二就没有很喜欢刷算法题),**刷题的效果也挺一般**,再加上自己,因为已经好久没有写过Java开发了,**Java方面的知识也回答不出来**,以前的项目也就是跟着敲的。也没有很**深入理解项目之中的要点和精华**,所以我的春招面试基本都是一面就挂,我的状态也没有调整的很好,就是面试挂了之后,我没有很有动力,也不太想去看八股,还有刷算法题,同时也要忙于毕设和论文;但是不去准备这些八股和算法题,又导致在下一轮其他的面试之中又失败了,这种糟糕的状态情况如此往复好在我把毕业的东西做出来了,虽然做的很简单,项目模型和系统设计没有什么创新性的东西,但起码也能有交差了,然后我通过了答辩,然后毕业设计相关的事项基本结束了。做完毕业设计交完定稿终稿之后,我在4月末左右就回到了家里。虽然我没有考上,但是我还是**有点想读研的意愿**,但是在此之前,计划是希望能在家里面找工作,能找到一些能稍微轻松一些的,而且最好还是能跟专业相关的工作,**希望不要跟社会脱节**。所以我回到家之后,我先开始准备了二六考研相关的内容,然后期间也有在boss上面投简历,也有在学校的就业群的通知里面去投简历,不过投了大概四五百份简历后,这时候也就只有零星的十几个面试邀约。但是我也没有去放弃这些面试,但是结果也不尽人意。因为自从回家之后的状态也是并不是很好的,自己也时常处于焦虑之中。直到昨天,才有一个家附近的银行外包业务公司的oc(记为A公司)。在前天一面完的A公司后,面试官就希望可以我尽快地到岗(6.4),拿到毕业证后进行6个月的试用,但是正式薪资是6000到7500,实习的时候是3500。试用期是六个月,时间是早八到晚六,可能加班到七点,其实并不是很想去的,但是家里人想让我积累一些经验,所以也没有推掉这个oc,hr发来的测评我也做了,限时一个小时,但是做的时候回到家挺晚而且心情太复杂了,途中也被叫去吃饭,所以用时大概四五十分钟才结束测评。### 戏剧性的一天今早hr发来的信息我因为有跟另外公司的面试B公司,所以找了个借口推迟了一下A公司的沟通,这时候hr就已经觉得我b事很多了,跟B公司约了十一点的面试,我提前到场了,但是只见到腾讯会议里,面试官的头像进来一秒又退出去了,继续等到十一点八分感觉不对劲之后,就退出会议了,然后后面A公司的hr就说我的评测异常,就把我挂了,一切又回到原点了。目前手里还有另外一家公司的面试(游戏运维,Python+Shell,学过一点点≈无经验),但是现在人是晕的累的麻的疲乏的,也不知道该如何是好了。A公司:中电金信B公司:泰比特写在这里:我的大学生活真的失败了,选择考研也没考上,毕业后也找不到工作。我的家人一直都在支持我,我也确实辜负了他们,每次一想到这我内心也很难受。如果哭一场可以缓解掉这些痛苦困顿的话,我一定要狠狠地哭出来,但是我也早已经习惯自己受着了,哭也哭不出来,哈哈。25/05/30
牛客刘北:亲爱的头晕目眩下士,人生的容错率大到你难以想象,功利主义导向的思考方式往往使我们忘记了生命的本质是一场历程,人生本就是不停的去感受去体验,可是我们总爱去和别人比较,徒增自己的焦虑内耗,人不一定要做有意义的事,你是来体验生命的,接受自己身上那些灰暗的部分,原谅自己的迟钝和平庸,允许自己出错,允许自己偶尔断电,带着缺憾拼命绽放,不管感受收获、拼命最后放下!最后祝你天天开心。
点赞 评论 收藏
分享
06-04 23:08
莆田学院 Java
🎓【26届二本生后端求职困惑:实习困境与秋招备战策略求指点】  学历背景是26届二本院校,大一大二时学业比较松散,到了大三才意识到就业压力,于是开始自学Java。按照黑马的学习路线完成了《苍穹外卖》项目,不过也是拖拖拉拉,到五月才学完,错过了3-4月投递暑期实习简历的黄金时间。现在的求职目标是后端开发实习岗,但在Boss直聘上发现,超过80%的实习岗位都要求至少6个月的实习期,短期实习机会很少,投出的简历也没什么反馈,这让我很困惑,想请各位大佬给点建议。  我现在有几个规划思路,想请大佬们帮忙分析一下:  第一个方案是暑期集中充电,全力备战秋招。核心动作包括主攻微服务,完成《黑马点评》;强化算法,刷LeetCode热题100道;结合项目经验背背八股文。这个方案的优势是能集中时间提升硬实力,秋招时技术栈更完整,面试的时候通过率更高,但我担心没有实习经历会成为秋招的短板,影响简历的通过率。  第二个方案是找6个月的日常实习(即便岗位要求长期实习,也偷偷9月辞职),积累企业级项目经验(哪怕是CRUD开发)。实习期间同步学习微服务,利用下班时间刷算法、背八股,到9月按计划离职后集中冲刺秋招。这样做的好处是能用真实实习经历打破“零实习”劣势,了解企业开发流程,但需要注意:若实习岗位技术深度不足,需主动在工作外补充学习;同时9月离职时正值秋招高峰期,需提前规划好离职交接与求职准备的时间衔接。  第三个方案是接受6个月以上的长期实习,比如承诺实习到年底,在岗位上深入参与项目迭代,积累真实的业务经验。在实习后期,也就是2025年11月左右,同步准备春招。这个方案的优势是长期实习有可能转正,但是这一点需要重点考虑:春招的岗位实际上比秋招少得多,更多是补招性质,岗位竞争更激烈且优质机会更少。现在我有几个重点问题想求助:  1. 在二本学历又没有实习经历的情况下,秋招时企业对技术深度的要求更严格,还是实习经历更重要?  2. 方案二中“6个月日常实习+9月离职备战秋招”的时间管理可行吗?该如何平衡实习工作与求职准备?  3. 如果选择方案一,除了我提到的微服务项目、算法八股文之外,是否需要补充其他技能?  4. 除了Boss直聘,有没有适合找短期实习的渠道推荐,比如内推或者中小企业官网之类的?  非常期待各位前辈能分享一下过来人的经验,指点一下避坑的方向!🙏
8cmCD:方案2,实习想跑就跑。有实习的秋招和有实习的春招全都要。
点赞 评论 收藏
分享
评论
233
863
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务