阿里的电话总是那么突然,经常在上班上的好好的时候,就突然来了说个杭州的座机电话,接的多了看到就可以猜到。大家习惯就好,一般面试官会提前打电话预约时间,可以预约一个自己合适的时间,因为阿粉我加班比较多,所以预约的都是晚上 9,10 点~,不得不说,阿里的面试官也挺辛苦的。
每个人都有一个进互联网大厂的梦!我也不例外,虽然挂在了二面,但是也让我大开了眼界,更加激起我学习的欲望,准备在疫情结束之后再战阿里!
突如其来的一面
- 自我介绍
- 介绍自己做的项目
- 项目中最有难度和记忆最深刻的项目
- 说说Hashmap 原理
- 底层红黑树是什么?
- ArrayList 与 LinkedList的区别
- ArrayList 扩容的过程是什么样子的
- 常用排序算法和时间复杂度
- 快排的实现原理:双指针,建议在纸上自行手写实现,这样才容易记牢。
- Kafka 事务处理机制
- Kafka 消息重复消费如何处理
- Kafka 如何保证消息的可靠性
- 线上FullGC 处理方法
- 垃圾回收介绍下
- 多进程和多线程有什么区别
- 类加载机制
- 开发过程中关于规范的代码有什么好的可以分享
- Spring 解决循环依赖
一面相对来说是比较偏技术细节的,从语言本身到 JVM,再到框架和工具都有涉及。
二面
二面的电话,同样还是那么的突如其来。。。二面的内部比较宽泛,偏项目和个人发展,没有标准答案,大家自行思考即可。
- 介绍自己,并介绍一下自己做的项目
- 自己主要负责哪块内容,其中印象最深刻的项目是什么
- 项目中遇到的最难的问题是什么,怎么解决的,
- 项目在生产上有没有遇到过问题,是什么样子的问题以及如何解决的
- 有没有因为 bug 或者其他原因导致的线上问题
- HashMap 与 ConcurrentHashMap的区别
- 线程池的实现原理
- GC 垃圾回收器的理解
- 慢 SQL 优化有什么建议
- Kafka 的基本组件和消息流程
- 使用 Redis 如何实现一个分布式锁
- 本人觉得工作这么久对业务有什么重大的贡献
- 项目小组有多少人,个人觉得自己在小组中是什么样的位置
- 工作这么久觉得业务上有什么缺陷,怎么优化
- 是否有参与项目架构的讨论和设计
- 业余时间一般做些什么
- 有 Github 账号,那GitHub 上印象最深刻的项目是什么
从二面的题目上可以看得出,考察的是各方面的能力,项目经历和设计能力,沟通能力以及学校能力,可谓是方方面面都在考察。
小结
二面过去了很久还没接到电话,阿粉我就知道肯定是到此为止了。哎,很遗憾阿粉我就进行到了二面,没机会给大家介绍三面的内容了,不过阿粉我会努力的!争取下次给大家分享三面的内容。
虽然这次失败了,但是我并没有气馁,只能说明还有很大的进步空间,下次再战!
最近疫情严重,在家待着哪里都不能去,刚好要在我好好学习学习,争取等到疫情结束过后再次冲击!
调整自己的心态,正确面对得失
面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。
提升技术,扩宽知识
对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?
由于篇幅限制,很多内容都只展示了目录和截图,这些都整理在文档里,需要这些文档资料的,均可以免费分享给大家,希望所有的程序员都能够学习起来,努力实现我们的大厂梦!
疫情期间准备如何复习在此备战阿里
前段时间通过很多渠道和朋友要到一份美团架构师写的Java面试宝典(284篇)我把美团架构师给我的一份Java面试宝典啃完了,从而还找了Java后端以及一些大厂的面试场景和面试题不断刷题提高自己的眼界、技术栈。
这本文档覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、Redis、数据结构、算法、大数据等大量知识点。
分为Java基础、数据结构算法、开源框架部分、分布式部分、微服务部分
针对阿里二面复习—刷题
MySQL 性能优化的21个最佳实践(含答案)
- 为查询缓存优化你的查询
- EXPLAIN 你的 SELECT 查询
- 当只要一行数据时使用 LIMIT 1
- 为搜索字段建索引
- 在 Join 表的时候使用相当类型的例,并将其索引
- 千万不要 ORDER BY RAND()
- 避免 SELECT *
- 永远为每张表设置一个 ID
- 使用 ENUM 而不是 VARCHAR
- 从 PROCEDURE ANALYSE() 取得建议
- 尽可能的使用 NOT NULL
- Prepared Statements
- 无缓冲的查询
- 把 IP 地址存成 UNSIGNED INT
- 固定长度的表会更快
- 垂直分割
- 拆分大的 DELETE 或 INSERT 语句
- 越小的列会越快
- 选择正确的存储引擎
- 使用一个对象关系映射器(Object Relational Mapper)
- 小心“永久链接”
JVM面试专题(含答案)
- 说一下 JVM 的主要组成部分及其作用?
- 说一下 JVM 运行时数据区
- 说一下堆栈的区别?
- 队列和栈是什么?有什么区别?
- 对象的创建
- 为对象分配内存
- 处理并发安全问题
- 对象的访问定位
- 句柄访问
- 直接指针
- 内存溢出异常
- Java会存在内存泄漏吗?请简单描述垃圾收集器
- 简述Java垃圾回收机制
- GC是什么?为什么要GC
- 垃圾回收的优点和原理。并考虑2种回收机制
- 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
- Java 中都有哪些引用类型?
- 怎么判断对象是否可以被回收?
- 在Java中,对象什么时候可以被垃圾回收
- JVM中的永久代中会发生垃圾回收吗
- 说一下 JVM 有哪些垃圾回收算法?
- 标记-清除算法
- 复制算法
- 标记-整理算法
- 分代收集算法
- 说一下 JVM 有哪些垃圾回收器?
- 详细介绍一下 CMS 垃圾回收器?
- 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
- 简述分代垃圾回收器是怎么工作的?
- 简述java内存分配与回收策率以及Minor GC和Major GC
- 对象优先在 Eden 区分配
- 大对象直接进入老年代
- 长期存活对象将进入老年代
- 简述java类加载机制?
- 描述一下JVM加载Class文件的原理机制
- 什么是类加载器,类加载器有哪些?
- 说一下类装载的执行过程?
- 什么是双亲委派模型?
- 说一下 JVM 调优的工具?
- 常用的 JVM 调优的参数都有哪些?
我的复习宝典资料
(1)Java面试手册
- 性能优化面试专栏
- 微服务架构面试专栏
- 并发编程高级面试专栏
- 开源框架面试题专栏
- 分布式面试专栏
(2)实战文档
- Redis实战
- MySQL实战
- Spring Boot实战
- Spring Cloud实战
- 实战Java虚拟机
以实战Java虚拟机为例:
- 初探Java虚拟机
- 认识Java虚拟机的基本结构
- 常用Java 虚拟机参数
- 垃圾回收概念与算法
- 垃圾收集器和内存分配
- 性能监控工具
- 分析Java堆
- 锁与并发
- Class 文件结构
- Class 装载系统
- 字节码执行
(3)Java核心知识点整理文档
由于篇幅限制,很多内容都只展示了目录和截图,这些都整理在文档里,需要这些文档资料的,均可以免费分享给大家,希望所有的程序员都能够学习起来,努力实现我们的大厂梦!
本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。