十月阿里社招 Java 面试题:数据库 + 分布式 + 高并发 +JVM+Spring

今天笔者为大家分享“阿里资深 Java 面试题”,分别是数据库、分库分表、分布式缓存、分布式服务框架、分布式消息队列、分布式搜索引擎、高并发高可用架构设计、JVM、Spring、算法、数据结构等阿里资深 java 面试题,下面就随小编一起看看。
一. 数据库
使用 mysq1 索引都有哪些原则?索引什么数据结构?B+tree 和 Btree 什么区别?
mysq 有哪些存储引擎啊?都有啥区别??要详细!!
设计高并发系统数据库层面该怎么设计???数据库锁有哪些类型?如何实现呀?
数据库事务有哪些?
二. 分库分表
如何设计可以动态扩容缩容的分库分表方案?
用过哪些分库分表中间件,有啥优点和缺点,
讲一下你了解的分库分表中间件的底层实现原理?
我现在有一个未分库分表的系统,以后系统需分库分表,如何设计,
让未分库分表的系统动态切换到分库分表的系统上?
分布式事务知道吗?你们怎么解决的?TCC?那若出现网络原因,网络连不通怎么办啊
为什么要分库分表啊?
分布式寻址方式都有哪些算法?知道一致性 hash 吗?
手写一下 java 实现代码?你若 userId 取摸分片,那我要查段连续时间里的数据怎么办?
如何解决分库分表主键问题?有什么实现方案?
三. 分布式缓存
redis 和 memcheched 什么区别?为什么单线程的 redis 比多线程的 memched 效率要高啊?
redis 有什么数据类型?都在哪些场景下使用啊?
reids 的主从复制是怎么实现的?redis 的集群模式是如何实现的呢?redis 的 key 是如何寻址的啊?
使用 redis 如何设计分布式锁?使用 zk 可以吗?如何实现啊?这两种哪个效率更高啊?
知道 redis 的持久化吗?都有什么缺点优点啊??具体底层实现呢?
redis 过期策略都有哪些?LRU?写--下 java 版本的代码吧?
说一下 dubbo 的实现过程?注册中心挂了可以继续通信吗?
四. 分布式服务框架
zk 原理知道吗?zk 都可以干什么?Paxos 算法知道吗?说一下原理和实现??
dubbo 支持哪些序列化协议?hessian?说一 Fhessian 的数据结构?PB 知道吗?为啥 PB 效率是最高的啊??
知道 netty 吗?netty 可以干嘛呀 NIO,BIO,AIO 都是什么啊?有什么区别啊?
dubbo 复制均衡策略和高可用策略都有哪些啊?动态代理策略呢?

五. 分布式消息队列
为什么要进行系统拆分啊?拆分不用 dubbo 可以吗?dubbo 和 thrift 什么区别啊?
为什么使用消息队列啊?消息队列有什么优点和缺点啊?
如何保证消息队列的高可用啊?如何保证消息不被重复消费啊?
kafka,activemq,rabbitmq,rocketmq 都有什么优点,缺点啊?
如果让你写一个消息队列,该如何进行架构设计啊?说-下你的思路
六. 分布式搜索引擎
es 的工作过程实现是如何的?如何实现分布式的啊
es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
es 的查询是个怎么的工作过程?底层的 lucence 介绍一下呗?倒排索引知道吗?
es 和 mongdb 什么区别啊?都在什么场景下使用啊?
七. 高并发高可用架构设计
如何设计一个高并发高可用系统?
如何限流?工程中怎么做的,说一下具体实现?
缓存如何使用的?缓存使用不当会造成什么后果?
如何熔断啊?熔断框架都有哪些?具体实现原理知道吗?
如何降级?如何进行系统拆分,如何数据库拆分?
八. JVM
请介绍一下 JVM 内存模型??用过什么垃圾回收器?都说说呗?
线上发送频繁 ful1gc 如何处理??CPU 使用率过高怎么办?
如何定位问题?如何解决?说下解决思路和处理方法.
知道字节码吗?字节码都有哪些?
IntegerX5,inty=5,比较 x=y 都经过哪些步骤?
讲讲类加载机制呗?都有哪些类加载器,这些类加载器都加载哪些文件?
手写一下类加载 Demo
知道 osgi 吗?他是如何实现的?
请问你做过哪些 JVM 优化?使用什么方法?达到什么效果?
class.forName("java.langString")和 String.class.getClassLoader().LoadClass("java.lang.String")什么区别啊?

九. Spring
spring 都有哪些机制啊?AOP 底层如何实现的啊?I0C 呢??
cglib 知道吗?他和 jdk 动态代理什么区别?手写个 jdk 动态代理呗?
说一下 TCP/IP 四层?
http 的工作流程???http1.0http1.1http2.0 具体哪些区别啊?
TCP 三次握手,四层分手的工作流程?画一下流程图?为什么不是四次五次或者二次啊?
画一下 https 的工作流程?具体如何实现啊?如何防止被抓包啊?
十. 算法
比较简单,我一个文件,有 45 亿个阿拉伯数字,如何进行去重啊?如何找出最大的那个数啊?
十一.数据结构
二叉树和红黑树等
写在最后
限于篇幅,答案就不在文中一一讲解;面试题已经整理成一份完整的 PDF 文档
原文档打开方式:我的学习笔记


评论