2020.3.31更新:

  • 美团、腾讯、搜狗新一轮面经
  • 复习提纲详细版(在最底下,一个快速复习的大体路线)

背景

二月初开始准备面试,刚开始准备的时候确实一头雾水,觉得自己什么都不会,踌躇了很久也没有头绪。
985水硕,没实习没竞赛没论文没好的项目。
好在后来慢慢地看书、看课程做笔记总结,然后再看一些面经,多参加一些面试,慢慢有了自己的节奏
(别焦虑,焦虑没用,慢慢从头开始)。

很感谢带我毕设,现在在阿里的一个学长(可能我去阿里的希望渺茫了)。
学长从二月就开始帮我们实验室的几个同学弄内推的事,帮我们看简历改简历,指导我们复习,对我们帮助很大。
也要感谢牛客网,看面经和做题都在上面,甚至好多公司面试也在上面,所以面了这么多场之后,觉得要把自己总结的面经分享到上面,希望能帮到更多的人。

关于面试中一些问题的解答,都写在我的博客里了:
https://blog.csdn.net/weixin_43925277/category_9751729.html
还有在牛客网上刷剑指offer的解答和思路:
https://blog.csdn.net/weixin_43925277/category_9752121.html

面的都是Java岗

字节跳动

已拿offer

一面

自我介绍
介绍第一个项目
项目的目的,项目的整体架构,负责模块的简单介绍
x实现(这一部分可能我没表述清楚,面试官问了很久。。。)

算法题:
给定两个数组,求两个数组的交集,且重复多少次,就打印几次
比如:[1,2,2,3,5,7]和[1,1,2,2,2,2,3,3,5,7,8],结果[1,2,2,3,5,7]
JVM内存结构?
OOM的场景?堆和栈的一些区别?
HashMap的扩容机制?存储的方式?hash后码相同时怎么处理?
线程池是什么?怎么用?有什么好处?线程池的核心参数?
数据库的索引结构?B+树的结构?与B树的区别?
Redis了解过吗?Redis的数据结构?缓存击穿是什么?怎么解决?
事务的隔离机制?四种事务隔离级别的分别是什么意思,有什么区别?事务隔离机制里用了AOP,是如何用的?
Linux的top指令可以查看什么信息?top中的load指的是什么?网络相关的指令用过哪些?查端口号用哪一个?
乐观锁和悲观锁?在数据库里怎么实现一个乐观锁?乐观锁在数据库中的实现形式?
TCP的滑动窗口机制?
Jenkins自动化部署的流程?
有什么问题要问?

二面

自我介绍
项目的需求背景,以及项目的架构,项目的实现细节
数据库的第三范式
有没有对自己开发的模块做过压测?如果让你去做压测,你会如何去做?
如果数据规模增大几个数量级,可以有什么优化?
联合索引的使用,减少回表次数
Redis缓存
如何去设计缓存
redis中常用的数据结构?缓存击穿和缓存穿透
开源的DevOps平台用过吗,CICD平台?
算法题:拿糖问题
给一个数组{1,3,5,7,8,10},每个位置上数字代表每个位上有几个糖
不能拿相邻的糖,最终怎么拿最多的糖
volatile关键字的功能
Linux的buffer内存和cache内存
虚拟内存、常驻内存、共享内存
路由器,交换机工作在哪一层?
ConnectTimeOut ReadTimeout异常的区别?Unknown host是什么原因导致的?
浏览器输入 www.xxx.com 最终展现网页,整个过程
观察者模式
说一下zookeeper和ES
对发展方向有什么想法
你有什么想问的?

三面

询问毕业时间,询问GPA和研究生研究方向
项目具体细节,介绍负责的模块,醒目的具体架构?
什么是DevOps?DevOps的使用场景?
微服务是什么?微服务的粒度?怎么去划分?
询问项目的细节
面对百万级的数据,你的模块需要怎么优化?
开发时使用的技术?有没有深入了解?
说一下GC算法?G1和CMS分别是什么,区别?
你还有什么问题?

HR面

自我介绍,对公司面试的评价,实习时间
为什么转专业?
你认为你有什么优点?有什么缺点?有什么兴趣爱好?
在团队中习惯充当什么样的角***r /> 遇到过比较困难的事情是什么?觉得自己很幸运的事情是什么?
对于未来的规划?有没有使用过公司的其他产品?有没有转正想法?

阿里系

阿里云块存储提前批面试

自我介绍

== 和equals的区别?类的hashcode是什么?如果两个对象的hash码相同,equals一定为true吗?

抽象类和普通类的区别?抽象类和接口的区别?抽象类中一定会有抽象方法吗?

Java的IO模型?BIO、NIO、AIO概念和区别?

线程和进程的区别?有几种创建线程的方法?

如果超过线程池的任务上限怎么办?线程池中一个线程抛出异常,其他线程受影响吗?如果在try…catch…结构中,线程池中有3个线程抛出异常,catch运行几次,finally运行几次?

Java怎么保证多线程的安全?synchronized和volatile的区别?synchronized是悲观锁吗?

介绍一下ThreadLocal?有什么用处?

Java反射是什么?反射的用处?为什么要用Ioc这种方式?AOP了解过吗?AOP切面可以实现异步吗?

HashMap和Hashtable的区别?介绍一下concurrentHashMap?Hashtable和concurrentHashMap分别适合哪些场景?

Spring Boot的Bean是什么?调用接口时可以修改Bean吗?Bean有哪些种类?Bean的生命周期?

Spring Boot的过滤器,拦截器?哪个在先哪个在后?

ORM框架用过哪些?Hibernates循环插入怎么会比较快?自定义SQL语句是什么意思?

DevOps中构建是怎么实现的?代码管理如何实现的?代码改变可以触发自动构建吗?

介绍一下项目,具体负责的工作?

介绍一下服务发现?服务发现?

k8s的负载均衡?主从节点的切换?主从节点数据库数据冲突会不会造成脏读?

WebSocket怎么保证数据可靠性?

你有什么问题要问?

阿里新零售事业部供应链、蚂蚁金服花呗、淘系增长技术部

这些都只进行了电话一面,问的问题也和其他地方大同小异
由于最后内推只选择了一个部门,其他部门的下一面都回绝了。。。

阿里新零售事业部供应链

三面没问什么技术问题,只聊了一下,三面挂

美团

已接到 OC

一面

自我介绍
项目介绍(10分钟左右)
权限管理设计的解决方案,K8S原理,pod是什么?
websocket是用tcp还是udp?websocket怎么实现的?
Java并发访问HashMap,怎么保证线程安全?
HashMap查询最坏情况?
怎么保证HashMap整体赋值并发安全?
Java运行时数据结构与内存模型?堆和栈保存的内容?
栈空间在什么时候进行回收?Java的栈大小是多少?能不能把栈中的数据都分配在堆上?什么时候进行full GC?GC为什么要分代?
SpringBoot怎么监控接口成功率?
有什么要问的

二面

自我介绍
项目介绍(包括其中用到的一些技术等)
介绍Http协议,如何做权限校验?有状态还是无状态?
设计token时的注意要点?
单点登录了解过吗?
Socket网络编程IO模型?
手写一个HashMap数据结构,实现put函数?
有没有实习经历?拿了哪些offer?说一下职业规划
你还有什么想问的?

三面+HR面

全程只问了项目另加一些类似HR的问题,没有问基础知识,只问了项目管理的一些问题

项目细节(10分钟)

项目的需求以及目的?项目的团队规模?项目的整体架构介绍一下?

你负责的模块挑战有哪些?怎么克服的,项目中做了哪些优化?

QPS有测试过吗?项目的规模?用了几台服务器?出过什么故障吗?

代码编写怎么去管理的,有没有代码审查?用户数量有多少?

做了项目有什么较大的收获?项目中的角色都有哪些?多人团队的进度节奏怎么统一的?

重新部署项目的过程会不会遇到困难,怎么去优化这个部署过程?

技术点出现分歧如何达成共识?中间件技术栈不一致如何解决的?

有其他offer吗,其他offer是什么岗位?

学校中课设或大作业中担任的角色?与团队成员产生冲突时怎么做的?如果有团队成员掉队怎么办?

项目中负责人到参与者的角色转变对你心态的影响?

现在在实验室做的工作有哪些?

项目进行当中有设置时间点和里程碑吗?

你还有什么问题吗?(探讨了一下不同公司对软件过程管理的态度以及原因)

CVTE

CVTE一面

一面电话面试,大概半个多小时,问的基本上是一些基础问题和项目,没有详细记录
只记得问了一个sql语句,让我说如何去写

二面视频面试

自我介绍
项目介绍,CVTE这边问的基础问题一直都围绕着项目问的
怎么理解DevOps的?
SpringBoot shiro了解过吗?为什么不用这个?
怎么在平台中获取用户的信息?token如何实现?jwt由哪些部分组成?
hibernate和mybatis区别?为什么要用hibernate?
在项目中怎么运用的sql语句的优化?
覆盖索引的B+树结构中叶子结点存的是什么数据?不同查询场景走聚簇索引和非聚簇索引的情况?
k8s集群怎么搭的?NFS用来做什么了?
MySQL和mongoDB的区别?
mq队列中消费方怎么保证不重复消费消息?怎么实现分布式事务?
http和websocket性能区别?
http1.0 1.1 2.0的一些区别,考虑这些之后与webscoket有什么其他不同吗?
最近有没有在学一些新的技术?有没有看过Java核心的一些源码?
synchronized和lock的源码,介绍一下
做了这些项目,你遇到的比较大的挑战有哪些?
有什么要问的?

HR面

先是填一个补充简历问题,里面的问题。。。可以说是灵魂拷问了(我不会告诉你里面的问题比面试还难回答)
其实就是一些HR常见问题,但是可能挖掘的比较深,自己平时也没仔细想过,突然一思考容易陷入 哲学 中。。。
让你最自豪的一件事?
目前为止对你影响最大的人?
最困难的时期是什么时候,怎么度过的?
期望工作的城市?