面试复盘|记录0实习经历的22届秋招后端开发面经(持续更新)

更新了8.16爱奇艺二面
更新了8.14拼多多HR面
更新了8.13阿里云二面
更新了8.11字节跳动(商业化技术)五面(已挂)
更新了8.10阿里云一面
更新了8.09拼多多三面凉经(已HR面)
更新了8.05拼多多二面
7.20 字节跳动一面(面试官很nice,很和善)
1.自我介绍
2.深挖项目
3.数据量很大时如何遍历数据库
4.MQ消息堆积时怎么办?
5.MQ消费失败怎么办?
6.10亿条号码,放入内存,构建一个数据结构,给一个前缀,找出符合这个前缀的所有号码。
7.算法:lc.560改编。

7.26 字节跳动二面(算法题用静态内部类写了个TreeNode,在面试的平台上会报错,面试官也没看出来是为什么。最后问面试官如何评价我的表现,面试官反问我自己觉得怎么样)
1.算法题:由前序遍历中序遍历重建子树,然后再前序遍历输出;
2.为什么静态类的非静态方法中不能使用非静态的属性和非静态的方法;
3.java类加载过程;
3.1.加载阶段中,为什么要有自定义的类加载器;
3.2.双亲委派原则的机制;
4.HashMap数据结构;
4.1.为什么小于6是链表,大于8变成红黑树;
4.2.HashMap扩容机制;
4.3.HashMap是否线程安全,例子;
4.4.ConcurrentHashMap和HashTable的区别;
4.5.ConcurrentHashMap如何保证高效,为什么是线程安全,为什么比HashTable优秀,分段锁机制;
4.6.CAS能保证线程安全吗,volatile关键字能保证线程安全吗;
5.随机数求根(二分法)
6.有N个筐,每一个筐有一定数量苹果,把苹果从一个筐移到另一个筐的花费为距离大小,求需要让每个筐中的苹果数量相等,的最小花费;
7.第6问我答了一个贪心的思路,面试官让证明,不会。

7.27 阿里云一面(面试官挺好的,不过最后提问环节我问了投递的部门主要使用c++,和我的技术栈不太匹配,问了一些操作系统的东西,但是我的操作系统学的很垃圾,仅仅是背背八股的程度)
1 自我介绍
2 你是想做后台开发还是做基础设施方向?
3 对c/c++或者go有过了解吗?编程语言课程都学过哪些?汇编语言学过吗?
4 你学过的课程中计算机相关的课程学过吗?
5 商城项目中的分布式session系统是怎么实现的?
6 redis服务器是有单独的对不对?服务器访问延迟大概是多少?你觉得大概是什么数量级的?如果放在本地的内存里面,访问延迟会是多少?也是ms级别吗?
7 session的数据量有多少?
8 这两个项目都是你研究生课程上做的吗?
9 为什么你在简历上没有写一下自己的研究方向和研究内容?大概介绍一下吧
10 你没有考虑继续读博是吧?
11 系统运行的时候,进程 和 线程的区别有哪些?
12 进程之间的通信代价比线程之间高,这个是什么意思呢?
13 标记一个状态,你这里所谓的状态是什么?
14 一个进程之内的多个线程调度和多个进程间的线程调度,哪个开销大?
15 线程之间的调度算法有哪些?
16 jvm里面的内存管理是怎么做的?
17 运行完了的一些对象,或者说正在执行的一些对象,它们的内存回收是怎么做的?
18 你知道GC是怎么来做的吗?

7.30 爱奇艺Java开发工程师一面(面试官人很好,说不要紧张,就像聊天)
1、自我介绍
2、jmeter压测怎么样
3、挑一个模块说一下你是怎么实现的
4、hashmap什么时候生效?一直不正确的话
5、redis被击穿,雪崩,你怎么解决
6、本地多个线程时,你的hashmap怎么共享,怎么存?
7、springboot bean是单例的吗,想变多例的话怎么办
8、多个线程共享一段数据,java里怎么实现,哪些方法
9、notify和wait怎么用,notify和notify all
10、spring ioc、aop
11、jdk和cglib的区别
12、cglib底层实现,为什么可以不用接口
13、mybatis使用时的注意事项?
14、sql注入怎么解决
15、索引的问题
16、mysql索引数据结构,b+树了解吗
17、类加载,字节码、垃圾收集挑一个说(我挑了CMS垃圾收集器详细聊了一下)

7.30 字节跳动三面(三道算法题)
1.给例如"三千二百万零五十三"之类的字符串,转换成对应的int类型。
2.长度为n的nums数组中的元素1<=nums[i]<=n,用O(n)复杂度排序
3.给一个数字例如23119,给一个数字集合例如{2,4,9},给出用集合中的数字组成的最大的小于等于23119的数字,这里答案是22999。

8.01 shopee一面(面试官很nice)
自我介绍
1 你现在项目其实都是自己摸索,自己玩的项目是吗?能用吗?
2 平时是学java是吧?
3 你知道java创建一个新的对象有哪些方法吗?
4 有了解序列化的方法吗?
5 你能介绍一下java的GC机制吗?
6 你怎么判断对象是不是可以回收呢?
7 jvm里面的永久代会发生垃圾回收吗?
8 你知道java里面有哪些引用的类型吗?强 弱 软 虚
9 给你一个整数数组,然后给出数组的全排列,数组里可能有重复数字,给出的结果需要是去重的,不能用hashset去重。(全排列Ⅱ)
10 给定一个字符串s,给出最长回文子串(最长回文子串)给了一个用二维dp数组的dp解法,面试官问能不能降低空间复杂度。(师兄降到O(N))
11 你平时对linux的命令有哪些比较熟悉?
12 我现在有一个文件,有很多行,每一行是一个单词,你能不能用linux命令输出文件里面单词的频次?
13 评价面试表现
14 虾皮校招技术面一般是两轮,hr面一轮
15 虾皮技术栈主要是go,入职后会有go培训

8.02 拼多多一面(面试官很nice,很多问题会给提示)
1.有一串数组,求第i大到第j大之间的所有数字,O(n)时间复杂度。
2.假设数据量很大,存在100台机器上
3.JVM内存组成部分。
4.垃圾回收算法,为什么分代。
5.怎么判断对象存活。
6.双亲委派机制。
7.线程池怎么理解。
8.假设订单量过大,线程量不够用,怎么解决。
9.数据库索引,索引的坏处。
10.假设建一张新表,怎么加索引。
11.如何判断用的哪个索引?没听清(explain关键字)。
12.用户与服务器连接的过程?
13.http,https区别。证书。
14.服务端做的是什么。收到请求后做了什么。
15.一个请求过来后,谁先拿到这个请求。系统拿到之后怎么调配应用(应该是想问从通信到操作系统到接口的过程)。

8.04 字节跳动四面(面试官看起来挺和善,但是算是又来了三道算法题,= =难受,第三道题面试官会循循善诱的提示)
1.先做一下自我介绍
2.你是主要用java来开发,其他语言了解吗?
3.lc.215 topK。(说了优先队列的思路和快速选择的思路。面试官问快速选择的复杂度怎么证明?没答上来)
4.快排最坏情况下复杂度可能是O(N^2),怎么解决这个问题
5.lc.93 复原IP地址。
6.再来一道题目(说思路)
给你两个集合,求出这两个集合的交集
两个哈希表是必需的吗?
如果两个集合都特别大,内存里面放不下,这时应该怎么处理?
如果每个集合元素还是一个小集合,如何来处理?
反问
7.为什么走到4面了,是之前某一面表现不太好吗?
8.您之前用过java吗(想问,从一个工作多年的人的角度给我说一下java和go的优缺点,但是面试官没有用过java)?
9.字节的框架和中间件是自研吗?还是说go语言也会有比较好用的开源的?
10.面试大概多久会出结果?

8.05 拼多多二面(面试官依然nice)
1.java里面arraylist和linkedlist有什么区别?
2.arraylist为什么可以随机访问?getIndex为什么可以随机访问?类型确定了位置就确定了是吗?如果数组扩容呢?
3.arraylist平均插入复杂度是O(4)(?),为什么?说说思路
4.Treemap和Hashmap有什么区别?(我不太了解TreeMap,就详细说了一下HashMap)
5.如果一个java class的对象要放到hashmap里面,那么要重写哪些方法呢?只重写equals()不重写hashcode()可以吗?只重写hashcode()不重写equals()呢?
6.java线程池有了解过吗?不用自己实现过,聊一聊常用指令 方法 工作原理什么的
7.拒绝策略有哪些?常见的?总共有几个,4个?不处理是什么意思?
8.秒杀系统是你自己做的还是在哪个公司做的?
9.数据库的相关知识了解吗?数据库的隔离级别有哪几个?
10.索引相关的知识了解吗?主键索引 聚簇索引 辅助索引 联合索引 覆盖索引 最左匹配原则
11.你做这个秒杀商城项目最需要考虑的点有哪些?
12.你这样相当于把一次秒杀换成了两次秒杀是吗?
13.如何实现接口地址隐藏?(限流
14.当时为什么想要做这个项目?
15.刚在说缓存的时候,你提到了库存?
16.预检完了之后,后面创建订单没有成功,你会把这个缓存再还回去吗?
17.异步下单是怎么处理的?前端是什么样的状态?
18.你有没有压测过?能同时接受最多多少人下单?
19.lc.98验证二叉搜索树改编
给的是数组,满足完全二叉树性质,相当于要重建一下,或者直接利用当前idx的左右子节点分别为2*idx+1和2*idx+2这一性质来递归调用。
20.lc.54螺旋矩阵Ⅱ改编,给一个二维数组,从左上角开始顺时针填充递增

8.09 拼多多三面面经(30min)
1. 聊了研究方向
2. 深挖项目
3. 怎么实现单点登录(完全不会)
4. 问执行结果
public static void main(String[] args){
System.out.println(help(2));
}

private static int help(int arg){
int ret = arg;
try{
return ret;
}catch (Exception e){
return ret;
}finally {
ret = arg + 1;
}
}
全程30min,而且网络不是很好,最后改成打电话的。三面表现不太好,感觉凉了,项目挖得很深,有些东西考虑的还是不够全面。上面的执行结果也答错了,我回答输出3,应该是2,现在想想应该是和jvm的底层的操作数栈之类的相关的知识。

8.10 阿里云一面(34min,之前的面试好像是被另一个部门捞去了,所以这个应该是算一面,因为面试官说看不到面试记录)
1.学习这两个项目的背景是什么;是自己的小练习吗;秒杀怎么做的;
2.在什么时候减库存;
3.JVM类加载机制;
4.排查full GC的原因;
5.三次握手;
6.TCP和UDP区别;
7.什么是平衡二叉树;
8.排序算法和对应的时空复杂度;
9.1G的文件,内容是乱序的,每一行是属于0~1的浮点数,内存512M,查找数值大小为降序44%的数字。
10.设计模式,策略模式;装饰模式优缺点;
11.问了一下平时的学习思路;
12.英语简单交流(面试官说他们部门可能业务对口语有一定需求,两年只看文献,没说英文了= =,我直接抱歉);

8.11 字节跳动五面
1.学过哪些相关课程;
2.程序读取本地文件,通过网络发送给远程服务器,整体过程。
2.1.数据的读取传输过程,经历了几次转换转移。数据copy次数(磁盘-内存-系统-用户)。发送过程:协议,序列化,DNS解析。
2.2.系统内存,用户内存如何分配;地址空间怎么做的内存分配。
2.3.内存和磁盘间交互刷新怎么处理。
3.文件里读到数据做加法,CPU怎么处理。
3.1.本地方法栈和本地方法栈的区别
3.2.刚才说的int a,b 具体存在哪里,为什么加volatile关键字存在主存里。内存屏障主要了解哪些。
3.3.内存可见性如何实现。
4.写一个简单栈溢出,怎么写。为什么这样会栈溢出。
2.4.数据读到内存中后,发送到网络过程中又会被拷贝几次。
5.http协议在网络层链路层走的什么协议,TCP和UDP区别。
5.1.TCP断连过程。
6.CLOSE_WAIT, TIME_WAIT大量出现,哪个属于正常状态。
7.序列化在什么地方做,序列化的过程。
8.服务器服务器之间都有ip情况下,需要通过DNS解析吗。
9.http协议长连接。指http层的长连接还是tcp层长连接。
10.浏览器服务器使用长连接,页面刷出来之后长连接还能保持吗?
11.leetcode 983(说了回溯的思路,面试官换了道题)
12.leetcode77。

8.13 阿里云二面(20min,问了很多很抽象的问题,我还以为是hr面)
1.自我介绍。
2.本科成绩不好是什么原因。
3.考研是什么情况。整个排名什么情况。
4.Java秒杀是参考了网上哪些东西。
5.为什么在服务端做限流。
6.想要改进要从哪几个方面思考。
7.cdn什么原理,为什么要用。
8.想要获得更高QPS其他方面怎么简化。
9.分布式session功能的作用。
10.如何实现这种分布式session是为了高可用吗,还是为了什么?
11.语言上实现来说还能改进吗?或者哪些模块可以改进。
12.平时学习时间分配。
13.最近在看哪方面?比如刷题有哪些理解?最近做了什么题。其他人从哪个角度来做这道题的。
14.阿里的两道笔试题后来有重新做过吗。有重新回想过吗。工作中遇到这种问题怎么处理?解决问题时到哪里搜索答案。有专门关注一些海外的技术发布吗,有做过跟踪吗?
15.对什么什么库的了解,里面的什么模块比一般第三方Jar包优秀。源码看过哪些。为什么看这些。看完源码后有哪些总结,解决了什么问题什么困惑。

8.14 拼多多hr面
1.自我介绍
2.考研还是保研
3.本科成绩排名
4.考研初试成绩,排名
5.就业时岗位怎么选择的
6.什么时候确定下来要找后端岗位
7.后端的知识自学吗,学到什么程度了
8.同门的同学都没有实习吗
9.你认为哪个项目做的更成功一些
10.能介绍一下这个项目吗,为什么做,怎么做的
11.几个人做的,做了多久
12.有考虑做出来想达到什么效果吗,有达到预期吗,还有提升的空间吗
13.有遇到什么难题吗
14.成长收获是什么
15.后面还有做什么吗
16.从哪里看到拼多多的,一看到就投了吗
17.为什么投拼多多
18.有了解其他的吗
19.对部门业务有了解吗
20.找工作对工作地点有要求吗
21.考虑到离家近的原因吗
22.父母对你有要求吗
独生子吗?父母的工作?女朋友?投了哪些公司,流程到哪了,薪资期望,第一份工作关注的点,反问,有倾向哪个部门

8.16 爱奇艺Java开发工程师二面(面试官超级nice,感觉可能是学长,对实验室不放实习表示很惋惜)
1.有过实习经验吗?是学校不放吗?交大边上有个intel可以混的。
2.Object类有哪些方法?
3.notify和notifyAll
4.java中常见的Exception?写一个会抛出NullPointerException的代码。
5.重载和重写的区别
6.子类和父类各有一个方法,其方法名和方法返回类型都一样,唯独参数列表不同,调用的时候会执行哪一个?
7.子类方法和父类方法,方法名和参数列表都相同,返回值不同,调用的时候会执行哪一个?
8.排序算法的稳定性是指什么意思
9.算法题:有一个映射表{1->A,2->B,……,26->Z},给你一个字符串,求出其能映射出多少个字符串,如123可以映射ABC,AW,等。
10.算法题:写一个String类型转换成对应的double的方法。
11.linux重命名文件的指令。
12.怎么找到tomcat相关的进程。
#面试复盘##校招##阿里巴巴##爱奇艺##字节跳动##拼多多##Shopee#
全部评论
LZ字节四面反问为什么走到4面,面试官是咋说的啊?是定sp或ssp的加面吗?
2 回复 分享
发布于 2021-08-05 16:21
数据量很大时如何遍历数据库?这个是什么啊,要遍历,多线程遍历嘛还是怎样,求楼主解答
2 回复 分享
发布于 2021-08-05 16:53
找出前缀那个是存储在红黑树嘛?
2 回复 分享
发布于 2021-08-05 16:56
老哥 爱奇艺开始面试了?
2 回复 分享
发布于 2021-08-05 22:22
王平永远的神!!疯狂打all
2 回复 分享
发布于 2021-08-06 09:58
1 回复 分享
发布于 2021-08-05 15:11
请问你问字节四面为啥走到四面,他怎么说的?
1 回复 分享
发布于 2021-08-05 16:06
字节三面的排序要手撕桶排或者基数排序吗😂
1 回复 分享
发布于 2021-08-05 17:21
太详细了!赶紧码起来
1 回复 分享
发布于 2021-08-05 18:12
感谢楼主,分享面经的都能拿好offer!
1 回复 分享
发布于 2021-08-05 18:13
厉害厉害,征战各路大厂
1 回复 分享
发布于 2021-08-05 18:14
本科还是硕士?
1 回复 分享
发布于 2021-08-05 22:28
楼主面的字节啥部门,咋全是算法题
1 回复 分享
发布于 2021-08-06 09:05
已码,加油
1 回复 分享
发布于 2021-08-06 10:08
字节三面的三道算法题楼主的思路能说一下吗
1 回复 分享
发布于 2021-08-06 13:59
为什么静态类的非静态方法中不能使用非静态的属性和非静态的方法?这个问题我看不懂,啥意思,求楼主指教。。
1 回复 分享
发布于 2021-08-06 14:07
那个苹果分发的用贪心是指苹果多的每次都分发给距离最近的缺少苹果的人嘛
1 回复 分享
发布于 2021-08-06 17:21
码住!
1 回复 分享
发布于 2021-08-09 15:18
大佬的两个项目是商城和秒杀吗?准备了多久哇?大概学到了什么程度啊?
1 回复 分享
发布于 2021-08-13 18:42
码住
点赞 回复 分享
发布于 2021-08-06 14:13

相关推荐

10-11 15:42
皖西学院 Java
青鱼LINK:我硕士,也是java0面试,吾道不孤
点赞 评论 收藏
分享
走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
评论
33
270
分享
牛客网
牛客企业服务