Java阿里巴巴面试题分享,一面、二面、三面面经总结

KLQ 2020-04-07 16:56:15 java常见问答 9005

很多人都想要了解Java阿里巴巴面试题,下面就特地给大家分享一下,一起来看看阿里巴巴面试题的一面、二面、三面都会有哪些面试题吧!

一、一面(视频面)

1、首先做自我介绍

2、redis为什么那么快?

首先,采用了多路复用io阻塞机制,然后,数据结构简单,操作节省时间最后,运行在内存中,自然速度快。

3、hashmap,ConcurrentHashMap,HashTable的数据结构

4、你对hash函数的了解有哪些?

哈希函数(Hash Function),也被叫做散列函数,给定一个输入x,它会算出相应的输出H(x)。

哈希函数的主要特征:

输入x可以是任意长度的字符串

输出结果即H(x)的长度是固定的

计算 H(x) 的过程是高效的(对于长度为 n 的字符串 x ,计算出 H(x) 的时间复杂度应为 O(n) )

5、equals和hashcode

6、散列值过大怎么办?

7、了解treemap吗?

Map接口有一个重要的实现类TreeMap,TreeMap可以实现存储元素的自动排序.....。

8、JUC你知道哪些,在哪用过?

9、线程的通信方式有哪些?

线程通信常用的方式有:wait/notify 等待、Volatile 内存共享、CountDownLatch 并发工具、CyclicBarrier 并发工具。

10、线程池有哪几种?

newCachedThreadPool创建一个可缓存线程池程、newFixedThreadPool 创建一个定长线程池、newScheduledThreadPool 创建一个定长线程池、newSingleThreadExecutor 创建一个单线程化的线程池。

11、在线算法题dfs的题

二、二面

1、自我介绍

2、聊聊项目

3、redis哨兵、redis过期淘汰机制

Sentinel(哨兵)是Redis 的高可用性解决方案。通过一个或多个Sentinel 实例组成的Sentinel 系统可以监视多个主服务器和下属的所有从服务器,当主服务器进入下线状态时,自动将主服务器下的从服务器升级为新的主服务器。

4、数据库优化

5、设计模式五大原则、单例具体实现、门面、模板方法

6、volatile可见性

7、项目中遇到什么困难,怎么解决的

8、jvm内存划分

9、双亲委派

双亲委派的意思是如果一个类加载器需要加载类,那么首先它会把这个类请求委派给父类加载器去完成,每一层都是如此。一直递归到顶层,当父加载器无法完成这个请求时,子类才会尝试去加载。这里的双亲其实就指的是父类,没有mother。父类也不是我们平日所说的那种继承关系,只是调用逻辑是这样。

双亲委派模型不是一种强制性约束,也就是你不这么做也不会报错怎样的,它是一种JAVA设计者推荐使用类加载器的方式。

采用双亲委派模式的是好处是Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次。

10、AOP proxy的优缺点

11、线程池参数,超过最大线程数会发生什么?

超过线程池最大数量时线程会崩溃......。

12、你有什么想问我的?

三、三面

1、自我介绍

2、聊项目

3、项目中遇到什么困难

4、JUC CAS Atomic

CAS的全称为CompareAndSwap,直译过来称为对比替换,也称为无锁技术。在java.util.concurrent特别是其下的atomic包中的原子类有大量使用。CAS是一种乐观锁,乐观锁比起悲观锁性能有较大的提升。CAS技术是基于volatile来实现的(作用:内存可见性(Java内存模型考虑)、禁止指令重新排序)。

5、分布式事务CAP AP CP举例,分布式事务解决方案

6、JVM CMS有什么缺点,怎么解决碎片,降级会降成什么

7、设计模式 访问者

8、aop cglib的底层实现原理是什么?

9、redis内存淘汰

Redis内存淘汰指的是用户存储的一些键被可以被Redis主动地从实例中删除,从而产生读miss的情况。内存的淘汰机制的初衷是为了更好地使用内存,用一定的缓存miss来换取内存的使用效率。

10、然后聊聊人生

11、智力题

更多JAVA面试题,阿里巴巴JAVA面经,可以继续关注本站了解。