阿里巴巴|不到2年开发经验|三轮技术面+HR面|已拿Offer
阿里巴巴面经
三轮技术面试,一轮 HR 面试,第一轮通常是电话面试,第二轮是视频,可能会有一道算法题。
一面
一面基本是 Java 基础问题,比较简单。
- Java 如何判断一个对象能否被回收?垃圾回收算法有哪些?
- 什么是内存模型?
- 什么是线程安全?
- Java 中锁有哪些?synchronize 和 Lock 的区别?
- synchronize 的底层实现原理
- 对象在内存中的布局?
- volatile 关键字的实现原理?
- 什么是原子性、可见性、有序性?什么是 happen-before 原则?解释一下 final 的语义?
- 什么是 CAS?CAS 存在什么问题?
- Lock 系列锁的实现原理?
- 什么是原子类?原子类的实现原理?
- Java 中对象的引用有哪些类型?
- ThreadLocal 的实现原理?存在什么问题?如何避免?
- HashMap 的实现原理?1.7 和 1.8 的区别?
- 有哪些线程安全的 Map?ConcurrentHashMap 的实现原理?1.7 和 1.8 的区别?
- ConcurrentHashMap 是如何统计 size 的?
- MySQL 的索引为什么是 B+Tree,而不是数组、Hash 之类的数据结构?为什么不是 B-Tree?
- Redis 有哪些数据类型?List 中数据非常多怎么办?
- Redis 的持久化机制?AOF 和 RDB 的优缺点?
- 线上服务接口非常慢?如何排查?
二面和三面
二面和三面是同一天面的,记不清了,大概是这些问题,面试官比较喜欢追问。
- 一道算法题。
- 聊项目经历,非常细。
- 垃圾标记算法和垃圾回收算法有哪些?
- 什么是三色标记?什么是安全点与安全区域?
- 简述一下 G1 垃圾回收器的原理?
- 为什么你们项目中没有使用 G1 垃圾回收器?
- 什么时候会触发 Minor GC?什么时候出发 Old GC?什么是 Full GC?
- 对象什么时候进入到老年代?什么是动态年龄判断?
- 你们线上服务的 QPS 有多大?机器配置是多少?JVM 的参数是怎么设置的?GC 的频率?为什么要这这样配置?
- 假设线上服务的流量是当前流量的 1 万倍?系统会出现什么现象?如何优化?
- Redis 的高可用怎么保证?线上有多少台机器?怎么部署的?
- Redis 实现分布式锁的原理?存在什么问题?
- 如何用 Zookeeper 实现分布式锁?存在什么问题?
- Redis 中遇到热 key 会造成什么问题?如何发现热 key?如何解决热 key 的问题?
- SQL 的优化经验有哪些?索引的设计准则?
- 如何查看 SQL 的慢查询日志?线上服务出现慢查询了怎么处理?
- 线上数据库出现了死锁怎么办?
- MySQL 的 InnoDB 在可重复读隔离界别下如何解决不可重复读问题和幻读问题的?什么是快照读?什么是当前读?
- MySQL 中有哪些锁?什么是间隙锁?
- MySQL 中有哪些日志?
- 数据库有哪些特性?MySQL 是如何保证机器宕机重启后,数据不丢失的?
- binlog 有什么作用?将其格式设置为 statement 会有什么问题?你们线上是如何配置的?
- 如何保证 MySQL 的高可用?主从复制的原理?
- 现在线上环境中发现 MySQL 的总节点大幅落后于 master 节点,可能是什么原因?如何处理?
- 消息队列的选型?RocketMQ 的实现原理?
- 如何保证消息不丢失?如何保证不重复消费消息?
- 线上 MQ 出现消息大量积压,应该如何处理?
- 让你设计一个 MQ,你会如何设计?
- 什么是 mmap?
- netty 用过吗?为什么 netty 是高性能的网络框架?
- 零拷贝机制的实现原理?
- Zookeeper 集群如何部署?Zookeeper 如何实现选举?什么是 ZAB 协议?
- Zookeeper 如何保证数据的顺序一致性?
- Zookeeper 的使用场景?如何支撑大量的读请求?
- 你们微服务的注册中心是如何选型的?Zookeeper 和 Eureka 作为注册中心的区别?它们有什么瓶颈?
- 如何设计一款能支撑数十万机器组成的集群的注册中心?
- 如何设计一个秒杀系统?在双十一当天,从浏览器中输入 www.taobao.com 到加载出页面,说一下它的完整过程。
面经参考解析
以上所有问题的答案都有相应的解析文档参考,网上也有一些类似的面试题总结的文章,但小编这份绝对是数一数二,剩下你了去网上一个个找的时间!每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图吧。
需要的读者朋友们可以帮忙点赞+关注我后,然后加小助理VX:wjj2632646获取!

Java基础

Java 集合框架

jvm

多线程

网络

算法和数据结构

Spring

Netty

微服务/分布式

消息队列

分布式 ID,其他(网关、限流...)

MySQL

Redis

经验总结
这是我在工作、面试中学习并总结到的一些知识点,都是一些比较典型的、面试常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结,你也可能会出现逻辑混乱的情况,从而错失工作机会。
有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。所谓“温故而知新”,没事的时候多翻看一下这些知识,没准就会有新的收获。你没时间整理的东西,我都帮你写好了。
需要的读者朋友们可以帮忙点赞+关注我后,然后加小助理VX:wjj2632646获取!
每日分享最新的面试经历和面试心得,有最新的面试题一定会第一时间分享,可以关注我哦~