秋招上岸,个人历程和面经总结
背景介绍
我适合转码吗?
我想大家看到这个帖子的时候,绝大多数人已经决心想要转码了(毕竟不转码可能都不知道牛客网),有些人可能是正在转码或者秋招的路上。这一小节我就写给那些还没想好要转码的同学或者刚开始转码但有些动摇的同学吧。其实,适合转码和为什么转码本质是一回事情,搞清楚了你为什么转码其实就知道你适不适合转码了。那就先说一下我什么转码吧?大家也都看到了,我本科和研究生都是机械专业,加起来机械学习了六年之久,为什么突然想要转码呢?我想第一个直接的原因,就是薪资的原因吧,大部分人都是冲着互联网薪资来的,毕竟自己辛辛苦苦读了这么多年书到头来发现自己的专业是天坑专业,连个让自己满意的工作都找不到,我想这是大多数人不能接受的吧;第二个原因,兴趣爱好,我把这个原因排在了第二位,可能对我来说是第二位吧,因为我也不确定我是因为它的高薪在学习的过程中对计算机这个行业产生了兴趣,还是因为对它感兴趣而喜欢学习它。但是如果恰好计算机就是你一直感兴趣却由于种种原因而读了其它专业的情况的话,那么毫无疑问,请坚定决心转行计算机吧!第三个原因,自己的确受不了现有的专业了以及发现自己也真的不适合科研,天坑专业的论文以及里面的数据怎么来的,不用我说我想大家懂的都懂。而这恰恰也是我喜欢计算机的一个原因,因为计算机比较真啊!不是0就是1,代码写通了就是通了,有bug就是有bug,没有那么多虚假。最后,我想说的是,只要不是一写代码就恶心,极度讨厌写代码的话,那你就是适合转码的!此外其它的任何困难都是可以克服的!学不会?都是工科专业,上了多少年学了,不存在学不学的会!没时间?每天其实抽四个小时,坚持下去一年就可以了,时间都是自己挤出来的,省出来的!没实习?没关系,实习不是必须的!其实一切的一切,都是看你个人的转码意愿,在你个人意愿比较强烈时,这些问题你自然都会找到解决办法的。
学习路程的难点及需要注意事项
这个小节,本来是想分享一下我的学习路线以及推荐一些课程给大家的,但后来想想,自己推荐的东西也都是网上一搜就能搜到一堆的,所以这里就不重复推荐了哈。在这里我主要分享整个学习过程中常见的困惑和难点吧。
1.什么时候刷算法题?
秋招面经
这里面包含提前批以及秋招的面经,有凉经也有成功的经。不夸张的说,自己是从找实习即4月末一直面到了9月中旬,闲的时候两天一面,忙的时候一天三个不同公司的面试。所以说有的厂基本是面试了三次,第一次是找实习,第二次是提前批,第三次是正式批,而且每个批次可能由于挂了还会捞你,前前后后,大大小小,我基本面试了上百次了吧。熟能生巧,面试也是,希望大家无论实习与否,找实习的过程尽量参加进来,以及千万不要错过提前批!
vivo(一轮技术面,挂)
6.21 19:40 -8:201.自我介绍
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:001.自我介绍
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:001.常见的排序算法以及口述快排和冒泡排序
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:001.自我介绍
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:001.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:001.单例模式
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:541.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:451.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##浙江大华技术股份有限公司##蔚来汽车#