Bootstrap

真真正正的九面阿里才定级 P6+ 支持背调,还不来看?(建议收藏)

一面:

  1. 离职原因;

  2. Zookeeper 在项目中的使用及原理;

  3. Springcloud 的一些组件介绍;

  4. 分布式锁:

Redis 实现方式:

redis:为什么使用 setnx,或者说 set 和 setNx 有什么区别;

setNx:系统在 10:05 设置一个值,并给出 5 分钟的过期时间,系统刚刚 set 完之后 redis 集群崩溃,10:11 分系统重启成功,那么 redis 中 set 的值是否还存在?

考察点:

1、redis 的持久化:刚 set 完是否能够被持久化到快照或者 binlog 日志中;

2、假设 redis 被持久化,且系统重启时间超过了 redis 设置的过期时间,那么 key 是否会被清理;

zookeeper 实现方式:

  1. 多线程的创建方式:

1、继承 thread 类;

2、实现 runnable 接口;

3、实现 callable 接口;

4、线程池方式进行创建及每个参数之间的逻辑关系;

  1. 服务器 CPU 数量及线程池数量的关系;

1、服务器 cpu 数量(n);

2、是 IO 密集型(2n 个线程)应用还是计算密集型(n+1 个线程)应用;

  1. Mysql 的 sql 优化

优化方向:

1、 Mysql 使用过程中走索引的语句:

2、 索引的优化:

3、 亿级的数据必须使用 like 进行查询,如何优化?

  1. 如何做一个秒杀系统;

1、MQ 做限流:保证只有 1000 个人可以访问系统;

2、使用 redis 做缓存;

3、redis 往 mysql 中进行持久化

  1. 自己认为自己的技术怎么样?

二面:

  1. Mysql 是集群还是单节点;最大的表中数据量大约是多少?3000w-4000w;

  2. Mysql 主从配置是 DBA 去做还是自己去做?mysql 主从同步的机制的原理?mysql 主从复制主要有几种模式?

  3. Redis 持久化方式:rdb、aof;redis 中哪个版本开始可以对分布式使用;

  4. Nginx 的使用场景;

1、请求转发;

2、负载均衡;

  1. Spark 主要用来做什么的?

第三面至第八面所有面试题

1.ConcurrentHashMap 底层原理

2.手写一个 LRU

用 LinkedHashMap

3.HashMap 底层数据结构

4.为什么用红黑树不用普通的 AVL 树

5.为什么在 8 的时候链表变成树

6.为什么在 6 的时候从树退回链表

7.线程池 7 个参数,该怎么配置最好

8.说一下 volatile

9.volatile 的可见性和禁止指令重排序怎么实现的

可见性:缓存一致性协议

禁止指令重排序:JMM 模型里有 8 个指令完成数据的读写,通过其中 load 和 store 指令相互组合成的 4 个内存屏障实现禁止指令重排序

10.CAS 是什么

11.PriorityQueue 底层是什么,初始容量是多少,扩容方式呢

最小堆,

11,若原始大小<64,则扩容为原来的 2 倍+2,不然就扩容为原来的 1.5 倍

12.HashMap 的容量为什么要设置为 2 的次幂

13.你知道跳表吗,什么场景会用到

ConcurrentSkipListMap,用在多线程下

;