秋招总结与面经汇总

5.20开始投递秋招,9.24收到最后一家公司的意向书,我的秋招也告一段落了~

在牛客潜水了很久,一直默默学习关注着各位大佬的学习总结与面经总结,非常感谢各位的分享。在此我也对我的秋招进行一些总结,主要是个人历程和面经汇总。

在写本文的过程中参考了大佬学长的帖子(在此特别感谢学长在我困惑迷茫时的帮助):

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

个人情况

某211非科班硕,本科双非,Java选手。由于我们实验室基本是项目驱动,因此在研究生期间主要是做相关项目的工作,也因为事比较多,最终没有出去实习,到找工作时,自己基本就是无实习,无论文,无计算机类比赛的菜鸡。虽然之前就决定以后找开发相关的工作,但也是断断续续的看了一些Java基础以及一些项目开发过程中需要用到的知识,并没有成系统的去学习,因此在看到牛客上各位大佬发的面经就是基本都不会的情况。从今年寒假开学后,自己开始有意识的开始学习准备秋招,经过秋招几个月的洗礼,面了大大小小60几场,最终收获到的意向书:美团,滴滴,京东,拼多多,网易,新浪,小米,蔚来,华为(还在泡池子),大华,诺瓦,端点,三一重工。虽然没有拿到bat等大厂,但也不至于失业了,开始时怕找不到工作,因此就进行了一波海投,最终也因为自己运气不错,慢慢拿到了意向,同时还要再感谢牛客,自己真的是在上面学到了很多。

准备历程

我是从研一开始做项目接触的Java,后面断断续续自学了一些基础课程,主要是为了实现小项目的基本功能,在之后又因为一个展示项目硬着头皮学习了项目要用到的一些开发框架,但也基本都只是停留在会用的阶段,由于不知道找工作需要哪些知识,也没有找工作的压力,觉得船到桥头自然直,所以并没有认真系统的去学习。真正开始认真准备应该是从去年12月开始的,在这期间我在百度,知乎,牛客上面搜罗了很多大家推荐的Java学习路线,然后也翻阅了很多牛客上发布的面经,最后进行归纳分析出自己的学习方向(主要是看要准备哪些点)。刚开始学习的时候基本都是看视频去入门,然后通过一些面经博客去查缺补漏。在寒假开学后,阿里提前批的实习就开始招了,虽然知道自己很菜,但还是想抱着试试的态度去面一下,一方面看看自己究竟是什么水平,另一方面想看看面试需要考察哪些点,结果显而易见,第一次面试,非常的紧张,同时知识储备太少,我被问穿了,问的问题基本都不会,项目也很垃圾...这让我意识到,我还有很多要学习,我的知识存储还远远不够,因此这之后两个月我都没有再投递实习了,而是认认真真去准备八股文,算法和项目,等到差不多5月底,我又尝试投递了一些实习,经过一段时间的面试,有了一些面试经验,但都还是挂了,最终在6月中旬拿到了滴滴和国泰君安的实习offer,但经过自己多番思考,还是放弃了去实习,决定all in提前批。

这里我想说一下其实提前批很重要,如果准备的比较充分的话在提前批拿意向的机会会很大,因为这个时候hc最多,很多大厂也不用笔试,到正式批给我的感觉就是,投递的基本都需要先进行笔试了,如果能在这个阶段拿到一两个意向,那么对后续面试的心态会有很大的帮助,可以先找小厂面一下,积累下经验。如果准备的不是很好的话,还是建议稳一下,因为一些公司还是要看你之前的面评的。我在7月拿到了三一,大华等意向,虽然不是大厂,但当时的第一感觉就是不会失业了,心态有了一些改变,后续就是有提前批开了我就投了,在8月又拿到了京东的意向,慢慢的状态变得越来越好。

由于我是四川人,因此还是想在成都这边找个厂,因此提前批的阿里,腾讯,字节,百度,美团等厂都直接投到了成都,结果惨不忍睹,字节三面后挂了,百度二面后挂了,蚂蚁二面后挂了(当时觉得面的还不错...),腾讯没给机会,美团调到了北京...总体看下来,成都这边可能机会会少一些,如果不在意地点的话,可以试试投递北上广等地,机会应该要多些。

学习准备,重点就是基础知识(八股文)+算法+项目

基础知识,主要是准备了计算机基础(操作系统,计算机网络,数据结构与算法,linux),Java基础,容器,JVM,并发,网络编程,设计模式,数据库(MySQL),常用框架(Spring,SpringMVC,MyBatis,SpringBoot),中间件(MQ,以及项目中用到的其他中间件)等。

算法,这个就是多刷,我是按着CS-Notes总结的标签刷,刷完了之后又刷了高频题,之后又刷了牛客上的剑指offer,总共刷了差不多400道题,来来回回每道题至少都刷了2-3遍,刚开始刷的时候确实很难,一个题要搞好久才搞的出来,之后慢慢刷起来就顺畅多了,后续面试和笔试基本都能过

项目,项目这点也是非常重要的,基本基础问题问完后就是对项目的考察了。当然由于没有实习,我准备的项目也很辣鸡,一个做烂了的商城项目,一个实验室项目。最开始准备项目的时候也很迷茫,因为知道商城,秒杀,RPC框架等项目已经做烂了,所以想找找其他项目做,但是最后想来想去还是头铁做了商城项目...前面面试还好,基本还问一下商城项目问题,后面很多面试官面多了,上来就直接说你们怎么都是做的这个项目...还有的上来问了项目背景后就直接跳过这个项目了,估计面试官看到这个项目是真的烦了吧,所以我建议尽量准备其他相关项目,如果实在要写一个卧龙凤雏项目,建议还是要配合一个其他项目,否则面试官看多了就不想问了。写了的项目一定要弄清楚,挖掘出项目的亮点和难点,这些都要非常熟悉。

面经汇总

杭州端点网络(两轮技术面,一轮HR面,意向)

7.6电话一面(37min)

自我介绍

1.ES如何实现搜索的,搜索过程是什么

2.下单的分布式事务是如何保证的

3.项目是否开源

4.有没有顺序性的消息队列,他是如何去实现的

5.RabbitMQ有没有兼容故障转移,节点挂了如何解决

6.Elasticsearch 是如何实现 Master 选举的

7.nacos的选举机制有了解过吗

8.中间件的了解程度

7.12电话二面(22min)

1.介绍一下你的商城项目,都做了哪些工作

2.具体讲一下秒杀部分

3.信号量是如何保证限流的

4.秒杀这一块是如何提升系统性能的

5.秒杀压测过吗,结果怎么样

6.介绍一下MySQL的索引,为什么不用hash

字节跳动抖音(三轮技术面,挂)

7.14视频一面(57min)

自我介绍

1.项目是什么背景,为什么做,有什么提升点

2.秒杀这部分做了什么功能,需要传入什么参数,返回结果是什么

3.如何保证不超卖的呢

4.Redis如何存商品数的,通过什么命令操作Redis使用信号量的

5.Redis如何保证原子性

6.为什么要使用RabbitMQ,如果抢占成功,MQ发送失败怎么办(这里进行了深挖,包括是否重新发送,写数据库失败,机器宕机,网络不可靠等情况)

7.如何实现优雅停机

8.一门语言,比如Java或C++,他从语言文件经过编译到到执行过程,整个发生了什么

9.编译器做了哪些优化

10.程序运行过程具体是怎样的,包含哪些部分,分别有哪些作用

11.事务隔离级别有哪些

12.已提交读和可重复读的区别是什么,可重复读的应用场景是什么

13.什么是快照读和当前读(这里联系到项目问了)

14.bin log和redo log的区别是什么

15.bin log和redo log谁先写

16.redo log是如何做灾备的

代码题

组合总和,一个数组,一个目标值,找出数组中能凑出目标值的所有序列

7.18视频二面(1h10min)

1.介绍一下使用rabbitMq去做分布式事务的逻辑

2.如何使用RabbitMQ去做异步下单的

3.如果是异步的,返回给用户的只是一个订单号,如果此时用户去购买页查看,是否能马上看到秒杀的商品呢

4.ES是如何集群做分片的

5.说一下ThreadLocal的内部结构

6.为什么要给key设置一个弱引用,value是弱引用吗

7.如果要做定时任务调度,你会用什么数据结构

8.TCP三次握手和四次回收的过程

9.为什么会有TIME_WAIT这个时间

10.一个端口能建立多少个连接

11.垃圾回收的过程,比如CMS

12.CMS是如何标记回收的,在标记过程中,如果有新对象创建之后会被清理吗,他是如何做的

13.哪些对象能作为GCRoots根

14.线程池ThreadPoolExecutor创建参数

15.阻塞队列是如何实现的

16.生产者-消费者中使用的是一个锁还是两个锁

代码题

已知二叉树的前序遍历和中序遍历,还原一颗树

智力题

使用一枚硬币,如何实现1/3的概率

7.23视频三面(1h 5min)

自我介绍

1.项目背景是什么

2.分布式事务场景是如何保证的

3.秒杀的概念是什么,具体是什么流程

4.你的秒杀瓶颈是什么,你是如何去解决的

5.Redis的并发量是多少,抗不住怎么办

6.Redis如何做集群

7.作为客户端连接服务器,一个服务器端口能连接多少个客户端,这个值可以扩大吗

8.TCP连接是如何有序稳定的断开的

9.四次挥手的过程是什么,为什么要四次

10.Socket通信中整个通信流程是怎样的

11.进程和线程的区别

12.一个单进程多线程程序中,三个线程轮询打印一个数组,如何去做

13.分页式内存管理中总共会访问几次内存

代码题

一个单链表,奇数位升高,偶数位递减,如何实现在O(n)的时间复杂度,O(1)的空间复杂度内实现整个链表的升序

百度提前批(两轮技术面,挂)

7.6电话一面(48min)

1.聊一聊你认为的Java

2.面向对象有哪些特点,这些特点在实际使用或设计模式中有哪些应用

3.说一下熟悉的设计模式

4.JVM运行时内存区域

5.JVM垃圾回收

6.synchronized加锁的过程

7.锁升级过程

8.synchronized之前为什么效率不高

9.为什么要区分用户态和内核态

10.死锁的条件是什么

11.TCP的连接过程

12.四次挥手,timeWait的作用

13.MySQL的隔离级别

14.脏读和幻读的区别

15.redo log和undo log的区别

16.Redis的过期清除策略

17.Redis内存淘汰策略

18.Redis布隆过滤器以及应用场景

19.跳表的数据结构,如何确定有多少层索引,如何知道每个节点在第几层

20.Spring的AOP

7.12电话二面(55min)

1.如何解决的session共享

2.ThreadLocal原理,可能会出现什么问题

3.如何防止超卖

4.信号量相当于是抢锁,那没抢到是否会阻塞

5.你的项目和实际落地的商城项目有什么区别,如果要实际应用到一个高并发的场景,你的项目在并发和产品方面如何去改进

6.什么叫反射,反射的应用场景有哪些

7.动态代理有哪两种方式,具体的区别是什么

8.HashMap底层原理是什么,1.7和1.8有什么区别

9.什么叫线程死锁,怎么来避免线程死锁

10.说一下可重入锁,可重入锁的原理是什么

11.说一下公平锁和非公平锁

12.Spring在使用中事务是如何实现的,底层原理

13.有没有了解过Zookeper,Kafka

14.讲一下分布式的CAP理论

15.数据库的幻读和脏读有什么区别

16.类加载器有哪些,类加载的整个过程,包括双亲委派的整个过程

17.HTTP和HTTPS的区别

代码题

1.用两个栈实现一个队列

2.用两个队列实现一个栈

蔚来提前批(三轮技术面,意向)

7.21视频一面(50min)

自我介绍

1.具体讲一下项目,有什么有意思的地方

2.讲一下对面向对象的理解,比如现在有三角形,正方形,圆形三个类,如何设计抽象类

3.说一下volatile和synchronized

代码题

实现一个单链表

7.29视频二面(38min)

1.具体说一下项目业务流程

2.现在有一个大文件,里面都是int类型的值,那么该如何找到最大的10000个数呢

3.那如果大文件里面有很多字符串,如何找到出现次数最多的10000个字符串呢

4.如果有20个有序数组,如何去合并成一个呢,时间复杂度是多少呢

5.private,public,protected,default的作用范围是什么呢

6.反射能获取到private修饰的静态成员变量吗

7.hashcode和equals的作用,如果hashcode相等,equals一定相等吗

8.synchronized的应用场景

9.如果用synchronized修饰static方法有什么效果

10.如果两个方法都使用了synchronized,那么A能调用B吗

11.可重入锁的原理

8.17视频三面(27min)

1.项目中有哪些比较难的问题,如何解决的

代码题

1.给定一颗二叉树,其中有节点可以为监控节点,这个监控节点可以监控到他的父节点以及他的两个子节点,求一个树中最少能有多少个监控节点

2.斐波那契数列

其他问题

1.平时有什么爱好吗

2.不是计算机专业,为什么要转计算机呢

京东提前批(两轮技术面,一轮HR面,意向)

7.29视频一面(1h10min)

1.switch case的用法,case1和case2有相同的逻辑怎么办

2.final,finally,finalize有什么区别

3.String,StringBuilder,StringBuffer有什么区别

4.创建一个字面量字符串和new一个字符串的区别

5.两个字符串相等的结果是什么

6.ThreadLocal的应用场景和原理,ThreadLocal会发生内存泄露吗

7.JVM运行时数据区有哪些

8.堆分为哪些区,什么时候会触发垃圾收集

9.有监控过垃圾收集过程吗

10.volatile的应用场景

11.可重入锁的理解

12.慢SQL如何解决

13.索引一定快吗,索引一定生效吗

14.锁超时的发生场景

15.如果当前数据库的占用CPU很高怎么办

16.Spring AOP的理解

17.事务原理,如何实现

18.Spring MVC的执行流程

19.为什么要使用MQ,应用场景是什么

20.自己负责项目哪部分,如何去推进的

8.3视频二面(1h20min)

场景代码题

1.大概就是广告系统相关的,说明整个场景流程,最后场景读下来基本就是有一个0,1,1,0,1,0,1,0的数组,将1移动到前面,并且要保证1的顺序不能变,要求时间复杂度为O(n),空间复杂度为O(1)

其他问题

1..如何将吞吐量提升起来

2.线程池的原理

3.如果说现在有一个循环,不断往线程池中放任务,而这个任务又会使用线程池去提交一个子任务,并且会等待这个子任务的结果,这种场景线程池会发生什么样的状况呢

4.为什么要用RabbitMQ,有了解过其他MQ吗

5.为什么要用ES,使用场景是什么

6.请求到达ES集群是找主节点吗,如何分发

7.MySQL索引用的什么数据结构

8.如何找到慢查询SQL

9.EXPLAIN分析出extra中使用的是use filesort,这是什么情况

10.分页查询,在一张百万级的表中找最后一条数据查询很慢,如何优化

11.Spring事务隔离级别如何设置,原理是什么

12.如果一个类A的一个方法使用了Transaction注解,那么另一个类B方法中没有使用,但是通过类A的方法去调用类B的方法,这里面类B会被事务管控吗

13.Transactional注解后面的参数了解吗

14.JVM运行时数据区如何分的

15.堆区如何分的

16.垃圾回收算法和垃圾回收器有哪些

8.6HR视频面(24min)

自我介绍

1.意向城市

2.家人是否支持

3.为什么选择这个方向

4.实习过吗

5.校园中有意义的事

6.最大的优缺点

7.缺点是否会影响工作

8.如果你的观点和别人不一致怎么办

滴滴SP专场(三轮技术面,意向)

7.31视频一面(57min)

自我介绍

1.项目背景

2.介绍一下项目的基本流程,项目的难点在哪里

3.对集合的理解

4.线程池,线程池的参数以及基本原理

5.线程池拒绝策略

6.你认为这些参数该如何设置,要考虑哪些方面

7.设计模式了解哪些,代理模式实现方式有哪些,都有什么特点

8.IO模型

代码题

1.跳台阶问题

2.升序降序链表合并成升序链表

7.31视频二面(40min)

1.抽象类和接口的区别

2.值传递和引用传递的区别

3.MySQL存储引擎有哪些

4.MySQL索引有哪些

5.讲一下事务

6.ArrayList和LinkedList的区别

7.并发包中有哪些东西,有用过吗,简单介绍一下

8.ThreadLocal说一下

9.get和post的区别

10.如何保证传输安全

11.HTTPS的原理是什么

场景题

基本数据类型值传递和引用类型值传递的结果判断

代码题

将"the sky is blue"变换成" blue is sky the",要求不能使用String变换,需要转换为字符数组完成

7.31视频三面(40min)

1.项目负责什么部分

2.如何去保证事务的

3.可靠性如何保证

4.项目难点是什么

5.MySQL索引

6.死锁情况

7.MVCC原理

8.Redis的过期删除策略

代码题

一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物

拼多多提前批(三轮技术面,一轮HR面,意向)

7.30视频一面(57min)

自我介绍

1.JVM运行时数据区各个部分

2.垃圾收集是如何做的

3.CMS垃圾收集的过程

4.已经被标记成垃圾的对象有没有可能再被引用

5.什么时候需要加锁

6.什么情况下会发生死锁,如何去避免死锁

7.索引是什么

8.B+树在范围查询的过程中,除了有链表的优化外,还有什么优化

9.看过Redis的理论还是代码也看过

10.Redis是单线程还是多线程

11.rehash是怎么做的

12.如果在rehash的过程中,有查询和插入怎么办,如何保证正确性呢

13.HTTP现在有多少个版本

14.1.1和1.0有什么区别

15.如果说现在客户端和服务器维护了长连接,服务器如何去优雅的停机

16.如果说现在有100台服务器,2亿个用户和这些服务器保持长连接,此时服务器负载很重,需要添加新的服务器,那么我该如何将这些长连接的用户平均负载均衡到这200台机器上呢

代码题

给定N个数,这N个数为1-N,比如5个数,分别为5,3,4,1,2,给出一个算法将其排序,要求时间复杂度和空间复杂度最低

8.5视频二面(60min)

1.项目的背景是什么

2.项目中有用到Spring MVC吧,是如何分层的呢

3.SpringBoot中集成的Tomcat有什么作用呢

4.Spring MVC和Servlet有什么关系吗

5.还知道哪些web容器

6.项目中用到Redis的场景介绍一下

7.Cookie和Session的作用和区别,可以只用其中一个吗

8.如何保证秒杀过程中扣减Redis数量的原子性

9.说一下用到了MQ的场景

10.服务与服务之间是如何调用的

11.讲一下运行时内存区域

12.程序计数器的作用

13.本地方法栈的作用,什么是本地方法

14.什么时候会触发年轻代垃圾回收

15.什么时候会触发老年代垃圾回收

16.什么时候对象会从年轻代晋升到老年代

17.年轻代放不下的大对象是直接到老年代吗,还是触发年轻代垃圾回收

18.垃圾回收机制是如何理解

19.垃圾回收器有哪些

20.你用的JDK默认垃圾回收器是什么

21.如何设置垃圾回收器

代码题

旋转数组找最小值,写完后考虑有重复值怎么办

8.7视频三面(37min)

1.为什么要用ES,MySQL不能做吗

2.like查询为什么不走索引

3.除了MySQL的模糊查询,为什么不用全文索引

4.ES和MySQL全文索引分别的应用场景是什么

5.ES到底快在哪里

6.如果用ES,如果商品标题改变了怎么做,内部是如何做调整的

7.ES挂了怎么办,ES数据更新延迟

8.分布式信号量是如何来限流的

9.如果说用户抢到之后没有付款怎么办,那这个商品就一直存在吗

10.如果这样的话,用户抢不到,而后面又放出来一个,就是说用户以为结束了,结果又有了,体验不好,如何改进

11.服务器能连接多少个设备和什么有关

12.BIO为什么不能解决连接数量多的问题,而NIO为什么又能

13.项目压测过吗,这部分的性能瓶颈在哪里,如果还要做提升,该如何改进

14.最近有读到比较好的博客,论文或者书可以推荐给我吗,为什么觉得他写的好

8.13HR电话面

小米提前批(两轮技术面,意向)

8.4视频一面(30min)

1.为什么学计算机

2.聊聊你理解的Java

3.如何理解三大特性

4.如何理解集合

5.数据结构了解哪些

6.项目的背景是什么(这里听到是网上的项目后就直接跳过了...后面一直聊我的第二个项目)

7.B+树三层能存多少数据,如何算的

代码题

青蛙跳台阶

8.9视频二面(37min)

自我介绍

代码题

有效括号

其他问题

1.后续都是围绕我实验室项目交流

2.介绍业务场景

3.对小米的看法

美团点评(两轮技术面,一轮HR面,意向)

8.18视频一面

自我介绍

1.看了我的项目,然后说你们怎么都做的这个项目,是在B站上看的吗(略显尴尬...)

2.SpringSession和Redis如何解决Session共享问题的

3.Redis有了解过吗,有哪些用途呢

4.Redis的数据结构

5.Hash结构是如何实现的

6.Hash在少量字符串并且字符串比较短时会用另一种数据结构了解吗

7.哈希结构在遍历过程中如何确定数据在哪个表中呢

8.Redis的复制是如何实现的

9.Redis的过期删除策略

10.线程池有了解吗,线程池的核心线程数如何确定比较好

11.线程池的核心参数是什么关系

12.线程池阻塞队列有哪些

13.TCP是如何保证可靠的

14.HTTPS是什么

15.B树和B+树的区别

16.一台机器如果经常发生Full GC是什么问题,如何排查解决

代码题

根据树的前序遍历和中序遍历还原出一颗树

8.26视频二面(1h7min)

自我介绍

1.商城的项目背景是什么,是在网上学的吗

2.本科和研究生学过哪些计算机相关的课程

3.计算机基础是自己学的吗(这里回答了计网和操作系统...)

4.操作系统大体上分为哪些部分的知识

5.讲一下文件管理

6.fRead和Read的区别

7.为什么要使用CPU缓存

8.多核CPU下缓存一致性如何保证

9.介绍一下volatile,如果不用volatile会有什么问题

10.可见性是如何解决的

11.其他核的缓存是如何知道失效的

12.为什么要做重排序,重排序是CPU做的吗

13.编译器可以根据代码语义等分析做重排序,那处理器是如何做的呢

这里懵了...

14.虚拟内存是什么,是如何实现的

15.虚拟地址是如何定位到物理地址的

16.页表具体是如何对应的

17.那每一个虚拟地址和物理地址是一一对应的吗

18.多级页表是什么

19.进程间通信方式

20.共享内存是如何做的

21.内核空间在哪里

22.共享内存是如何开启

23.进程是如何创建的,使用了什么系统调用

24.fork系统调用的返回值是什么

25.一个父进程有2G的地址空间,那fork一个子进程也有2G的地址空间吗

26.COW写时复制是什么

27.商城项目中为什么要用这些组件,自己有抉择过吗

28.ES的索引和MySQL索引有什么区别

29.除了ES还知道其他搜索方式吗

30.聚簇索引和非聚簇索引的区别是什么,分别有什么优缺点

31.InnoDB是聚簇还是非聚簇,MyISAM呢

32.数据库设计中的一二三范式

33.Socket服务器编写步骤是什么

34.什么是半连接队列和全连接队列

35.默认大小是多少,可以如何去调整

36.如果半连接队列满了怎么办

37.当客户端主动关闭连接时,服务器如何知道的

38.IO多路复用有了解吗

39.阻塞与非阻塞,同步与异步的概念

40.一定是同步阻塞或异步非阻塞吗

代码题

交叉区间的合并,力扣56

9.3HR电话面

1.介绍部门情况

2.面试感受怎么样

3.为什么学计算机

4.学习路线是如何规划的

5.如何协调老师安排的事和自己学习的部分

6.未来如何去打算的

7.当前有哪些offer了,你会如何去选择offer

8.最大的优缺点

9.如何看待做业务和做低层

西安诺瓦科技(三轮技术面,意向)

8.8视频一面(38min)

1.谈一下面向对象三大特性

2.接口和抽象类的区别

3.StringBuilder和StringBuffer的区别

4.HashMap和HashTable的区别

5.Spring IOC和AOP

6.设计模式中简单方法,工厂方法,抽象方法的区别

7.树中BFS和DFS的区别

8.进程间通信方式

9.何实现线程同步

10.介绍一下常见的锁

11.OSI七层模型

12.说一下表示层和会话层常见的实现方式

13.TCP粘包说一下

14.如何对数据库做优化

15.介绍一下最熟悉的项目,你的角色是什么,有什么困难

8.11视频二面(26min)

1.为什么要用Spring Cloud

2.项目上有什么困难

3.信号量只是保证进入线程数量,限制流量如何保证呢

4.TCP和UDP的区别

5.进程通信

6.发生死锁的条件

7.,B两台服务器,要保持同样的文件操作该如何做,比如都同时要创建文件,然后之后执行写入操作,思路,之后有什么问题

8.JVM运行是内存区域包括哪些

9.垃圾回收是如何做的

10.了解的数据结构有哪些

11.哈希表在Java中是如何实现的

12.了解的排序算法有哪些,随便说一种

13.了解的设计模式有哪些,介绍一下装饰器模式

8.15视频三面(58min)

应该是加了一轮

1.为什么你们都是做这个项目...(又尴尬了...)

2.什么要用RabbitMQ,做过选型吗

3.还知道哪些MQ

4.有读过RabbitMQ的核心源码吗

5.Redis的数据结构有哪些,实际用到了哪些

6.如何将对象转成字符串

7.为什么要用fastJson,对序列化工具做过选型吗

8.为什么要使用ES呢

9.数据库为什么用MySQL,其他数据库有考虑吗,比如Postgre SQL

10.对MySQL有做读写压测吗

11.这中间一直围绕我实验室项目讨论

12.操作系统学的怎么样

13.你认为JVM和操作系统有什么区别

14.职业规划

蚂蚁金服(两轮技术面,挂)

8.25电话一面(1h 2min)

1.什么时候毕业

2.是考研还是保研,自学Java吗

3.线程池如何创建的,有哪些参数,分别有什么关系

4.如何设置这些参数比较合适

5.线程安全问题如何理解,有什么方式解决

6.非线程安全的容器和线程安全的容器有哪些

7.在解决线程安全问题的基础上,如何提升并发

8.如果在分布式情况下如何保证线程安全

9.如果使用数据库作为分布式锁在大并发情况下会有哪些问题

10.如何提升锁的效率

11.为什么要事务,事务隔离级别有哪些

12.不同的事务隔离级别有什么问题,又有什么优点

13.如果是分布式事务如何去保证

14.JVM运行时数据区讲一下

15.垃圾回收机制讲一下

16.讲一下秒杀的设计和逻辑

17.如何防止超卖

18.秒杀部分有做过压测吗,结果是什么

19.如果一直压,首先出现的瓶颈是什么

20.如果还要持续压呢,还会有什么问题出现,如何改进

代码题

力扣122,买卖股票的最佳时机 II

其他问题

1.有过实习经历吗

2.你有博客吗,能看看吗

8.30电话二面(43min)

1.商城项目背景是什么

2.为什么要做这个项目,网上有来源吗

3.项目的难点在哪里

4.分布式应用和单体应用的区别是什么

5.为什么要拆分成分布式的,如何去做拆分呢

6.拆分的很细会怎么样

7.为什么不用RPC去做通信,RPC可以使用HTTP的方式吗

8.了解的RPC框架中有哪些组成部分呢

9.Dubbo底层通信用了什么IO

10.为什么要用网关,不用网关不能访问吗

11.如何通过MQ去保证数据一致性

12.如果要保证强一致性呢

13.如何解决下单的幂等性

14.还有什么方式可以解决幂等性

15.如果分库分表,如果取获得唯一分布式ID呢

16.Spring事务解决了什么问题

17.事务传播有了解吗,有哪些场景需要使用事务传播

18.平时使用的比较的多的锁有哪些

19.如果不使用事务会触发行锁吗

20.如何实现分布式锁

21.乐观锁和悲观锁的区别

22.遇到问题如何解决的

23.debug用过吗,如何使用debug

24.限流是如何做的

25.秒杀这块需要考虑的点有哪些

26.如何保证Redis扣减的原子性

27.Redis单线程如何提升效率

28.用过多线程吗,有哪些地方用到了

29.线程池参数如何确定

30.如果不设定最大线程数,会发生内存溢出吗

网易有道(三轮技术面,一轮HR面,意向)

9.2视频一面(55min)

上来两道代码题

1.力扣15.三数之和

2.力扣767重构字符串

基本问题

1.sort排序底层是用的什么排序

2.秒杀如何设计的

3.如何提升数据库的查询效率

4.索引一定能生效吗

5.如何创建索引

6.介绍一下JVM内存分区

7.哪些部分会发生OOM

8.栈什么时候发生OOM

9.Error和Exception的区别

10.Exception一定能被捕获吗

9.9视频二面(60min)

1.SpringCloud Alibaba和Spring Cloud使用了什么组件

2.如何搭建一个微服务

3.Nacos是如何监听到服务健康的

4.如果某个被依赖的服务或请求的数据库没有注册到Nacos,那么发生错误该如何处理呢

5.如何监视当前的SpringBoot系统,或者线程,或者JVM的使用情况

6.下单的基本逻辑是什么

7.MQ如何解决单点问题,消息堆积、消费者处理出错等问题

8.如何解决超卖问题

9.如果使用乐观锁,解决超卖问题的语句该如何写

10.如果有人下单后未付款怎么办

11.异步编排是什么意思,如何实现的

12.了解过listener吗,他是如何实现的,也就是说一个功能执行完是如何让监听者感知到的

代码题

直接让写一下笔试的第二题,改动了部分,让想出优化方案

9.14总监视频面(60min)

1.介绍了部门情况

2.对当前公司的权衡,看法,比如地点,加班强度,地点等

3.介绍一下你的专业是做什么的

4.你是如何学习的呢

5.当前做的都是什么项目,实际的还是练手的

6.后续接近一个小时都是围绕设计实现一个1小时内限流1000次访问的场景进行讨论

9.18HR视频面(25min)

1.为什么选择这个学校和专业

2.为什么选择Java方向

3.你是如何学习Java的

4.你参加了比赛项目,你担任的角色是什么

5.你看重公司的什么点

6.你对加班的看法

7.手上有哪些公司的意向或还在流程中的有哪些

新浪微博(三轮面试,一轮HR面,意向)

8.30视频一面(30min)

这轮感觉像HR面

1.项目最大的困难有哪些

2.你是如何进行优化的

3.你是如何学习这些知识的

4.在合作的过程中有哪些让你不舒服的点

5.你觉得哪些人你不想去和他一起合作

8.31视频二面(21min)

1.为什么要用ThreadLocal,他有什么缺陷吗

2.项目中数据库用的什么,用的什么事务隔离级别

3.可重复读和已提交读的区别是什么

4.他们是如何实现的

5.可重复读可以避免幻读吗

6.你有遇到过jar包冲突的问题吗,如何去解决的

7.包冲突发生在什么过程,编译,类加载,运行?

8.如果有两个版本的包都会加载进去吗

9.你对后来的方向有什么打算

10.业务想做什么方向

11.你是如何学习一门技术的

12.熟悉的中间件有哪些

9.3视频三面(30min)

1.做商城项目的时候遇到过哪些困难

2.注册中心除了Nacos还了解其他的吗

3.分布式事务这一块是如何解决的

4.二阶段提交和三阶段提交的区别是什么

5.如果你的分布式事务补偿过程失败怎么办呢

6.ES是用的集群还是单节点,如何保证MySQL和ES的数据一致性

7.bin log的日志格式有哪些

8.Redis用到了哪些场景

9.了解哪些Redis的数据结构

10.限流如何实现的

11.还知道哪些限流算法

12.场景题

在直播中有一个排名清单,在数据库中分别排序,然后读取,现在如果要将这个清单中排名90的位置移动到排名2的位置,要怎样保证最高效的方式处理

13.手上有多少offer,如何抉择offer

9.23HR电话面

1.什么时候开始学习Java的

2.为什么学习Java

3.你的项目对你有什么提升吗

4.手上还有其他公司的意向吗

5.你会如何去选择这些公司,看重什么点

总结

去年看见实验室师兄找完工作躺平的样子真是爽啊,而到现在我也基本上躺平一周了,其实进入9月状态就不在线了,基本就是断断续续的看看知识点刷刷题,有面试就面一面。以前的金九银十,现在差不多已经变成了金八银九了,而且我感觉后面hc越来越少,也越来越难了,因此如果能尽早准备就尽早准备,能走提前批就走提前批。面试前,好好准备下简历,能去实习就去实习吧,感觉身边有实习的都还是有很好的结果,最后就是坚持,相信自己。最后祝大家拿到满意的offer~

#面经##秋招##校招##笔记#
全部评论
果然是越早越好,我九月投一个面试都没有
2 回复
分享
发布于 2021-09-26 18:49
我最不该的就是错过了提前批😢
2 回复
分享
发布于 2021-09-27 07:53
博乐游戏
校招火热招聘中
官网直投
楼主太棒了!果然成功是给有准备的人的
1 回复
分享
发布于 2021-09-27 00:28
大哥给了我一点信心了,情况基本相同,预感到实习无望
1 回复
分享
发布于 2021-09-27 16:56
老哥 微博HR面完多久意向的呢?
点赞 回复
分享
发布于 2021-09-26 13:39
老哥拼多多HR后多久意向呀
点赞 回复
分享
发布于 2021-09-26 14:28
太强了
点赞 回复
分享
发布于 2021-09-27 08:22
太强了
点赞 回复
分享
发布于 2021-09-27 08:24
美团pdd还不够嘛😂 大佬!!!
点赞 回复
分享
发布于 2021-09-27 09:09
羡慕了,蔚来今年真香
点赞 回复
分享
发布于 2021-09-27 09:44
本科非科班,计算机硕。简历要把本科情况写进去吗,还是只用写个学校呢。找开发类的话,会看重论文吗。我今年刚跨考上岸,大佬能说一下吗
点赞 回复
分享
发布于 2021-09-27 10:35

相关推荐

头像
不愿透露姓名的神秘牛友
04-02 22:26
已编辑
4.1日14点小米一面 16点 小米二面 17点30momenta 一面4.2日 15.30momenta 二面  18点30momenta 已OC面试记录:小米一面 项目30分钟 八股 多态 封装 智能指针 手撕代码 二叉树层序遍历 回文子串小米二面 各种八股 问麻了 一堆编译原理 通信的 本人非科班的 好多都没回答上 项目讲解 针对性提问 挖的很深 无手撕Momenta 一面 项目30分钟 无八股 手撕 机器人所有路径 a星伪代码 Momenta 二面 针对简历各种基础问题 基于图搜索的 基于优化的 一些公式推导 论文的提问 手撕 岛屿数量 体验就是两家流程真的快,小米一面结束十分钟就通知选二面时间了 ,一面问的都比较基础,但是很相关。小米二面 八股不单单问C++的,还问了很多其他的,对没有准备过的,非科班选手不友好。还有点压力面,会针对项目提问,为什么你没用某某方法,为什么这么优化,传统方法是什么。就是针对一些非重点的地方猛猛提问。但是最后问了一下评价,他说还不错,希望也能OC吧。momenta 一面针对项目,提出来一些比较奇怪的问题,似乎因为面试官不是做这个方向的,因为当时一下午已经两面了,已经麻了,就冷场了好几次。以为会挂了,没想到很快通知二面了。二面的面试官很对口,问题很专业,项目挖的很深。 #面试#  
点赞 评论 收藏
转发
46 186 评论
分享
牛客网
牛客企业服务