阿里资深专家面试问题收集

corejava

hashcode相等的两个对象一定相等吗?equals呢?反过来相等吗?
介绍一下集合框架?
hashtable,hashmap底层实现是什么?hashtable和concurrenthashmap底层实现的区别?
hashmap和treemap的区别?底层数据结构都是什么?
线程池用过吗?都有什么参数?底层是如何实现的?
synchronize 和Lock接口的区别是什么?synchronize什么情况下是对象锁?什么情况下是全局锁?为什么?
ThreadLocal 如何使用的?说出你在项目中使用的例子?底层实现是什么?
volatile 的工作原理是什么?
CAS是什么?如何实现的呢?
请用至少四种写法?写单例模式的实现.

JVM

请介绍一下JVM内存模型?用过哪些垃圾回收器?
线上频繁发生full gc如何处理?CPU使用率过高怎么办?说出你的思路和处理方法? 3,知道字节码吗?字节码都有哪些指令?Integer x=5. int y=5. 比较 x==y都经过哪些步骤?
讲讲类加载机制?都有哪些类加载器?这些类加载器都加载哪些类文件?说说你在项目中用到类加载器的例子?
知道osgi吗?他是如何实现的?
请问你做过哪些JVM方面的优化?使用的什么方法?达到了什么效果?

数据库

使用mysq索引都有哪些规则?索引是什么数据结构?B+tree和B tree的区别是什么?
mysql有哪些存储引擎啊?都有什么区别?
设计高并发高可用系统时数据库层面设计该怎么设计?
数据库锁都有哪些?如何实现的的?
数据库事务都有哪些?

分库分表

如何设计可以动态扩容缩容的分库分表方案?
用过哪些分库分表方案?都有什么优点和缺点?说一下他的底层如何实现的?
我现在有一个未分库分表系统A,以后系统需要分库分表B,请问,线上如何动态的由A切换到B?
分布式事务知道吗?它是如何实现的?若在通信过程中,出现网络原因,如何解决?
为什么要分库分表?
分布式寻址方式都有哪些?知道一致性hash吗?手写一下java实现代码?
你若用userId取模分片,我要查询连续时间段里的数据怎么办?
如何解决分库分表的主键问题?有什么实现方案?

分布式缓存

redis和memcached什么区别?为什么单线程的redis比多线程的memcached效率要高?
redis有什么数据类型?都在哪些场景下使用?
redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?
使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?
知道redis 的持久化吗?底层如何实现的?有什么优点缺点?
redis过期策略都有哪些?LRU算法知道吗?写一下java代码实现?

分布式服务框架

说一下dubbo的实现过程?注册中心挂了可以继续通信吗?
zookeeper原理知道吗?项目中都用到zookeeper哪些功能?其实现算法知道吗?说一下大概原理?
dubbo支持哪些序列化协议?知道hessian的数据结构吗?PB知道吗?为啥他的效率最高?
netty知道吗?netty可以做什么?NIO,BIO,AIO都是什么?有什么区别?
dubbo负载均衡策略和高可用策略都有哪些?动态代理策略都有哪些?
为啥要进行系统拆分?不进行拆分可以吗?dubbo和thrift什么区别?

分布式消息队列

为什么使用消息队列?消息队列有什么优点和缺点?
如何保证消息队列高可用?如何保证消息不被重复消费?
kafka,activemq,rabbitmq,rocketmq都有什么优点缺点?
如果让你设计一个消息队列?该如何进行架构设计,说一下你的思路?

分布式搜索引擎

es的工作 过程是如何实现的,他是如何实现分布式的的?
Es在数据量很大的情况下(数十亿),如何提高查询效率?
Es的查询是一个怎么的工作过程?底层的luncence介绍一下?倒排索引知道吗?es和mongodb有什么区别?使用场景都有哪些?

高并发高可用架构设计

如何设计一个高并发高可用系统?
如何限流?工作中是怎么做的?说一下具体实现?
缓存如何使用?缓存使用不当会造成什么后果?
如何熔断?熔断框架都有哪些?说一下具体原理实现?
如何降级?如何进行系统拆分?如何进行数据库拆分?

猜你喜欢

转载自blog.51cto.com/13919357/2161658