阿里一面

  1. 自我介绍
  2. 链表,数组的优缺点,应用场景,查找元素的复杂度
  3. 二叉树怎么实现的
  4. Java中都有哪些锁
  5. 可重入锁的设计思路是什么
  6. 乐观锁和悲观锁
  7. synchronized机制
  8. hashmap原理,处理哈希冲突用的哪种方法(拉链)
  9. 还知道什么处理哈希冲突的方法(开放地址检测)
  10. 开放地址检测怎么实现的
  11. 从哈希表中删除一个元素,再加入元素时恰好与原来那个哈希冲突,这个元素会放在哪
  12. 并发容器,Hashtable和concurrenthashmap区别
  13. redis原子操作怎么用比较好
  14. 消息队列用过哪些?

阿里二面

操作系统模块:

1、说一下并行和并发的区别

2、你知道进程吗?有进程为何还有线程?

3、操作系统是如何调度进程呢的

4、比如linux下我打开一个文件调用read函数,整个过程说的越细越好

5、同步异步阻塞非阻塞IO详细越好。

网络模块

  1. TCP报文格式
  2. TCP和UDP
  3. 拥塞控制
  4. 超时重传
  5. 三次握手
  6. 滑动窗口
  7. 常见协议的端口号

数据库模块:

  1. 索引数据结构
  2. 索引常见优化方案
  3. 存储引擎
  4. 事务(spring框架如何实现事务的呢)
  5. 垂直拆分
  6. 分库分表
  7. 读写分离

Java模块:

  1. hashmap
  2. Arraylist和linkedlist
  3. voliate
  4. 线程池,如何根据CPU的核数来设计线程大小,如果是计算机密集型的呢,如果是IO密集型的呢?
  5. countdownlatch和CyclicBarrier底层实现原理
  6. 线程状态以及API怎么操作会发生这种转换

JVM模块

面试官说只问三个问题:

1、内存模型以及分区,需要详细到每个区放什么

2、堆里面的分区:Eden,survival ,老年代,各自的特点。

3、垃圾回收算法,什么时候回收。

分布式:

1、redis与memached选型,你更倾向于选择哪个,为什么?

2、分布式事务解决,你知道我们阿里巴巴是怎么做的吗?

3、消息队列比较和选型?

5、CAP

阿里三面

  1. 自我介绍
  2. 学习技术的方式,开源、书籍、自学、实践,具体的学习方法?
  3. 最有技术含量的项目,讲讲从架构设计再到部署的流程
  4. 常见的数据库瓶颈有哪些,怎么来优化
  5. 微信附件人这个功能怎么实现的

以上就是阿里三面题目,以下是总结出来的阿里经典面试题目及答案,内容涵盖: Java,MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL.Spring.Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

有想获取面试题文档的朋友,见下↓↓↓↓