之前就一直想投阿里,对阿里之前整体印象挺好的,平等不讲tltle、发展快、成长空间大,现在业务线也比较多,公司平台也上了一个台阶。今年秋招就果断投了阿里。但还是被刷了,害好可惜,还好后面被字节捞起来了。现在反而感谢阿里不收之恩,不是说风凉话,是真的感谢。我在文末分享了我面试个人复盘包括自己收集的一些秋招备战资源和项目实战源码!
阿里一面(45分钟):
- 介绍
- 问问java吧,java基本类型,说说int 和float 的内存区别
- 线程池参数,说说定时器的等待队列怎么排序的(堆)
- http 1.1 的头部阻塞怎么解决 ,keep-alive作用,http2.0 pipeline 的流怎么有序,http 的头部信息
- java cpu 占了100 怎么办 ,死锁怎么办,
- 实现一个字典树
- 还有一些常规题目
阿里二面(50多分钟)
- 介绍
- http 的各种状态码, 说一下5xx的网关错误(不会)。
- 说说进程间的通信吧,
- 说说io多路复用
- 实现一个限流器
- 算法: 给定一个无序int数组,可正,可负,给定一个整数k。求数组的所有子数组中累加和为k的最长子数组的长度。例如arr=[2,4,-1,1,7,6,3,-2,3] & k=6 时,value=4
阿里三面(80分钟)
- 介绍(前面面试官设备卡了15分钟)
- 聊了项目,业务,技术(30分钟)
- 逻辑题(红帽子,白帽子的加强版)(20分钟)
- 算法题(合并k个链表)
- 然后基本每面都参差着技术点的细节和原理。
苦苦等待四小时!反手一个感谢信!哭了,其实还是怪自己菜
抖音 一面
1.JVM内存模型
2.GC的垃圾回收的原理,GC是怎么实现
3.zookeeper应用场景
4.什么是分布锁
5.zookeeper是基于哪种算法实现分布式一致性的?
6.你知道分布式都有哪些?
7.redis一般用它来做什么?缓存
8.redis常用的数据结构
9.redis写一个kv是原子的吗?什么是原子性。
10.redis持久化是怎么做的
11.数据同步的思路,同步缓存和数据库
12.你了解的设计模式
13.你知道什么情况下去用这些设计模式,例如工厂模式,在什么场景下会考虑用工厂模式。
14.在视频的过程,摄像头采集我的数据,到你那边呈现,的流转过程,简单的用你的理解一些分析一下。
15.mysql数据库索引的原理
16.联合索引,什么时候考虑建立联合索引
抖音二面
1.自我介绍,项目亮点介绍
2.用到的组件,哪个最了解:都了解
3.redis单线程模型,他为什么使用单线程模型,单线程模型的优势是什么?
4.单线程最大的问题是 只能利用一颗CPU,无法将负载分配到其他CPU上,那问题就来了,现在大部分的CPU性能都不高,在这种情况下,redis只能利用单核,32核中的一核,31核围观,那这样性能并不会高呀。 那为什么redis还是利用了一核。
5.jvm classloader 能告诉我一下他是怎么做的吗。java支持动态的加载jar包,扩展自己的函数。jvm实时的加载一个jar包,发生了什么,类加载器做了,jvm发生了什么变化,他会做什么事。
6.垃圾回收 在 堆里怎么做的
7.SQL优化
8.explain
9.HTTP TCP IP 分别属于哪一层
10.HTTP1.1 和 HTTP2.0
11.HTTP2.0 压缩的算法
12.TCP CLOSE_WAIT什么时候出现,什么时候不出现。TIME_WAIT什么时候出现?
代码:反转链表
抖音三面:
1.发送HTTP请求的过程
2.域名怎么映射到服务器上
3.根域名服务器,ip和域名之间发生一些变化,这个变化在以太网的体系里是怎么扩散的你有了解吗。
4.tcp三次握手过程
5.为什么挥手是4次,建立是3次
6.CLOSE_WAIT,FIN_WAIT,TIME_WAIT
算法
1.两个数组有序数组,找中位数
2.剑指Offer35 复杂链表的复制
3.贝叶斯:一种试纸检测率是99%,人群中,患病的概率是0.01%。问一个人经过试纸检测后,检测为阳性,那么他真实的患病的概率是多少?
4.快排,时间复杂度,最差时间复杂度
两道leetcode原题,没见过。。。怪自己刷题少,见得少。
个人复盘/碎碎念:
其实面试官指出来的问题我自己很明确, 应试型选手 嘛,我网易二面下来就很清楚自己现在最大的问题了。我从小到大就是典型的应试型选手,典型的“死”努力派,初中的时候就意识到了这个问题,但是没有去改变,高中的时候自己的座右铭是“努力不一定会成功,不努力一定不会成功”,终于挫败接踵而至。唉,碰到问题不要逃避啊,但是还是有点迷茫。
以及, 字节很重视复盘的(听到没有,都给我去复盘!!!),我前两面的复盘了后面确实 没有复盘,给自己挖了很大的坑,俺活该,气吐血!
下面就开始我的复盘之路(Java方向):
由于篇幅原因,为了避免影响到大家的阅读体验,在此只以截图展示部分内容
1,基础必备技能:
-
Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性)
-
Web编程初探(Servlet+MySQL数据库+商品管理系统实战)
-
SSM从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版)
-
SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系统实战)
-
零距离互联网项目实战(Linux+Redis+双十一秒杀实战系统)
-
对应的源码笔记+项目实战:
- 基于SpringBoot的商品管理系统实战
2,设计思想解读开源框架
- 并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)
- JVM深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC算法和垃圾回收器+类加载机制等)
- MySQL深度进阶
- 深入Tomcat底层(线程模型+性能调优)
3,性能直线提升架构技术
- 数据库(调优+事务+锁+集群+主从+缓存等)
- Linux(命令+生产环境+日志等)
- 中间件&分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等组件)
4,高效存储让项目性能起飞
-
开源框架(Spring5源码+SpringMVC源码+Mybatis源码)
-
分布式架构(Zk实战+RabbitMQ+RocketMQ+Kafka)
-
高效存储(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)
-
微服务架构(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)
-
Springboot企业级用户权限系统项目实战