年前面试阿里被挂,疫情复盘,五面阿里斩获offer,面经分享

前言

想要入职大厂可谓是千军万马过独木桥,要通过层层考验。

作为国内互联网技术的典型代表,阿里巴巴的技术一直备受着大家的关注。能进入阿里工作,也是很多开发者们的目标与梦想。

“不想进大厂的程序员不是好程序员”

春节过后,本是金三银四之际,大部分人也都准备好了这在两个月里谋得一份自己心仪的工作,奈何今年的2020有些特殊,肺炎肆虐,对我们的工作和生活都造成了极大的影响。那么,是不是这样,我们就不工作,不学习了呢?实际上,正是因为现在正值传染病毒传播期间,所以我们宅在家里好好学习是再好不过的。对于Java程序员来说,利用这两三个月的时间,好好学习,着手准备起来,等到疫情好转,开始面试时,也不至于胆怯。

一面

1.技术一面考察范围:

  • 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现
  • 线程池的底层实现以及常见的参数
  • 数据结构基本都问了一遍:链表、队列等
  • Java内存模型:常问的JVM分代模型,以及JDK1.8后的区别,最后还问了JVM相关的调优参数
  • 分布式锁的实现比较

2.技术一面:

1.自我介绍

2.擅长哪方面的技术?

3. Java有哪些锁种类? (乐观锁&悲观锁、可重入锁&Synchronize等)

4.比较重要的数据结构,如链表,队列,栈的基本理解及大致实现

5. J.U.C下的常见类的使用。ThreadPool的深入考察; BlockingQueue的使用

6. Java内存分代模型,GC算法, JVM常见的启动参数; CMS算法的过程。

7. volatile关键字有什么用(包括底层原理)

8.线程池的调优策略

9. spring cloud的服务注册与发现是怎么设计的?

10.分布式系统的全局id如何实现

11.分布式锁的方案,redis和zookeeper哪个个好,如果是集群部署,高并发情况下哪个性能更好。

二面

1.技术二面考察范围:

  • 问了项目相关的技术实现细节
  • 数据库相关:索引、索引底层实现、mysql相关的行锁、表锁等
  • redis相关:架构设计、数据一致性问题
  • 容器:容器的设计原理等

2.技术二面:

1.参与的项目,选一个,技术难度在哪里?

2. Collections.sort底层排序方式

3.负载均衡的原理

4.设计模式与重构,谈谈你对重构的理解

5.谈谈Redis相关的集群有哪些成熟方案?

6.再谈谈-致hash算法(redis)?

7.数据库索引,B +树的特性和建树过程。

8. mysql相关的行锁,表锁;乐观锁,悲观锁

9.谈谈多线程和并发工具的使用

10.讲讲Redis的架构和组件

11. Redis的数据一致性问题(分布式多节点环境&单机环境)

12. docker容器

三面

1.技术三面考察范围

  • 主要谈到了高并发的实现方案
  • 以及中间件:redis、rocketmq、kafka等的架构设计思路
  • 最后问了平时怎么提升技术的

2.技术三面题目

1.高并发情况下,系统是如何支撑大量的请求的?

2.接着上面的问题,延伸到了中间件,kafka、 redis、 rocketmq、 mycat等 设计思路和适用场景等

3.最近上过.上哪些技术站点; 最近在看哪些书。

4.工作和生活中遇见最大的挑战,怎么去克服?

5.未来有怎样的打算

四面

最后,你懂的,主要就是HR走流程了,主要问了未来的职业规划。

小结

最近疫情严重,在家待着哪里都不能去,刚好能好好学习,充充电

调整自己的心态,正确面对得失

面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。

提升技术,扩宽知识

对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?

文中提到的资料,小编都整理好了,感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来免费获取

资料整理

前段时间通过很多渠道和朋友要到一份美团架构师写的Java面试宝典(284篇)我把美团架构师给我的一份Java面试宝典啃完了,从而还找了Java后端以及一些大厂的面试场景和面试题不断刷题提高自己的眼界、技术栈。

这本文档覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、Redis、数据结构、算法、大数据等大量知识点。

分为Java基础、数据结构算法、开源框架部分、分布式部分、微服务部分

年前三面阿里失败,疫情复盘,成功斩获阿里offer,定级P7

年前三面阿里失败,疫情复盘,成功斩获阿里offer,定级P7

面试题

MySQL 性能优化的21个最佳实践(含答案)

  1. 为查询缓存优化你的查询
  2. EXPLAIN 你的 SELECT 查询
  3. 当只要一行数据时使用 LIMIT 1
  4. 为搜索字段建索引
  5. 在 Join 表的时候使用相当类型的例,并将其索引
  6. 千万不要 ORDER BY RAND()
  7. 避免 SELECT *
  8. 永远为每张表设置一个 ID
  9. 使用 ENUM 而不是 VARCHAR
  10. 从 PROCEDURE ANALYSE() 取得建议
  11. 尽可能的使用 NOT NULL
  12. Prepared Statements
  13. 无缓冲的查询
  14. 把 IP 地址存成 UNSIGNED INT
  15. 固定长度的表会更快
  16. 垂直分割
  17. 拆分大的 DELETE 或 INSERT 语句
  18. 越小的列会越快
  19. 选择正确的存储引擎
  20. 使用一个对象关系映射器(Object Relational Mapper)
  21. 小心“永久链接”

年前三面阿里失败,疫情复盘,成功斩获阿里offer,定级P7

JVM面试专题(含答案)

  1. 说一下 JVM 的主要组成部分及其作用?
  2. 说一下 JVM 运行时数据区
  3. 说一下堆栈的区别?
  4. 队列和栈是什么?有什么区别?
  5. 对象的创建
  6. 为对象分配内存
  7. 处理并发安全问题
  8. 对象的访问定位
  9. 句柄访问
  10. 直接指针
  11. 内存溢出异常
  12. Java会存在内存泄漏吗?请简单描述垃圾收集器
  13. 简述Java垃圾回收机制
  14. GC是什么?为什么要GC
  15. 垃圾回收的优点和原理。并考虑2种回收机制
  16. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  17. Java 中都有哪些引用类型?
  18. 怎么判断对象是否可以被回收?
  19. 在Java中,对象什么时候可以被垃圾回收
  20. JVM中的永久代中会发生垃圾回收吗
  21. 说一下 JVM 有哪些垃圾回收算法?
  22. 标记-清除算法
  23. 复制算法
  24. 标记-整理算法
  25. 分代收集算法
  26. 说一下 JVM 有哪些垃圾回收器?
  27. 详细介绍一下 CMS 垃圾回收器?
  28. 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
  29. 简述分代垃圾回收器是怎么工作的?
  30. 简述java内存分配与回收策率以及Minor GC和Major GC
  31. 对象优先在 Eden 区分配
  32. 大对象直接进入老年代
  33. 长期存活对象将进入老年代
  34. 简述java类加载机制?
  35. 描述一下JVM加载Class文件的原理机制
  36. 什么是类加载器,类加载器有哪些?
  37. 说一下类装载的执行过程?
  38. 什么是双亲委派模型?
  39. 说一下 JVM 调优的工具?
  40. 常用的 JVM 调优的参数都有哪些?

年前三面阿里失败,疫情复盘,成功斩获阿里offer,定级P7

限于平台篇幅限制,部分资料只截取了部分,感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来免费获取

发布了65 篇原创文章 · 获赞 83 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/GYHYCX/article/details/104866298