最后
金三银四到了,送上一个小福利!
第一部分:Java基础-中级-高级
1.1 Java基础面试题汇总
===============
-
1. 面向对象和面向过程的区别?
-
2. Java 语言有哪些特点?
-
3. 关于 JVM JDK 和 JRE 最详细通俗的解答
-
4. Oracle JDK 和 OpenJDK 的对比
-
5. Java 和 C++的区别?
-
6. 什么是 Java 程序的主类?应用程序和小程序的主类有何不同?
-
7. Java 应用程序与小程序之间有哪些差别?
-
8. 字符型常量和字符串常量的区别
-
9. 构造器 Constructor 是否可被 override?
-
10. 重载和重写的区别?
-
11. Java 面向对象编程三大特性: 封装 继承 多态
-
12. String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
-
13. 自动装箱与拆箱
-
14. 在一个静态方法内调用一个非静态成员为什么是非法的?
-
15. 在 Java 中定义一个不做事且没有参数的构造方法的作用?
-
16. import java 和 javax 有什么区别?
-
17. 接口和抽象类的区别是什么?
-
18. 成员变量与局部变量的区别有哪些?
-
19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?
-
20. 什么是方法的返回值?返回值在类的方法里的作用是什么?
-
21. 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?
-
22. 构造方法有哪些特性?
-
23. 静态方法和实例方法有何不同?
-
24. 对象的相等与指向他们的引用相等,两者有什么不同?
-
25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
-
26. == 与 equals(重要)
-
27. hashCode 与 equals(重要)
-
28. 为什么 Java 中只有值传递?
-
29. 简述线程,程序、进程的基本概念。以及他们之间关系是什么
-
30. 线程有哪些基本状态?
-
31. 关于 final 关键字的一些总结
-
32. Java 中的异常处理
-
33. Java 序列化中如果有些字段不想进行序列化 怎么办?
-
34. 获取用键盘输入常用的的两种方法?
Java基础面试题-答案解析
1.2 Java中级面试题汇总
===============
-
1. HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理
-
2. Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别
-
3. Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点
-
4. SpringCould组件有哪些,他们的作用是什么?(说七八个)微服务的CAP是什么?BASE是什么?
-
5. 设计模式(说五六个)
-
6. Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透
-
7. 线程是什么,有几种实现方式,它们之间的区别是什么,线程池实现原理,JUC并发包,ThreadLocal与Lock和Synchronize区别?
-
8. 分布式事务(不同系统之间如何保证数据的一致性(A系统写入数据,B系统因为某些原因没有写入成功,造成数据不一致))
-
9. 安全性问题(数据篡改(拿到别人的URL,篡改数据(金额)发送给系统))
-
10. 索引使用的限制条件,sql优化有哪些,数据同步问题(缓存,数据库数据同步)
-
11. 初始化Bean对象有几个步骤,它的生命周期
-
12. JVM内存模型,算法,垃圾回收器,调优,类加载机制(双亲委派),创建一个对象,这个对象在内存中是怎么分配的?
-
13. 如何设计一个秒杀系统?(高并发高可用分布式集群)
-
14. 悲观锁,乐观锁,读写锁,行锁,表锁,自旋锁,死锁,分布式锁,线程同步锁,公平锁,非公平锁分别是什么?
-
15. 堆溢出,栈溢出的出现场景以及解决方案
-
16. 说出几种MQ之间的区别,以及为什么使用这种MQ,消息重复发送(幂等性),消息发送失败,消息掉包,长时间收不到消息,发送的消息太大造成接收不成功
-
17. 单点登录实现原理
-
18. 假如有上亿条数据,你如何快速找到其中一条你想要的数据(几种简单的算法)
-
19. Dubbo的运行原理,支持什么协议,与SpringCould相比它为什么效率要高一些,Zookeeper底层原理
-
20. 假如你带一个团队,让你设计一个系统,你需要考虑哪些?
Java中级面试题-答案解析
1.3 Java高级面试题汇总
===============
-
1. 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
-
2. 如何保证消息队列的高可用?
-
3. 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
-
4. 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
-
5. 如何保证消息的顺序性?
-
6. 如何解决消息队列的延时以及过期失效问题? 消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
-
7. 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路?
-
8. 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?
-
9. redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?
-
10. redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
-
11. redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?
-
12. 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨
-
13. redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?
-
14. redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?
-
15. 了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?
-
16. 如何保证缓存与数据库的双写一致性?
-
17. 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
-
18. 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?
-
19. 如何设计可以动态扩容缩容的分库分表方案?
-
20. 分库分表之后,id 主键如何处理?
-
21. 有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决MySQL 主从同步的延时问题?
-
22. 如何设计一个高并发系统?
-
23. 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?
-
24. dubbo 支持哪些通信协议?支持哪些序列化协议?说一下Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
-
25. dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
-
26. 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
-
27. 分布式服务接口的幂等性如何设计(比如不能重复扣款)?
-
28. 如何自己设计一个类似 Dubbo 的 RPC 框架?
-
29. 一般实现分布式锁都有哪些方式?使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?
-
30. 分布式事务了解吗?你们是如何解决分布式事务问题的?
-
31. 服务注册和发现是什么意思?Spring Cloud 如何实现?
-
32. 什么是 Netflix Feign?它的优点是什么?
-
33. 负载平衡的意义什么?
-
34. 什么是 Spring Cloud Bus?我们需要它吗?
Java高级面试题-答案解析
第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
=======================================
第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
2.1 Spring面试题汇总
===============
-
1. 谈谈对 Spring IoC 的理解?
-
2. 谈谈对 Spring DI 的理解?
-
3. BeanFactory 接口和 ApplicationContext 接口不同点是什么?
-
4. 请介绍你熟悉的 Spring 核心类,并说明有什么作用?
-
5. 介绍一下 Spring 的事务的了解?
-
6. 介绍一下 Spring 的事务实现方式?
-
7. 解释 AOP 模块
-
8. Spring 的通知类型有哪些,请简单介绍一下?
-
9. Spring 通知类型使用场景分别有哪些?
-
10. 请介绍一下你对 Spring Beans 的理解?
-
11. Spring 有哪些优点?
-
12. 在Spring中使用hibernate的方法步骤
-
13. Spring 和 Struts 的区别?
-
14. Spring 框架由哪几部分组成?
-
15. 谈谈你对 BeanFactory的理解,BeanFactory 实现举例
-
16. 谈谈对 Spring 中的 Web 模块的理解
-
17. BeanFactory 和 Application contexts 有什么区别?
-
18. 谈谈你对 Spring 依赖注入的理解?
-
19. 什么是 Bean 装配?
-
20. 什么是 Bean 的自动装配?
-
21. 介绍一下自动装配有几种方式?
-
22. 什么是基于注解的容器配置?
-
23. 简述 JdbcTemplate 类的作用
-
24. 解释 AOP
-
25. 解释 Aspect 切面
-
26. 简述 Spring AOP 中的通知
-
27. Spring AOP 中的植入你怎样理解?
-
28. 请详细介绍一下 Spring MVC 的流程?
-
29. Spring 配置文件?
-
30. @RequestMapping 注解用在类上面有什么作用
-
31. 怎么样把某个请求映射到特定的方法上面
-
32. 谈谈 Spring 对 DAO 的支持
-
33. Spring 配置 Bean 实例化有哪些方式?
-
34. Bean 注入属性有哪几种方式
-
35. 在 Spring 中如何实现时间处理?
-
36. Spring 中如何更高效的使用 JDBC ?
-
37. 请介绍一下设计模式在 Spring 框架中的使用?
-
38. 讲讲 Spring 框架的优点有哪些?
-
39. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?
-
40. 你怎样定义类的作用域?
-
41. 解释 Spring 支持的几种 Bean 的作用域
-
42. 在 Spring 中如何注入一个 Java 集合?
-
43. 你可以在 Spring 中注入一个 null 和一个空字符串吗?
-
44. 什么是基于 Java 的 Spring 注解配置? 给一些注解的例子
-
45. 你更倾向用哪种事务管理类型?
-
46. Bean 的调用方式有哪些?
-
47. Spring MVC 里面拦截器是怎么写的
-
48. 当一个方法向 AJAX 返回特殊对象,比如 Object、List 等,需要做什么处理?
-
49. 如何使用 Spring MVC 完成 JSON 操作
-
50. Spring 如何整合 Hibernate
-
51. Spring 如何整合 Struts2 ?
-
52. 开发中主要使用 Spring 的什么技术 ?
-
53. 介绍一下 Spring MVC 常用的一些注解
-
54. Spring 框架的事务管理有哪些优点
-
55. IoC 控制反转设计原理?
-
56. Spring 的生命周期?
-
57. Spring 如何处理线程并发问题?
-
58. 核心容器(应用上下文)模块的理解?
-
59. 为什么说 Spring 是一个容器?
-
60. Spring 的优点?
-
61. Spring 框架中的单例 Beans 是线程安全的么?
-
62. Spring 框架中有哪些不同类型的事件?
-
63. IoC 的优点是什么?
-
64. 解释 Spring 框架中 Bean 的生命周期
-
65. 什么是 Spring 的内部 Bean?
-
66. 自动装配有哪些局限性 ?
-
67. Spring 框架的事务管理有哪些优点?
-
68. 在 Spring AOP 中,关注点和横切关注的区别是什么?
-
69. 说说 Spring AOP 的底层实现原理?
-
70. 如何给 Spring 容器提供配置元数据?
-
71. 哪些是重要的 Bean 生命周期方法? 你能重载它们吗?
-
72. 讲下 Spring MVC 的执行流程
-
73. Spring MVC 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
-
74. Spring 中循环注入的方式?
-
75. Spring MVC 比较 Struts2
-
76. 什么是 Spring Boot?
-
77. Spring Boot 自动配置的原理?
-
78. Spring Boot 读取配置文件的方式?
-
79. 什么是微服务架构?
-
80. Ribbon 和 Feign 的区别?
-
81. Spring Cloud 断路器的作用?
-
82. 为什么要用 Spring Boot?
-
83. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
-
84. Spring Boot 的配置文件有哪几种格式?它们有什么区别?
-
85. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
-
86. 开启 Spring Boot 特性有哪几种方式?
-
87. Spring Boot 需要独立的容器运行吗?
-
88. 运行 Spring Boot 有哪几种方式?
-
89. 你如何理解 Spring Boot 中的 Starters?
-
90. 如何在 Spring Boot 启动的时候运行一些特定的代码?
-
91. Spring Boot 有哪几种读取配置的方式?
-
92. Spring Boot 实现热部署有哪几种方式?
-
93. Spring Boot 多套不同环境如何配置?
-
94. Spring Boot 可以兼容老 Spring 项目吗,如何做?
-
95. 什么是 Spring Cloud?
-
96. 介绍一下 Spring Cloud 常用的组件?
-
97. Spring Cloud 如何实现服务注册的?
-
98. 什么是负载均衡?有什么作用?
-
99. 什么是服务熔断?
-
100. 请介绍一下 Ribbon 的主要作用?
Spring面试题-答案解析
2.2 SpringMVC面试题汇总
==================
-
1. 什么是 SpringMvc?
-
2. Spring MVC 的优点:
-
3. SpringMVC 工作原理?
-
4. SpringMVC 流程?
-
5. SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
-
6. 如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
-
7. SpingMvc 中的控制器的注解一般用哪个,有没有别的注解可以替代?
-
8. @RequestMapping 注解用在类上面有什么作用?
-
9. 怎么样把某个请求映射到特定的方法上面?
-
10. 如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
-
11. 怎么样在方法里面得到 Request,或者 Session?
-
12. 我想在拦截的方法里面得到从前台传入的参数,怎么得到?
-
13. 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
-
14. SpringMvc 中函数的返回值是什么?
-
15. SpringMVC 怎么样设定重定向和转发的?
-
16. SpringMvc 用什么对象从后台向前台传递数据的?
-
17. SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
-
18. 怎么样把 ModelMap 里面的数据放入 Session 里面?
-
19. SpringMvc 怎么和 AJAX 相互调用的?
-
20. 讲下 SpringMvc 的执行流程
-
21. SpringMvc 里面拦截器是怎么写的?
-
22. 当一个方法向 AJAX 返回特殊对象,比如 Object,List 等,需要做什么处理?
SpringMVC面试题-答案解析
2.3 MyBatis面试题汇总
================
-
1. 什么是 MyBatis?讲下 MyBatis 的缓存
-
2. Mybatis 是如何进行分页的?分页插件的原理是什么?
-
3. 简述 Mybatis 的插件运行原理,以及如何编写一个插件?
-
4. Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
-
5. #{}和${}的区别是什么?
-
6. 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
-
7. Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
-
8. MyBatis 与 Hibernate 有哪些不同?
-
9. MyBatis 的好处是什么?
-
10. 简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?
-
11. 什么是 MyBatis 的接口绑定,有什么好处?
-
12. 接口绑定有几种实现方式,分别是怎么实现的?
-
13. 什么情况下用注解绑定,什么情况下用 xml 绑定?
-
14. MyBatis 实现一对一有几种方式?具体怎么操作的?
-
15. Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
-
16. MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?
-
17. Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
-
18. Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
-
19. 当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?
-
20. 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, Dao 的工作原理,是否可以重载?
-
21. Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
-
22. Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?
-
23. Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
-
24. Mybatis 中如何指定使用哪一种 Executor 执行器?
-
25. Mybatis 执行批量插入,能返回数据库主键列表吗?
-
26. Mybatis 是否可以映射 Enum 枚举类?
-
27. 如何获取自动生成的(主)键值?
-
28. 在 mapper 中如何传递多个参数?
-
29. resultType resultMap 的区别?
-
30. 使用 MyBatis 的 mapper 接口调用时有哪些要求?
-
31. Mybatis 比 IBatis 比较大的几个改进是什么?
-
32. IBatis 和 MyBatis 在核心处理类分别叫什么?在细节上的不同有哪些?
MyBatis面试题-答案解析
第三部分:性能调优(JVM+MySQL+Tomcat)
===========================
第三部分:性能调优(JVM+MySQL+Tomcat)
3.1 JVM面试题汇总
============
-
1. Java 类加载过程?
-
2. 描述一下 JVM 加载 Class 文件的原理机制?
-
3. Java 内存分配
-
4. GC 是什么? 为什么要有 GC?
-
5. 简述 Java 垃圾回收机制
-
6. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
-
7. 垃圾回收的优点和原理。并考虑 2 种回收机制
-
8. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
-
9. Java 中会存在内存泄漏吗,请简单描述
-
10. 深拷贝和浅拷贝
-
11. System.gc() 和 Runtime.gc() 会做什么事情?
-
12. finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
-
13. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
-
14. 什么是分布式垃圾回收(DGC)?它是如何工作的?
-
15. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
-
16. 在 Java 中,对象什么时候可以被垃圾回收?
-
17. 简述 Java 内存分配与回收策略以及 Minor GC 和 MajorGC
-
18. JVM 的永久代中会发生垃圾回收么?
-
19. Java 中垃圾收集的方法有哪些?
-
20. 什么是类加载器,类加载器有哪些?
-
21. 类加载器双亲委派模型机制?
JVM面试题-答案解析
3.2 MySQL面试题汇总
==============
-
MySQL21个最佳性能优化实践
-
1. 为查询缓存优化你的查询
-
2. EXPLAIN你的SELECT查询
-
3. 当只要一行数据时使用LIMIT 1
-
4. 为搜索字段建索引
-
5. 在Join表的时候使用相当类型的例,并将其索引
-
6. 千万不要 ORDER BY RAND()
-
7. 避免 SELECT *
-
8. 永远为每张表设置一个 ID
-
9. 使用 ENUM 而不是 VARCHAR
-
10. 从 PROCEDURE ANALYSE() 取得建议
-
11. 尽可能的使用 NOT NULL
-
12. Prepared Statements
-
13. 无缓冲的查询
-
14. 把 IP 地址存成 UNSIGNED INT
-
15. 固定长度的表会更快
-
16. 垂直分割
-
17. 拆分大的 DELETE 或 INSERT 语句
-
18. 越小的列会越快
-
19. 选择正确的存储引擎
-
20. 使用一个对象关系映射器(Object Relational Mapper)
-
21. 小心“永久链接”
-
MySQL高频面试题汇总
-
1. 事务四大特性(ACID)原子性、一致性、隔离性、持久性?
-
2. 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
-
3. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
-
4. MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
-
5. 查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
-
6. 什么是临时表,临时表什么时候删除?
-
7. MySQL B+Tree索引和Hash索引的区别?
-
8. sql查询语句确定创建哪种类型的索引?如何优化查询?
-
9. 聚集索引和非聚集索引区别?
-
10. 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
-
11. 非关系型数据库和关系型数据库区别,优势比较?
-
12. 数据库三范式,根据某个场景设计数据表?
-
13. 数据库的读写分离、主从复制,主从复制分析的 7 个问题?
-
14. 使用explain优化sql和索引?
-
15. MySQL慢查询怎么解决?
-
16. 什么是 内连接、外连接、交叉连接、笛卡尔积等?
-
17. mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
-
18. varchar和char的使用场景?
-
19. mysql 高并发环境解决方案?
-
20. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
MySQL21个最佳性能优化实践
MySQL高频面试题-答案解析
3.3 Tomcat面试题汇总
===============
-
1. 你怎样给 tomcat 去调优?
-
2. 如何加大 tomcat 连接数
-
3. tomcat 中如何禁止列目录下的文件
-
4. 怎样加大 tomcat 的内存
-
5. Tomcat 有几种部署方式
-
6. Tomcat 的优化经验
-
7. Tomcat 的缺省端口是多少,怎么修改?
-
8. tomcat 有哪几种 Connector 运行模式( 优化) ?
-
9. Tomcat 有几种部署方式?
-
10. tomcat 容器是如何创建 servlet 类实例?用到了什么原理?
-
11. tomcat 如何优化?
-
12. 内存调优
-
13. 垃圾回收策略调优
-
14. 添加 JMS 远程监控
-
15. 专业点的分析工具有
-
16. 关于 Tomcat 的 的 session 数目
-
17. 监视 Tomcat 的内存使用情况
-
18. 打印类的加载情况及对象的回收情况
-
19. Tomcat 一个请求的完整过程
-
20. Tomcat 工作模式?
Tomcat面试题-答案解析
第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
============================================================
第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
4.1 分布式限流之ZK面试题汇总
=================
-
1. ZooKeeper 是什么?
-
2. ZooKeeper 提供了什么?
-
3. Zookeeper 文件系统
-
4. 四种类型的 znode
-
5. Zookeeper 通知机制
-
6. Zookeeper 做了什么?
-
7. zk 的命名服务(文件系统)
-
8. zk 的配置管理(文件系统、通知机制)
-
9. Zookeeper 集群管理(文件系统、通知机制)
-
10. Zookeeper 分布式锁(文件系统、通知机制)
-
11. 获取分布式锁的流程
-
12. Zookeeper 队列管理(文件系统、通知机制)
-
13. Zookeeper 数据复制
-
14. Zookeeper 工作原理
-
15. zookeeper 是如何保证事务的顺序一致性的?
-
16. Zookeeper 下 Server 工作状态
-
17. zookeeper 是如何选取主 leader 的?
-
18. 分布式通知和协调
-
19. 机器中为什么会有 leader?
-
20. zk 节点宕机如何处理?
-
21. Zookeeper 同步流程
-
22. zookeeper 负载均衡和 nginx 负载均衡区别
-
23. zookeeper watch 机制
分布式限流之ZK面试题-答案解析
4.2 分布式限流之Nginx面试题汇总
====================
-
1. 请解释一下什么是 Nginx?
-
2. 请列举 x Nginx 的一些特性。
-
3. 请列举 x Nginx 和 和 Apache 之间的不同点
-
4. 请解释 x Nginx 如何处理 P HTTP 请求。
-
5. 在 x Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
-
6. 使用 “ 反向代理服务器 ”
-
7. 请列举 x Nginx 服务器的最佳用途。
-
8. 请解释 x Nginx 服务器上的 r Master 和 和 r Worker 进程分别是什么?
-
9. 请解释你如何通过不同于 0 80 的端口开启 Nginx?
-
10. 请解释是否有可能将 x Nginx 的错误替换为 2 502 错误?
-
11. 在 x Nginx 中,解释如何在 L URL 中保留双斜线? ?
-
12. 请解释 e ngx_http_upstream_module 的作用是什么?
-
13. 请解释什么是 K C10K 问题?
-
14. 请陈述 s stub_status 和 和 r sub_filter 指令的作用是什么?
-
15. 解释 x Nginx 是否支持将请求压缩到上游?
-
16. 解释如何在 x Nginx 中获得当前的时间?
-
17. 用 x Nginx 服务器解释s -s 的目的是什么?
-
18. 解释如何在 x Nginx 服务器上添加模块?
分布式限流之Nginx面试题-答案解析
4.3 分布式缓存之Redis面试题汇总
====================
-
1. redis 简介
-
2. 为什么要用 redis /为什么要用缓存(高性能、高并发)
-
3. 为什么要用 redis 而不用 map/guava 做缓存?
-
4. redis 和 memcached 的区别
-
5. redis 常见数据结构以及使用场景分析(String、Hash、List、Set、Sorted Set)
-
6. redis 设置过期时间
-
7. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
-
8. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
-
9. redis 事务
-
10. Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)
-
11. 分布式环境下常见的应用场景(分布式锁、分布式自增 ID)
-
12. Redis 集群模式(主从模式、哨兵模式、Cluster 集群模式)
-
13. 如何解决 Redis 的并发竞争 Key 问题
-
14. 如何保证缓存与数据库双写时的数据一致性?
分布式缓存之Redis面试题-答案解析
4.4 分布式缓存之MongoDB面试题汇总
======================
-
1. 你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用NoSQL 数据库?说一说 NoSQL 数据库的几个优点?
-
2. NoSQL 数据库有哪些类型?
-
3. MySQL 与 MongoDB 之间最基本的差别是什么?
-
4. 你怎么比较 MongoDB、CouchDB 及 CouchBase?
-
5. MongoDB 成为最好 NoSQL 数据库的原因是什么?
-
6. 32 位系统上有什么细微差别?
-
7. journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
-
8. 分析器在 MongoDB 中的作用是什么?
-
9. 名字空间(namespace)是什么?
-
10. 如果用户移除对象的属性,该属性是否从存储层中删除?
-
11. 能否使用日志特征进行安全备份?
-
12. 允许空值 null 吗?
-
13. 更新操作立刻 fsync 到磁盘?
-
14. 如何执行事务/加锁?
-
15. 为什么我的数据文件如此庞大?
-
16. 启用备份故障恢复需要多久?
-
17. 什么是 master 或 primary?
-
18. 什么是 secondary 或 slave?
-
19. 我必须调用 getLastError 来确保写操作生效了么?
-
20. 我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB 环境?
-
21. 分片(sharding)和复制(replication)是怎样工作的?
-
22. 数据在什么时候才会扩展到多个分片(shard)里?
-
23. 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
-
24. 如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?
-
25. 我可以把 moveChunk 目录里的旧文件删除吗?
-
26. 我怎么查看 Mongo 正在使用的链接?
-
27. 如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?
-
28. 如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
-
29. 当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
-
30. MongoDB 在 A:{B,C}上建立索引,查询 A:{B,C}和 A:{C,B}都会使用索引吗?
-
31. 如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?
-
32. MongoDB 支持存储过程吗?如果支持的话,怎么用?
-
33. 如何理解 MongoDB 中的 GridFS 机制,MongoDB 为何使用 GridFS 来存储文件?
分布式缓存之MongoDB面试题-答案解析
4.5 分布式缓存之memcached面试题汇总
============================
-
1. memcached 是怎么工作的?
-
2. memcached 最大的优势是什么?
-
3. memcached 和服务器的 local cache (比如 PHP 的 的 APC 、mmap 文件等)相比,有什么优缺点?
-
4. memcached 和 和 MySQL 的 的 query cache 相比,有什么优缺点?
-
5. memcached 的 的 cache 机制是怎样的?
-
6. memcached 如何实现冗余机制?
-
7. 我需要把 memcached 中的 item 批量导出导入,怎么办?
-
8. memcached 如何处理容错的?
-
9. 如何将 memcached 中 中 item 批量导入导出?
-
10. memcached 是如何做身份验证的?
-
11. memcached 的多线程是什么?如何使用它们?
-
12. memcached 能接受的 key 的最大长度是多少?
-
13. memcached 对 对 item 的过期时间有什么限制?
-
14. memcached 最大能存储多大的单个 item ?
-
15. 为什么单个 item 的大小被限制在 1M byte 之内?
分布式缓存之memcached面试题-答案解析
4.6 分布式通讯之MQ面试题汇总
=================
-
1. 什么是 ActiveMQ?
-
2. ActiveMQ 服务器宕机怎么办?
-
3. 丢消息怎么办?
-
4. 持久化消息非常慢
-
5. 消息的不均匀消费。
-
6. 死信队列?
-
7. ActiveMQ 中的消息重发时间间隔和重发次数吗?
-
8. RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
-
9. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
-
10. RAM node 和 disk node 的区别?
-
11. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
-
12. RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
-
13. vhost 是什么?起什么作用?
-
14. 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
-
15. 客户端连接到 cluster 中的任意 node 上是否都能正常工作?
-
16. cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
-
17. 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?
-
18. 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
-
19. 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?
-
20. routing_key 和 binding_key 的最大长度是多少?
-
21. RabbitMQ 允许发送的 message 最大可达多大?
-
22. 什么情况下 producer 不主动创建 queue 是安全的?
-
23. “dead letter”queue 的用途?
-
24. 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?
-
25. 什么情况下会出现 blackholed 问题?
-
26. 如何防止出现 blackholed 问题?
-
27. Consumer Cancellation Notification 机制用于什么场景?
-
28. Basic.Reject 的用法是什么?
-
29. 为什么不应该对所有的 message 都使用持久化机制?
-
30. RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?
分布式通讯之MQ面试题-答案解析
4.7 分布式通讯之Kafka面试题汇总
====================
-
1. Kafka的用途有哪些?使用场景如何?
-
2. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么
-
3. Kafka中的HW、LEO、LSO、LW等分别代表什么?
-
4. Kafka中是怎么体现消息顺序性的?
-
5. Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?
-
6. Kafka生产者客户端的整体结构是什么样子的?
-
7. Kafka生产者客户端中使用了几个线程来处理?分别是什么?
-
8. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
-
9. “消费组中的消费者个数如果超过topic的分区,那么就会有消费者消费不到数据”这句话是否正确?如果正确,那么有没有什么hack的手段?
-
10. 有哪些情形会造成重复消费?
-
11. 哪些情景下会造成消息漏消费?
-
12. KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?
-
13. 简述消费者与消费组之间的关系
-
14. 当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?
-
15. topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?
-
16. topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?
-
17. 创建topic时如何选择合适的分区数?
-
18. Kafka目前有哪些内部topic,它们都有什么特征?各自的作用又是什么?
-
19. 优先副本是什么?它有什么特殊的作用?
-
20. Kafka有哪几处地方有分区分配的概念?简述大致的过程及原理
-
21. 简述Kafka的日志目录结构
-
22. Kafka中有哪些索引文件?
-
23. 如果我指定了一个offset,Kafka怎么查找到对应的消息?
-
24. 如果我指定了一个timestamp,Kafka怎么查找到对应的消息?
-
25. 聊一聊你对Kafka的Log Retention的理解
-
26. 聊一聊你对Kafka的Log Compaction的理解
-
27. 聊一聊你对Kafka底层存储的理解
-
28. 聊一聊Kafka的延时操作的原理
-
29. 聊一聊Kafka控制器的作用
-
30. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
-
31. 消费再均衡的原理是什么?(提示:消费者协调器和消费组协调器)
-
32. Kafka中的幂等是怎么实现的?
-
33. Kafka中的事务是怎么实现的?
-
34. 失效副本是指什么?有哪些应对措施?
-
35. 多副本下,各个副本中的HW和LEO的演变过程
-
36. Kafka在可靠性方面做了哪些改进?(HW, LeaderEpoch)
-
37. 为什么Kafka不支持读写分离?
-
38. Kafka中的延迟队列怎么实现
-
39. Kafka中怎么实现死信队列和重试队列?
-
40. Kafka中怎么做消息审计?
-
41. Kafka中怎么做消息轨迹?
-
42. 怎么计算Lag?(注意read_uncommitted和read_committed状态下的不同)
-
43. Kafka有哪些指标需要着重关注?
-
44. Kafka的哪些设计让它有如此高的性能?
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
个timestamp,Kafka怎么查找到对应的消息?
-
25. 聊一聊你对Kafka的Log Retention的理解
-
26. 聊一聊你对Kafka的Log Compaction的理解
-
27. 聊一聊你对Kafka底层存储的理解
-
28. 聊一聊Kafka的延时操作的原理
-
29. 聊一聊Kafka控制器的作用
-
30. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
-
31. 消费再均衡的原理是什么?(提示:消费者协调器和消费组协调器)
-
32. Kafka中的幂等是怎么实现的?
-
33. Kafka中的事务是怎么实现的?
-
34. 失效副本是指什么?有哪些应对措施?
-
35. 多副本下,各个副本中的HW和LEO的演变过程
-
36. Kafka在可靠性方面做了哪些改进?(HW, LeaderEpoch)
-
37. 为什么Kafka不支持读写分离?
-
38. Kafka中的延迟队列怎么实现
-
39. Kafka中怎么实现死信队列和重试队列?
-
40. Kafka中怎么做消息审计?
-
41. Kafka中怎么做消息轨迹?
-
42. 怎么计算Lag?(注意read_uncommitted和read_committed状态下的不同)
-
43. Kafka有哪些指标需要着重关注?
-
44. Kafka的哪些设计让它有如此高的性能?
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
[外链图片转存中…(img-B2nGggEf-1715243352576)]
[外链图片转存中…(img-wLzUFWb6-1715243352577)]
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。