很多人都想要了解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
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、设计模式五大原则、单例具体实现、门面、模板方法
7、项目中遇到什么困难,怎么解决的
8、jvm内存划分
9、双亲委派
双亲委派的意思是如果一个类加载器需要加载类,那么首先它会把这个类请求委派给父类加载器去完成,每一层都是如此。一直递归到顶层,当父加载器无法完成这个请求时,子类才会尝试去加载。这里的双亲其实就指的是父类,没有mother。父类也不是我们平日所说的那种继承关系,只是调用逻辑是这样。
双亲委派模型不是一种强制性约束,也就是你不这么做也不会报错怎样的,它是一种JAVA设计者推荐使用类加载器的方式。
采用双亲委派模式的是好处是Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次。
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、设计模式 访问者
9、redis内存淘汰
Redis内存淘汰指的是用户存储的一些键被可以被Redis主动地从实例中删除,从而产生读miss的情况。内存的淘汰机制的初衷是为了更好地使用内存,用一定的缓存miss来换取内存的使用效率。
10、然后聊聊人生
11、智力题
更多JAVA面试题,阿里巴巴JAVA面经,可以继续关注本站了解。