Java后端真题总结500+附答案整理分享(2021最新版)

这是一份全面的Java后端面试资料,涵盖Java中间件(如Zookeeper、RabbitMQ)、微服务、并发编程、Java基础、Spring Boot、Redis、Spring MVC、Spring Cloud、MySQL优化、JVM、Linux、Mybatis、网络编程、设计模式、大数据等多个关键领域的面试真题与答案。内容包括各种技术点的深入解析,如Zookeeper的会话管理、RabbitMQ的工作模式、Spring Boot的常用注解、并发编程中的线程池与并发工具类、JVM内存模型及调优、Elasticsearch的索引和搜索过程等。这份资料旨在帮助读者准备Java后端开发的面试,提高面试成功率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

1、Java中间件

Zookeeper

RabbitMQ

2、微服务

3、并发编程

并发理论

线程池

并发容器

并发队列

并发工具类

4、Java基础

Java概述

基础语法

数据类型

编码

注释

访问修饰符

运算符

关键字

流程控制语句

面向对象

面向对象概述

面向对象三大特性

变量与方法

内部类

重写与重载

对象相等判断

值传递

Java包

IO流

反射

常用API

5、Spring Boot

6、Redis

7、Spring MVC

概述

核心组件

工作原理

MVC框架

常用注解

其他

8、Spring Cloud

什么是微服务架构

Eureka

Zuul

Ribbon

Hystrix

Feign

Bus

Config

Gateway

SpringCloud主要项目

9、MySQL优化

10、JVM

11、Linux

12、Mybatis

13、网络编程

1 TCP / UDP

2 Socket

3. HTTP

14、设计模式

15、大数据

选择题

面试题

16、Tomcat

17、多线程

18、Nginx

19、Memcache

20、Java异常

Java异常架构与异常关键字

 Java异常处理

Java异常常见面试题

Java异常处理最佳实践

21、Java虚拟机精选专题

Java内存模型

垃圾回收机制及算法

垃圾收集器以及新生代、老年代、永久代

内存分配策略

JVM调优

22、Java集合

集合容器概述

List接口

Set接口

Map接口

辅助工具类

23、Git常用命令

配置操作

本地操作

分支操作

变更历史

标签操作

远端交互

24、Elasticsearch

25、Dubbo

基础知识

架构设计

分布式框架

注册中心

集群

配置

通信协议

设计模式

运维管理

SPI

其他

RPC

最后


前言

本编分享的Java后端开发面试总结:包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!

1、Java中间件

Zookeeper

1. ZooKeeper 是什么?

2. ZooKeeper 提供了什么?

3.Zookeeper 文件系统

4. ZAB 协议?

5. 四种类型的数据节点 Znode

6. Zookeeper Watcher 机制 -- 数据变更通知

7. 客户端注册 Watcher 实现

8. 服务端处理 Watcher 实现

9. 客户端回调 Watcher

10. ACL 权限控制机制

11. Chroot 特性

12. 会话管理

13. 服务器角色

14. Zookeeper 下 Server 工作状态

15. 数据同步

16. zookeeper 是如何保证事务的顺序一致性的?

17. 分布式集群中为什么会有 Master?

18. zk 节点宕机如何处理?

19. zookeeper 负载均衡和 nginx 负载均衡区别

20. Zookeeper 有哪几种几种部署模式?

21. 集群最少要几台机器,集群规则是怎样的?

22. 集群支持动态添加机器吗?

23. Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?

24. Zookeeper 的 java 客户端都有哪些?

25. chubby 是什么,和 zookeeper 比你怎么看?

26. 说几个 zookeeper 常用的命令。

27. ZAB 和 Paxos 算法的联系与区别?

28. Zookeeper 的典型应用场景

RabbitMQ

1. 什么是MQ

2. MQ的优点

3. 解耦、异步、削峰是什么?。

4. 消息队列有什么缺点

5. 你们公司生产环境用的是什么消息中间件?

6. Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

7. MQ 有哪些常见问题?如何解决这些问题?

8. 什么是RabbitMQ?

9. rabbitmq 的使用场景

10. RabbitMQ基本概念

11. RabbitMQ的工作模式

12. 如何保证RabbitMQ消息的顺序性?

13. 消息如何分发?

14. 消息怎么路由?

15. 消息基于什么传输?

16. 如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?

17. 如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?

18. 如何保证RabbitMQ消息的可靠传输?

19. 为什么不应该对所有的 message 都使用持久化机制?

20. 如何保证高可用的?RabbitMQ 的集群

21. 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?

22. 设计MQ思路

23.RoctetMq的架构

24. RocketMq消息模型(专业术语)

25.核心问题

Rocket MQ 使用排查指南

RocketMQ原理及快速入门

发送问题排查

消费问题排查

其他问题排查

《RocketMQ技术内幕》

Kafka知识汇总

基础概念

Rebalance (重平衡)

日志索引

高性能, 高吞吐

Page Cache & MMap

Java中间件面试题答案解析

2、微服务

1、不同版本的 Spring Framework 有哪些主要功能?

2、什么是 Spring Framework?

3、列举 Spring Framework 的优点。

4、Spring Framework 有哪些不同的功能?

5、Spring Framework 中有多少个模块,它们分别是什么?

6、什么是 Spring 配置文件?

7、Spring 应用程序有哪些不同组件?

8、使用 Spring 有哪些方式?

9、什么是 Spring IOC 容器?

10、什么是依赖注入?

11、可以通过多少种方式完成依赖注入? 

​12、区分构造函数注入和 setter 注入。

​13、spring 中有多少种 IOC 容器? 

​14、区分 BeanFactory 和 ApplicationContext。 15、列举 IoC 的一些好处。 

​15、列举 IoC 的一些好处。

16、Spring IoC 的实现机制。 

​17、什么是 spring bean? 

​18、spring 提供了哪些配置方式? 

​19、spring 支持集中 bean scope? 

​20、spring bean 容器的生命周期是什么样的? 

​21、什么是 spring 的内部 bean? 

​22、什么是 spring 装配 

​23、自动装配有哪些方式? 

​24、自动装配有什么局限? 

​25、什么是基于注解的容器配置

26、如何在 spring 中启动注解装配?

 ​27、@Component, @Controller, @Repository,@Service 有何区别? 

​28、@Required 注解有什么用? 

​29、@Autowired 注解有什么用? 

30、@Qualifier 注解有什么用? 

​31、@RequestMapping 注解有什么用?

​32、spring DAO 有什么用?

​33、列举 Spring DAO 抛出的异常。

​34、spring JDBC API 中存在哪些类? 

​35、使用 Spring 访问 Hibernate 的方法有哪些?

 ​36、列举 spring 支持的事务管理类型

​37、spring 支持哪些 ORM 框架 

​38、什么是 AOP? 

​39、什么是 Aspect? 

​40、什么是切点(JoinPoint) 

​41、什么是通知(Advice)? 

​42、有哪些类型的通知(Advice)? 

​43、指出在 spring aop 中 concern 和 cross-cuttingconcern的不同之处。 

​44、AOP 有哪些实现方式? 

​45、Spring AOP and AspectJ AOP 有什么区别? 

​46、如何理解 Spring 中的代理? 

​47、什么是编织(Weaving)? 

​48、Spring MVC 框架有什么用?

49、描述一下 DispatcherServlet 的工作流程 

​50、介绍一下 WebApplicationContext 

​51、什么是 spring? 

​52、使用 Spring 框架的好处是什么? 

​53、Spring 由哪些模块组成? 

​54、核心容器(应用上下文) 模块。 

​55、BeanFactory – BeanFactory 实现举例。 

66、XMLBeanFactory 

​67、解释 AOP 模块 

​69、解释对象/关系映射集成模块。 

​70、解释 WEB 模块。 

​72、Spring 配置文件 

​73、什么是 Spring IOC 容器? 

​74、IOC 的优点是什么? 

​75、ApplicationContext 通常的实现是什么? 

​76、Bean 工厂和 Application contexts 有什么区别? 

​77、一个 Spring 的应用看起来象什么? 

​78、什么是 Spring 的依赖注入? 

​79、有哪些不同类型的 IOC(依赖注入)方式?

 ​80、哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入? 

​81.什么是 Spring beans?

82、一个 Spring Bean 定义 包含什么? 

​83、如何给 Spring 容器提供配置元数据? 

​84、你怎样定义类的作用域? 

​85、解释 Spring 支持的几种 bean 的作用域。 

​86、Spring 框架中的单例 bean 是线程安全的吗?

87、解释 Spring 框架中 bean 的生命周期。 

​88、哪些是重要的 bean 生命周期方法?你能重载它们吗? 

​89、什么是 Spring 的内部 bean? 

​90、在 Spring 中如何注入一个 java 集合? 

​91、什么是 bean 装配?

92、什么是 bean 的自动装配? 

​93、解释不同方式的自动装配 。 

94.自动装配有哪些局限性 ? 

​95、你可以在 Spring 中注入一个 null 和一个空字符串吗?

96、什么是基于 Java 的 Spring 注解配置? 给一些注解的例 子. 

​97、什么是基于注解的容器配置? 

​98、怎样开启注解装配? 

​99、@Required 注解 

​100、@Autowired 注解 

​101、@Qualifier 注解 

​102.在 Spring 框架中如何更有效地使用 JDBC?

103、JdbcTemplate 

​104、Spring 对 DAO 的支持 

​105、使用 Spring 通过什么方式访问 Hibernate? 

​106、Spring 支持的 ORM 

​107. 如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起来? 

​108、Spring 支持的事务管理类型 

​109、Spring 框架的事务管理有哪些优点? 

​110、你更倾向用那种事务管理类型? 

​111、解释 AOP 

​112、Aspect 切面

​113、在 Spring AOP 中,关注点和横切关注的区别是什么? 

​114、连接点 

​115、通知 

​116、切点 

​117、什么是引入? 

118、什么是目标对象? 

119、什么是代理? 

120、有几种不同类型的自动代理?

121、什么是织入。什么是织入应用的不同点? 

​122、解释基于 XML Schema 方式的切面实现。 

123、解释基于注解的切面实现 

124、什么是 Spring 的 MVC 框架? 

125、DispatcherServlet 

126、WebApplicationContext 

127、什么是 Spring MVC 框架的控制器? 

128、@Controller 注解 

129、@RequestMapping 注解 

Java微服务面试题附答案解析

3、并发编程

1. 为什么要使用并发编程

2. 多线程应用场景

3. 并发编程有什么缺点

4. 并发编程三个必要因素是什么?

5. Java 程序中怎么保证多线程的运行安全?

6. 并行和并发有什么区别?

7. 什么是多线程

8. 多线程的好处

9. 多线程的劣势:

10. 线程和进程区别

11. 什么是上下文切换?

12. 守护线程和用户线程有什么区别呢?

13. 如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?

14. 什么是线程死锁

15. 形成死锁的四个必要条件是什么

16. 如何避免线程死锁

17. 创建线程的四种方式

19. 线程的 run()和 start()有什么区别?

20. 为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?

21. 什么是 Callable 和 Future?

22. 什么是 FutureTask

23. 线程的状态

24. Java 中用到的线程调度算法是什么?

25. 线程的调度策略

26. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?

27. 请说出与线程同步以及线程调度相关的方法。

28. sleep() 和 wait() 有什么区别?

29. 你是如何调用 wait() 方法的?使用 if 块还是循环?为什么?

30. 为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?

31. 为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?

32. Thread 类中的 yield 方法有什么作用?

33. 为什么 Thread 类的 sleep()和 yield ()方法是静态的?

34. 线程的 sleep()方法和 yield()方法有什么区别?

35. 如何停止一个正在运行的线程?

36. Java 中 interrupted 和 isInterrupted 方法的区别?

37. 什么是阻塞式方法?

38. Java 中你怎样唤醒一个阻塞的线程?

39. notify() 和 notifyAll() 有什么区别?

40. 如何在两个线程间共享数据?

41. Java 如何实现多线程之间的通讯和协作?

42. 同步方法和同步块,哪个是更好的选择?

43. 什么是线程同步和线程互斥,有哪几种实现方式?

44. 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

45. 如果你提交任务时,线程池队列已满,这时会发生什么

46. 什么叫线程安全?servlet 是线程安全吗?

47. 在 Java 程序中怎么保证多线程的运行安全?

48. 你对线程优先级的理解是什么?

49. 线程类的构造方法、静态块是被哪个线程调用的

50. Java 中怎么获取一份线程 dump 文件?你如何在 Java 中获取线程堆栈?

51. 一个线程运行时发生异常会怎样?

52. Java 线程数过多会造成什么异常?

53. 多线程的常用方法

并发理论

1. Java中垃圾回收有什么目的?什么时候进行垃圾回收?

2. 线程之间如何通信及线程之间如何同步

3. Java内存模型

4. 如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

5. finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

6. 什么是重排序

7. 重排序实际执行的指令步骤

8. 重排序遵守的规则

9. as-if-serial规则和happens-before规则的区别

10. 并发关键字 synchronized ?

11. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗

12. 单例模式了解吗?给我解释一下双重检验锁方式实现单例模式!”

13. 说一下 synchronized 底层实现原理?

14. synchronized可重入的原理

15. 什么是自旋

16. 多线程中 synchronized 锁升级的原理是什么?

17. 线程 B 怎么知道线程 A 修改了变量

18. 当一个线程进入一个对象的 synchronized 方法 A 之后,其它线程是否可进入此对象的synchronized 方法 B?

19. synchronized、volatile、CAS 比较

20. synchronized 和 Lock 有什么区别?

21. synchronized 和 ReentrantLock 区别是什么?

22. volatile 关键字的作用

23. Java 中能创建 volatile 数组吗?

24. volatile 变量和 atomic 变量有什么不同?

25. volatile 能使得一个非原子操作变成原子操作吗?

26. synchronized 和 volatile 的区别是什么?

27. final不可变对象,它对写并发应用有什么帮助?

28. Lock 接口和synchronized 对比同步它有什么优势?

29. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

30. 什么是 CAS

31. CAS 的会产生什么问题?

32. 什么是原子类

33. 原子类的常用类

34. 说一下 Atomic的原理?

35. 死锁与活锁的区别,死锁与饥饿的区别?

线程池

1. 什么是线程池?

2. 线程池作用?

3. 线程池有什么优点?

4. 什么是ThreadPoolExecutor?

5. 什么是Executors?

6. 线程池四种创建方式?

7. 在 Java 中 Executor 和 Executors 的区别?

8. 四种构建线程池的区别及特点?

9. 线程池都有哪些状态?

10. 线程池中 submit() 和 execute() 方法有什么区别?

11. 什么是线程组,为什么在 Java 中不推荐使用?

12. ThreadPoolExecutor饱和策略有哪些?

13. 如何自定义线程线程池?

14. 线程池的执行原理?

15. 如何合理分配线程池大小?

并发容器

1. 你经常使用什么并发容器,为什么?

2. 什么是Vector

3. ArrayList和Vector有什么不同之处?

4. 为什么HashTable是线程安全的?

5. 用过ConcurrentHashMap,讲一下他和HashTable的不同之处?

6. Collections.synchronized * 是什么?

7. Java 中 ConcurrentHashMap 的并发度是什么?

8. 什么是并发容器的实现?

9. Java 中的同步集合与并发集合有什么区别?

10. SynchronizedMap 和 ConcurrentHashMap 有什么区别?

11. CopyOnWriteArrayList 是什么?

12. CopyOnWriteArrayList 的使用场景?

13. CopyOnWriteArrayList 的缺点?

14. CopyOnWriteArrayList 的设计思想?

并发队列

1. 什么是并发队列:

2. 并发队列和并发集合的区别:

3. 怎么判断并发队列是阻塞队列还是非阻塞队列

4. 阻塞队列和非阻塞队列区别

5. 常用并发列队的介绍:

并发队列的常用方法

并发工具类

1. 常用的并发工具类有哪些?

2021最新版Java并发编程面试题(附答案解析)

4、Java基础

Java概述

1. 何为编程

2. 什么是Java

3. jdk1.5之后的三大版本

4. Jdk和Jre和JVM的区别

5. 什么是跨平台性?原理是什么

6. Java语言有哪些特点

7. 什么是字节码?采用字节码的最大好处是什么

8. 什么是Java程序的主类?应用程序和小程序的主类有何不同?

9. Java应用程序与小程序之间有那些差别?

10. Java和C++的区别

11. Oracle JDK 和 OpenJDK 的对比

基础语法

数据类型

12. Java有哪些数据类型

13. switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上

14. 用最有效率的方法计算 2 乘以 8

15. Math.round(11.5) 等于多少?Math.round(-11.5)等于多少

16. float f=3.4;是否正确

17. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗

编码

18. Java语言采用何种编码方案?有何特点?

注释

19. 什么Java注释

访问修饰符

20. 访问修饰符 public,private,protected,以及不写(默认)时的区别

运算符

21. &和&&的区别

关键字

22. Java 有没有 goto

23. final 有什么用?

24. final finally finalize区别

25. this关键字的用法

26. super关键字的用法

27. this与super的区别

28. static存在的主要意义

29. static的独特之处

30. static应用场景

31. static注意事项

流程控制语句

32. break ,continue ,return 的区别及作用

33. 在 Java 中,如何跳出当前的多重嵌套循环

面向对象

面向对象概述

34. 面向对象和面向过程的区别

面向对象三大特性

35. 面向对象的特征有哪些方面

36. 什么是多态机制?Java语言是如何实现多态的?

37. 面向对象五大基本原则是什么(可选)

38. 抽象类和接口的对比

39. 普通类和抽象类有哪些区别?

40. 抽象类能使用 final 修饰吗?

41. 创建一个对象用什么关键字?对象实例与对象引用有何不同?

变量与方法

42. 成员变量与局部变量的区别有哪些

43. 在Java中定义一个不做事且没有参数的构造方法的作用

44. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

45. 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?

46. 构造方法有哪些特性?

47. 静态变量和实例变量区别

48. 静态变量与普通变量区别

49. 静态方法和实例方法有何不同?

50. 在一个静态方法内调用一个非静态成员为什么是非法的?

51. 什么是方法的返回值?返回值的作用是什么?

内部类

52. 什么是内部类?

53. 内部类的分类有哪些

54. 内部类的优点

55. 内部类有哪些应用场景

56. 局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?

57. 内部类相关,看程序说出运行结果

重写与重载

58. 构造器(constructor)是否可被重写(override)

59. 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

对象相等判断

60. == 和 equals 的区别是什么

61. hashCode 与 equals (重要)

62. 对象的相等与指向他们的引用相等,两者有什么不同?

值传递

63. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

64. 为什么 Java 中只有值传递

65. 值传递和引用传递有什么区别

Java包

66. JDK 中常用的包有哪些

67. import java和javax有什么区别

IO流

68. java 中 IO 流分为几种?

69. BIO,NIO,AIO 有什么区别?

70. Files的常用方法都有哪些?

反射

71. 什么是反射机制?

72. 反射机制优缺点

73. 反射机制的应用场景有哪些?

74. Java获取反射的三种方法

常用API

String相关

75. 字符型常量和字符串常量的区别

76. 什么是字符串常量池?

77. String 是最基本的数据类型吗

78. String有哪些特性

79. String为什么是不可变的吗?

80. String真的是不可变的吗?

81. 是否可以继承 String 类

82. String str="i"与 String str=new String(“i”)一样吗?

83. String s = new String(“xyz”);创建了几个字符串对象

84. 如何将字符串反转?

85. 数组有没有 length()方法?String 有没有 length()方法

86. String 类的常用方法都有那些?

87. 在使用 HashMap 的时候,用 String 做 key 有什么好处?

88. String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的包装类相关

89. 自动装箱与拆箱

90. int 和 Integer 有什么区别

91. Integer a= 127 与 Integer b = 127相等吗

2021最新版Java基础知识面试题(附答案解析)

5、Spring Boot

1. 什么是SpringBoot?

2. 为什么要用SpringBoot

3. SpringBoot与SpringCloud 区别

4. Spring Boot 有哪些优点?

5. Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

6. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

7. SpringBoot Starter的工作原理

8. Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?

9. SpringBoot支持什么前端模板,

10. SpringBoot的缺点

11. 运行 Spring Boot 有哪几种方式?

12. Spring Boot 需要独立的容器运行吗?

13. 开启 Spring Boot 特性有哪几种方式?

14. SpringBoot 实现热部署有哪几种方式?

15. SpringBoot事物的使用

16. Async异步调用方法

17. 如何在 Spring Boot 启动的时候运行一些特定的代码?

18. Spring Boot 有哪几种读取配置的方式?

19. 什么是 JavaConfig?

20. SpringBoot的自动配置原理是什么

21. 你如何理解 Spring Boot 配置加载顺序?

22. 什么是 YAML?

23. YAML 配置的优势在哪里 ?

24. Spring Boot 是否可以使用 XML 配置 ?

25. spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何区别 

26. 什么是 Spring Profiles?

27. SpringBoot多数据源拆分的思路

28. SpringBoot多数据源事务如何管理

29. 保护 Spring Boot 应用有哪些方法?

30. 如何实现 Spring Boot 应用程序的安全性?

31. 比较一下 Spring Security 和 Shiro 各自的优缺点 ?

32. Spring Boot 中如何解决跨域问题 ?

33. Spring Boot 中的监视器是什么?

34. 如何使用 Spring Boot 实现全局异常处理?

35. 我们如何监视所有 Spring Boot 微服务?

36. SpringBoot性能如何优化

37. 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署

38. SpringBoot微服务中如何实现 session 共享 ?

39. 您使用了哪些 starter maven 依赖项?

40. Spring Boot 中的 starter 到底是什么 ?

41. Spring Boot 中如何实现定时任务 ?

42. spring-boot-starter-parent 有什么用 ?

43. SpringBoot如何实现打包

44.Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

45. SpringBoot的特征?

46.如何快速构建一个SpringBoot项目?

47.SpringBoot启动类注解?它是由哪些注解组成?

48.什么是yaml?

49.SpringBoot支持配置文件的格式?

50.SpringBoot启动方式?

51.SpringBoot需要独立的容器运行?

52.SpringBoot配置途径?

53.application.properties和application.yml文件可放位置?优先级?

54.SpringBoot自动配置原理?

55.SpringBoot热部署方式?

56.「bootstrap.yml」 和「application.yml」?

57.SpringBoot如何修改端口号?

58.开启SpringBoot特性的几种方式?

59.SpringBoot如何兼容Spring项目?

60.SpringBoot配置监控?

61.获得Bean装配报告信息访问哪个端点?

62.关闭应用程序访问哪个端点?

63.查看发布应用信息访问哪个端点?

64.针对请求访问的几个组合注解?

65.SpringBoot 中的starter?

66.SpringBoot集成Mybatis?

67.什么是SpringProfiles?

68.不同的环境的配置文件?

69.如何激活某个环境的配置?

70.编写测试用例的注解?

71.SpringBoot异常处理相关注解?

72.SpringBoot 1.x 和 2.x区别?

73.SpringBoot读取配置相关注解有?

2021最新版Spring Boot面试题(附答案解析)

6、Redis

1、什么是 Redis?

2、Redis 的数据类型?

3、使用 Redis 有哪些好处?

4、Redis 相比 Memcached 有哪些优势?

5、Memcache 与 Redis 的区别都有哪些?

6、Redis 是单进程单线程的?

7、一个字符串类型的值能存储最大容量是多少?

8、Redis 的持久化机制是什么?各自的优缺点?

9、Redis 常见性能问题和解决方案:

10、Redis 过期键的删除策略?

11、Redis 的回收策略(淘汰策略)?

12、为什么 Redis 需要把所有数据放到内存中?

13、Redis 的同步机制了解么?

14、Pipeline 有什么好处,为什么要用 pipeline?

15、是否使用过 Redis 集群,集群的原理是什么?

16、Redis 集群方案什么情况下会导致整个集群不可用?

17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

18、Jedis 与 Redisson 对比有什么优缺点?

19、Redis 如何设置密码及验证密码?

20、说说 Redis 哈希槽的概念?

21、Redis 集群的主从复制模型是怎样的?

22、Redis 集群会有写操作丢失吗?为什么?

23、Redis 集群之间是如何复制的?

24、Redis 集群最大节点个数是多少?

25、Redis 集群如何选择数据库?

26、怎么测试 Redis 的连通性?

27、怎么理解 Redis 事务?

28、Redis 事务相关的命令有哪几个?

29、Redis key 的过期时间和永久有效分别怎么设置?

30、Redis 如何做内存优化?

31、Redis 回收进程如何工作的?

32、都有哪些办法可以降低 Redis 的内存使用情况呢?

33、Redis 的内存用完了会发生什么?

34、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素?

35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

36、Redis 最适合的场景?

37、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?

38、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

39、使用过 Redis 做异步队列么,你是怎么用的?

40、使用过 Redis 分布式锁么,它是什么回事?

41、如何实现集群中的 session 共享存储?

42、memcached 与redis 的区别?

43、查看 Redis 使用情况及状态信息用什么命令?

44、Redis 的内存用完了会发生什么?

45、Redis 是单线程的,如何提高多核 CPU 的利用率?

46、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素?

47、Redis 常见性能问题和解决方案?

48、Redis 提供了哪几种持久化方式?

49、如何选择合适的持久化方式?

50、修改配置不重启 Redis 会实时生效吗?

2021最新版Redis面试题(附答案解析)

7、Spring MVC

概述

1、什么是Spring MVC?简单介绍下你对Spring MVC的理解?

2、Spring MVC的优点

核心组件

3、Spring MVC的主要组件?

4、什么是DispatcherServlet?

5、什么是Spring MVC框架的控制器?

6、Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?

工作原理

7、请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?

MVC框架

8、MVC是什么?MVC设计模式的好处有哪些

常用注解

9、注解原理是什么?

10、Spring MVC常用的注解有哪些?

11、SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?

12、@Controller注解的作用?

13、@RequestMapping注解的作用?

14、@ResponseBody注解的作用?

15、@PathVariable和@RequestParam的区别:

其他

16、Spring MVC与Struts2区别:

17、Spring MVC怎么样设定重定向和转发的?

18、Spring MVC怎么和AJAX相互调用的?

19、如何解决POST请求中文乱码问题,GET的又如何处理呢?

20、Spring MVC的异常处理?

21、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置

22、怎样在方法里面得到Request,或者Session?

23、如果想在拦截的方法里面得到从前台传入的参数,怎么得到?

24、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

25、Spring MVC中函数的返回值是什么?

26、Spring MVC用什么对象从后台向前台传递数据的?

27、怎么样把ModelMap里面的数据放入Session里面?

28、Spring MVC里面拦截器是怎么写的?

29、介绍一下 WebApplicationContext:

2021最新版Spring MVC面试题(附答案解析)

8、Spring Cloud

什么是微服务架构

1. 什么是微服务架构

2. 为什么需要学习Spring Cloud

3. Spring Cloud 是什么

4. SpringCloud的优缺点

5. SpringBoot和SpringCloud的区别?

6. Spring Cloud和SpringBoot版本对应关系

7. SpringCloud由什么组成

8. 使用 Spring Boot 开发分布式微服务时,我们面临什么问题

9. Spring Cloud 和dubbo区别?

Eureka

10. 服务注册和发现是什么意思?Spring Cloud 如何实现?

11. 什么是Eureka

12. Eureka怎么实现高可用

13. 什么是Eureka的自我保护模式,

14. DiscoveryClient的作用

15. Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别

Zuul

16. 什么是网关?

17. 网关的作用是什么

18. 什么是Spring Cloud Zuul(服务网关)

19. 网关与过滤器有什么区别

20. 常用网关框架有那些?

21. Zuul与Nginx有什么区别?

22. 既然Nginx可以实现网关?为什么还需要使用Zuul框架

23. 如何设计一套API接口

24. ZuulFilter常用有那些方法

25. 如何实现动态Zuul网关路由转发

26. Zuul网关如何搭建集群

Ribbon

27. 负载平衡的意义什么?

28. Ribbon是什么?

29. Nginx与Ribbon的区别

30. Ribbon底层实现原理

@LoadBalanced注解的作用

Hystrix

31. 什么是断路器

32. 什么是 Hystrix?

33. 谈谈服务雪崩效应

34. 在微服务中,如何保护服务?

35. 服务雪崩效应产生的原因

36. 谈谈服务降级、熔断、服务隔离

37. 服务降级底层是如何实现的?

Feign

38. 什么是Feign?

39. SpringCloud有几种调用接口方式

40. Ribbon和Feign调用服务的区别

Bus

41. 什么是 Spring Cloud Bus?

Config

42. 什么是Spring Cloud Config?

43. 分布式配置中心有那些框架?

44. 分布式配置中心的作用?

45. SpringCloud Config 可以实现实时刷新吗?

Gateway

46. 什么是Spring Cloud Gateway?

SpringCloud主要项目

47. SpringCloud主要项目

Spring Cloud Config

Spring Cloud Netflix(重点,这些组件用的最多)

Spring Cloud Bus

Spring Cloud Consul

Spring Cloud Security

Spring Cloud Sleuth

Spring Cloud Stream

Spring Cloud Task

Spring Cloud Zookeeper

Spring Cloud Gateway

Spring Cloud OpenFeign

Spring Cloud的版本关系

48. Spring Cloud和SpringBoot版本对应关系

49. Spring Cloud和各子项目版本对应关系

2021最新版Spring Cloud面试题(附答案解析)

9、MySQL优化

1、MySQL 中有哪几种锁?

2、MySQL 中有哪些不同的表格?

3、简述在MySQL 数据库中 MyISAM 和InnoDB 的区别

4、MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?SQL 标准定义的四个隔离级别为:

5、CHAR 和VARCHAR 的区别?

6、主键和候选键有什么区别?

7、myisamchk 是用来做什么的?

8、如果一个表有一列定义为TIMESTAMP,将发生什么?

9、你怎么看到为表格定义的所有索引?

11、列对比运算符是什么?

12、BLOB 和TEXT 有什么区别?

13、MySQL_fetch_array 和MySQL_fetch_object 的区别是什么?

14、MyISAM 表格将在哪里存储,并且还提供其存储格式?

15、MySQL 如何优化DISTINCT?

16、如何显示前 50 行?

17、可以使用多少列创建索引?

18、NOW()和 CURRENT_DATE()有什么区别?

19、什么是非标准字符串类型?

20、什么是通用 SQL 函数?

21、MySQL 支持事务吗?

22、MySQL 里记录货币用什么字段类型好

23、MySQL 有关权限的表都有哪几个?

24、列的字符串类型可以是什么?

25、MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?

26、锁的优化策略

27、索引的底层实现原理和优化

28、什么情况下设置了索引但无法使用

29、实践中如何优化 MySQL

30、优化数据库的方法

31、简单描述 MySQL 中,索引,主键,唯一索引,联合索引

32、数据库中的事务是什么?

33、SQL 注入漏洞产生的原因?如何防止?

34、为表中得字段选择合适得数据类型

35、存储时期

36、对于关系型数据库而言,索引是相当重要的概念,请回答

37、解释 MySQL 外连接、内连接与自连接的区别

38、Myql 中的事务回滚机制概述

39、SQL 语言包括哪几部分?每部分都有哪些操作关键字?

40、完整性约束包括哪些?

41、一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后, 删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记 录,这条记录的 ID 是 18 还是 15 ?

42、Mysql 的技术特点是什么?

43、Heap 表是什么?

44、Mysql 服务器默认端口是什么?

45、与 Oracle 相比,Mysql 有什么优势?

46、如何区分 FLOAT 和 DOUBLE?

47、区分 CHAR_LENGTH 和 LENGTH?

48、请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

49、在 Mysql 中 ENUM 的用法是什么?

50、如何定义 REGEXP?

51、CHAR 和 VARCHAR 的区别?

52、列的字符串类型可以是什么?

53、如何获取当前的 Mysql 版本?

54、Mysql 中使用什么存储引擎?

55、Mysql 驱动程序是什么?

56、TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?

57、主键和候选键有什么区别?

58、如何使用 Unix shell 登录 Mysql?

59、myisamchk 是用来做什么的?

60、MYSQL 数据库服务器性能分析的方法命令有哪些?

61、如何控制 HEAP 表的最大尺寸?

62、MyISAM Static 和 MyISAM Dynamic 有什么区别?

63、federated 表是什么?

64、如果一个表有一列定义为 TIMESTAMP,将发生什么?

65、列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?

66、怎样才能找出最后一次插入时分配了哪个自动增量?

67、你怎么看到为表格定义的所有索引?

68、LIKE 声明中的%和_是什么意思?

69、如何在 Unix 和 Mysql 时间戳之间进行转换?

70、列对比运算符是什么?

71、我们如何得到受查询影响的行数?

72、Mysql 查询是否区分大小写?

73、LIKE 和 REGEXP 操作有什么区别?

74、BLOB 和 TEXT 有什么区别?

75、mysql_fetch_array 和 mysql_fetch_object 的区别是什么?

76、我们如何在 mysql 中运行批处理模式?

77、MyISAM 表格将在哪里存储,并且还提供其存储格式?

78、Mysql 中有哪些不同的表格?

79、ISAM 是什么?

80、InnoDB 是什么?

81、Mysql 如何优化 DISTINCT?

82、如何输入字符为十六进制数字?

83、如何显示前 50 行?

84、可以使用多少列创建索引?

85、NOW()和 CURRENT_DATE()有什么区别?

86、什么样的对象可以使用 CREATE 语句创建?

87、Mysql 表中允许有多少个 TRIGGERS?

88、什么是非标准字符串类型?

89、什么是通用 SQL 函数?

90、解释访问控制列表

91、MYSQL 支持事务吗?

92、mysql 里记录货币用什么字段类型好

93、MYSQL 数据表在什么情况下容易损坏?

94、mysql 有关权限的表都有哪几个?

95、Mysql 中有哪几种锁?

96、唯一索引比普通索引快吗, 为什么

97、MySQL由哪些部分组成, 分别用来做什么

98、MySQL查询缓存有什么弊端, 应该什么情况下使用, 8.0版本对查询缓存有什么变更.

99、MyISAM和InnoDB**的区别有哪些

100、MySQL怎么恢复半个月前的数据

101、MySQL事务的隔离级别, 分别有什么特点

102、做过哪些MySQL索引相关优化

103、简要说一下数据库范式

104、一千万条数据的表, 如何分页查询

105、订单表数据量越来越大导致查询缓慢, 如何处理

2021最新版MySQL优化面试题(附答案解析)

10、JVM

1.什么情况下会发生栈内存溢出。

2.详解JVM内存模型

3.JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。

4. JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代

5.你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。

6.JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。

7.简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。

8.说说你知道的几种主要的JVM参数

9.怎么打出线程栈信息。

10.强引用、软引用、弱引用、虚引用的区别?

11.内存模型以及分区,需要详细到每个区放什么。

12.堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。

13.简述 java 垃圾回收机制?

14.java 中垃圾收集的方法有哪些?

15.java 内存模型

16.java 类加载过程?

17. 简述 java 类加载机制?

18. 类加载器双亲委派模型机制?

19.什么是类加载器,类加载器有哪些?

20.简述 java 内存分配与回收策率以及 Minor GC 和  Major GC

2021最新版JVM性能调优面试题(附答案解析)

11、Linux

1. 什么是Linux

2. Windows和Linux的区别

3. Unix和Linux有什么区别?

4. 什么是 Linux 内核?

5. Linux的基本组件是什么?

6. Linux 的体系结构

7. BASH和DOS之间的基本区别是什么?

8. Linux 开机启动过程?

9. Linux系统缺省的运行级别?

10. Linux 使用的进程间通信方式?

11. Linux 有哪些系统日志文件?

12. Linux系统安装多个桌面环境有帮助吗?

13. 什么是交换空间?

14. 什么是root帐户

15. 什么是LILO?

16. 什么是BASH?

17. 什么是CLI?

18. 什么是GUI?

19. 开源的优势是什么?

20. GNU项目的重要性是什么?

21. 简单 Linux 文件系统?

22. Linux 的目录结构是怎样的?

23. 什么是 inode ?

24. 什么是硬链接和软链接?

25. RAID 是什么?

26. 一台 Linux 系统初始化环境后需要做一些什么安全工作?

27. 什么叫 CC 攻击?什么叫 DDOS 攻击?

28. 什么是网站数据库注入?

29. Shell 脚本是什么?

30.如何选择 Linux 操作系统版本?

31. 如何规划一台 Linux 主机,步骤是怎样?

32. 请问当用户反馈网站访问慢,你会如何处理?

33. Linux 性能调优都有哪几种方法?

34. 基本命令

35.Linux 中主要有哪几种内核锁?

36.Linux 中的用户模式和内核模式是什么含意?

37.怎样申请大块内核内存?

38.用户进程间通信主要哪几种方式?

39.通过伙伴系统申请内核内存的函数有哪些?

40.Linux 虚拟文件系统的关键数据结构有哪些?(至少写出四个)

41.对文件或设备的操作函数保存在那个数据结构中?

42.Linux 中的文件包括哪些?

43.创建进程的系统调用有那些?

44.调用 schedule()进行进程切换的方式有几种?

45.Linux 调度程序是根据进程的动态优先级还是静态优先级来调度进程的?

46.进程调度的核心数据结构是哪个?

47.如何加载、卸载一个模块?

48.模块和应用程序分别运行在什么空间?

49.Linux 中的浮点运算由应用程序实现还是内核实现?

50.模块程序能否使用可链接的库函数?

51.TLB 中缓存的是什么内容?

52.Linux 中有哪几种设备?

53.字符设备驱动程序的关键数据结构是哪个?

54.设备驱动程序包括哪些功能函数?

55.如何唯一标识一个设备?

56.Linux 通过什么方式实现系统调用?

57.Linux 软中断和工作队列的作用是什么?

2021最新版Linux面试题(附答案解析)

12、Mybatis

1、模糊查询like语句该怎么写

2、Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

3、Mybatis优缺点

4、Mybatis是如何进行分页的?分页插件的原理是什么?33. Mybatis是否可以映射Enum枚举类?

5、请说说MyBatis的工作原理

6、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

7、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

8、#{}和${}的区别

9、在mapper中如何传递多个参数

10、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

11、MyBatis编程步骤是什么样的?

12、如何获取生成的主键

13、Mybatis如何执行批量操作

14、Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理吗?

15、讲下 MyBatis 的缓存

16、什么是MyBatis的接口绑定?有哪些实现方式?

17、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

18、为什么需要预编译

19、Mybatis中如何指定使用哪一种Executor执行器?

20、Mybatis能执行一对多,一对一的联系查询吗,有哪些实现方法

21、Mybatis的一级、二级缓存

22、简述Mybatis的插件运行原理,以及如何编写一个插件。

23、传统JDBC开发存在什么问题?

24、Hibernate 和 MyBatis 的区别

25、使用MyBatis的mapper接口调用时有哪些要求?

26、这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗

27、什么是DBMS

28、Mybatis都有哪些Executor执行器?它们之间的区别是什么?

29、MyBatis是什么?

30、Mapper 编写有哪几种方式?

31、MyBatis的功能架构是怎样的

32、JDBC编程有哪些不足之处,MyBatis是如何解决的?

33、MyBatis的框架架构设计是怎么样的

34、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?

35、Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

36、MyBatis和Hibernate的适用场景?

37、当实体类中的属性名和表中的字段名不一样 ,怎么办?

2021最新版Mybatis面试题(附答案解析)

13、网络编程

1.先看一天面试的经验:

2.什么是网络编程

3.网络编程中两个主要的问题

4.网络协议是什么

5.为什么要对网络协议分层

6.计算机网络体系结构

TCP/IP参考模型

TCP/IP四层协议(数据链路层、网络层、传输层、应用层)

1 TCP / UDP

1.1 什么是TCP/IP和UDP

1.2 TCP与UDP区别:

1.3 TCP和UDP的应用场景:

1.4 形容一下TCP和UDP

1.5 运行在TCP 或UDP的应用层协议分析。

1.5.1 什么是ARP协议 (Address Resolution Protocol)?

1.5.2 什么是NAT (Network Address Translation, 网络地址转换)?

1.5.3 从输入址到获得页面的过程?

1.6 TCP的三次握手

1.6.1 什么是TCP的三次握手

1.6.2 三次握手的具体细节

1.6.3 用现实理解三次握手的具体细节

1.6.4 建立连接可以两次握手吗?为什么?

1.6.5 可以采用四次握手吗?为什么?

1.6.6 第三次握手中,如果客户端的ACK未送达服务器,会怎样?

1.6.7 如果已经建立了连接,但客户端出现了故障怎么办?

1.6.8 初始序列号是什么?

1.7 TCP的四次挥手

1.7.1 什么是TCP的四次挥手

1.7.2 四次挥手的具体细节

1.7.3 用现实理解三次握手的具体细节TCP的四次挥手

1.7.4 为什么不能把服务器发送的ACK和FIN合并起来,变成三次挥手(CLOSE_WAIT状态意义是什么)?

1.7.5 如果第二次挥手时服务器的ACK没有送达客户端,会怎样?

1.7.6 客户端TIME_WAIT状态的意义是什么?

2 Socket

2.1 什么是Socket

2.2 socket属于网络的那个层面

2.3 Socket通讯的过程

2.4 TCP协议Socket代码示例:

2.5 UDP协议Socket代码示例:

2.6 Socket的常用类

3. HTTP

3.1什么是Http协议?

3.2 Socket和http的区别和应用场景

3.3 什么是http的请求体?

3.4 http的响应报文有哪些?

3.5 http和https的区别?

3.6 HTTPS工作原理

3.7 一次完整的HTTP请求所经历几个步骤?

3.8 常用HTTP状态码是怎么分类的,有哪些常见的状态码?

3.9 Http协议中有那些请求方式

3.10 GET方法与POST方法的区别

3.11 http版本的对比

3.12 什么是对称加密与非对称加密

3.13 cookie和session对于HTTP有什么用?

2021最新版TCP,UDP,Socket,Http网络编程面试题(附答案解析)

14、设计模式

1.什么是设计模式

2.为什么要学习设计模式

3.设计模式分类

4.设计模式的六大原则

5.单例模式

5.1 什么是单例

5.2 哪些地方用到了单例模式

5.3 单例优缺点

5.4 单例模式使用注意事项:

5.5 单例防止反射漏洞攻击

5.6 如何选择单例创建方式

5.7 单例创建方式

6.工厂模式

6.1 什么是工厂模式

6.2 工厂模式好处

6.3 为什么要学习工厂设计模式

6.4 Spring开发中的工厂设计模式

6.5 工厂模式分类

7.代理模式

7.1 什么是代理模式

7.2 代理模式应用场景

7.3 代理的分类

7.4 三种代理的区别

7.5 用代码演示三种代理

8.建造者模式

8.1 什么是建造者模式

8.2 建造者模式的使用场景

8.3 代码案例

9.模板方法模式

9.1 什么是模板方法

9.2 什么时候使用模板方法

9.3 实际开发中应用场景哪里用到了模板方法

9.4 现实生活中的模板方法

9.5 代码实现模板方法模式

10.外观模式

10.1 什么是外观模式

10.2 外观模式例子

11.原型模式

11.1 什么是原型模式

11.2 原型模式的应用场景

11.3 原型模式的使用方式

11.4 代码演示

12.策略模式

12.1 什么是策略模式

12.2 策略模式应用场景

12.3 策略模式的优点和缺点

12.4 代码演示

13.观察者模式

13.1 什么是观察者模式

13.2 模式的职责

13.3 观察者模式应用场景

13.4 代码实现观察者模式

2021最新版设计模式面试题(附答案解析)

15、大数据

选择题

 1.1.下面哪个程序负责 HDFS 数据存储。

1.2.HDfS 中的 block 默认保存几份?

1.3.下列哪个程序通常与 NameNode 在一个节点启动?

1.4.HDFS 默认 Block Size

 1.5.下列哪项通常是集群的最主要瓶颈   

 1.6.关于 SecondaryNameNode 哪项是正确的?  

1.7.下列哪项可以作为集群的管理?

1.8.Client 端上传文件的时候下列哪项正确

1.9.下列哪个是 Hadoop 运行的模式

面试题

2.1. Hadoop 的核心配置是什么?

2.2.那当下又该如何配置?

2.3.“jps”命令的用处?

2.4.mapreduce 的原理?

2.5. HDFS 存储的机制?

2.6.举一个简单的例子说明 mapreduce 是怎么来运行的 ?

2.7.用 mapreduce 来实现下面需求?

2.8.hadoop 中 Combiner 的作用?

2.9.简述 hadoop 安装

2.10. 请列出 hadoop 进程名

2.11. 解决下面的错误

2.12. 写出下面的命令

2.13. 简述 hadoop 的调度器

2.14. 列出你开发 mapreduce 的语言

2.15. 书写程序

2.16. 不同语言的优缺点

2.17. hive 有哪些保存元数据的方式,个有什么特点。

2.18. combiner 和 partition 的作用

2.19. hive 内部表和外部表的区别

2.20. hbase 的 rowkey 怎么创建好?列族怎么创建比较 好?

2.21. 用 mapreduce 怎么处理数据倾斜问题?

2.22. hadoop 框架中怎么来优化

2.23. 我们开发 job 时,是否可以去掉 reduce 阶段。

2.24. datanode 在什么情况下不会备份

2.25. combiner 出现在那个过程

2.26. hdfs 的体系结构

2.27. 3 个 datanode 中有一个 datanode 出现错误会怎样?

2.28. 描述一下 hadoop 中,有哪些地方使用了缓存机制, 作用分别是什么?

2.29. 如何确定 hadoop 集群的健康状态

2.30. 生产环境中为什么建议使用外部表?

2021最新版大数据面试题100道(附答案解析)

16、Tomcat

1、Tomcat的缺省端口是多少,怎么修改?

2、tomcat 有哪几种Connector 运行模式(优化)?

3、Tomcat有几种部署方式?

4、tomcat容器是如何创建servlet类实例?用到了什么原理?

5.tomcat 如何优化?

6.内存调优

7.垃圾回收策略调优

8.添加JMS远程监控

9.专业点的分析工具有

10.关于Tomcat的session数目

11.监视Tomcat的内存使用情况

12.打印类的加载情况及对象的回收情况

13.Tomcat一个请求的完整过程

14.Tomcat工作模式?

15.共享session处理

2021最新版Tomcat面试题(附答案解析)

17、多线程

1.多线程有什么用?

2.线程和进程的区别是什么?

3.Java 实现线程有哪几种方式?

4.启动线程方法 start()和 run()有什么区别?

5.怎么终止一个线程?如何优雅地终止线程?

6.一个线程的生命周期有哪几种状态?它们之间如何流转的?

7.线程中的 wait()和 sleep()方法有什么区别?

8.多线程同步有哪几种方法?

9.什么是死锁?如何避免死锁?

10.多线程之间如何进行通信?

11、线程怎样拿到返回结果?

12、violatile 关键字的作用?

13、新建 T1、T2、T3 三个线程,如何保证它们按顺序执行?

14、怎么控制同一时间只有 3 个线程运行?

15、为什么要使用线程池?

16、常用的几种线程池并讲讲其中的工作原理。

17、线程池启动线程 submit()和 execute()方法有什么不同?

18、CyclicBarrier 和 CountDownLatch 的区别?

19、什么是活锁、饥饿、无锁、死锁?

20、什么是原子性、可见性、有序性?

21、什么是守护线程?有什么用?

22、一个线程运行时发生异常会怎样?

23、线程 yield()方法有什么用?

24、什么是重入锁?

25、Synchronized 有哪几种用法?

26、Fork/Join 框架是干什么的?

27、线程数过多会造成什么异常?

28、说说线程安全的和不安全的集合。

29、什么是 CAS 算法?在多线程中有哪些应用。

30、怎么检测一个线程是否拥有锁?

31、Jdk 中排查多线程问题用什么命令?

32、线程同步需要注意什么?

33、线程 wait()方法使用有什么前提?

34、Fork/Join 框架使用有哪些要注意的地方?

35、线程之间如何传递数据?

36、保证"可见性"有哪几种方式?

37、说几个常用的 Lock 接口实现锁。

38、ThreadLocal 是什么?有什么应用场景?

39、ReadWriteLock 有什么用?

40、FutureTask 是什么?

41、怎么唤醒一个阻塞的线程?

42、不可变对象对多线程有什么帮助?

43、多线程上下文切换是什么意思?

44、Java 中用到了什么线程调度算法?

45、Thread.sleep(0)的作用是什么?

46、Java 内存模型是什么,哪些区域是线程共享的,哪些是不共享的?

47、什么是乐观锁和悲观锁?

48、Hashtable 的 size()方法为什么要做同步?

49、同步方法和同步块,哪种更好?

50、什么是自旋锁?

51、Runnable 和 Thread 用哪个好?

52、Java 中 notify 和 notifyAll 有什么区别?

53、为什么 wait/notify/notifyAll 这些方法不在 thread 类里面?

54、为什么 wait 和 notify 方法要在同步块中调用?

55、为什么你应该在循环中检查等待条件?

56、Java 中堆和栈有什么不同?

57、你如何在 Java 中获取线程堆栈?

58、如何创建线程安全的单例模式?

59、什么是阻塞式方法?

60、提交任务时线程池队列已满会时发会生什么?

2021最新版多线程面试题(附答案解析)

18、Nginx

1. 什么是IO

2. 在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别

3. 什么是BIO

4. 什么是NIO

5. 什么是AIO

6. 什么Netty

7. BIO和NIO、AIO的区别

8. IO流的分类

9. 什么是内核空间

10. 五种IO模型

10.1 阻塞BIO(blocking I/O)

10.2.非阻塞NIO(noblocking I/O)

10.3.异步AIO(asynchronous I/O)

10.4.信号驱动IO(signal blocking I/O)

10.5.IO多路转接(I/O multiplexing)

11. 什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别

12. 什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作

13. 在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用

14. 怎么生成SerialversionUID

15. BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法

16. Java中流类的超类主要有那些?

17. 为什么图片、视频、音乐、文件等 都是要字节流来读取

18. IO的常用类和方法,以及如何使用

19. IO基本操作讲解

20. 网络操作IO讲解

21. 网络操作IO编程演变历史

21.1 BIO编程会出现什么问题?

21.2 多线程解决BIO编程会出现的问题

21.3 线程池解决多线程BIO编程会出现的问题

21.4 使用NIO实现网络通信

21.5 使用Netty实现网络通信

2021最新版Nginx_BIO_NIO_AIO面试题(附答案解析)

19、Memcache

1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。

1.1、设计阶段调优

1.2、写入调优

1.3、查询调优

1.4、其他调优

2、elasticsearch 的倒排索引是什么

3、elasticsearch 索引数据多了怎么办,如何调优,部署

3.1 动态索引层面

3.2 存储层面

3.3 部署层面

4、elasticsearch 是如何实现 master 选举的

5、详细描述一下 Elasticsearch 索引文档的过程

6、详细描述一下 Elasticsearch 搜索的过程?

7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法

8、lucence 内部结构是什么?

9、Elasticsearch 是如何实现 Master 选举的?

10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个

11、客户端在和集群连接时,如何选择特定的节点执行请求的?

12、详细描述一下 Elasticsearch 索引文档的过程。

13、Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎。

14、Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎。它允许您快速和接近实时地存储、搜索和分析大量数据。

15、详细描述一下 Elasticsearch 更新和删除文档的过程。

16、详细描述一下 Elasticsearch 搜索的过程。

17、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?

18、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

补充:索引阶段性能提升方法

19、对于 GC 方面,在使用 Elasticsearch 时要注意什么?

20、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

21、在并发情况下,Elasticsearch 如果保证读写一致?

22、如何监控 Elasticsearch 集群状态?

23、介绍下你们电商搜索的整体技术架构。

24、介绍一下你们的个性化搜索方案?

25、是否了解字典树?

26、拼写纠错是如何实现的?

2021最新版memcache面试题(附答案解析)

20、Java异常

Java异常架构与异常关键字

1. Java异常简介

2. Java异常架构

3. Java异常关键字

 Java异常处理

1. 声明异常

2. 抛出异常

3. 捕获异常

4. 如何选择异常类型

5. 常见异常处理方式

Java异常常见面试题

1. Error 和 Exception 区别是什么?

2. 运行时异常和一般异常(受检异常)区别是什么?

3. JVM 是如何处理异常的?

4. throw 和 throws 的区别是什么?

5. final、finally、finalize 有什么区别?

6. NoClassDefFoundError 和 ClassNotFoundException 区别?

7. try-catch-finally 中哪个部分可以省略?

8. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

9. 类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA。

10. 常见的 RuntimeException 有哪些?

11. Java常见异常有哪些

Java异常处理最佳实践

1. 在 finally 块中清理资源或者使用 try-with-resource 语句

2. 优先明确的异常

3. 对异常进行文档说明

4. 使用描述性消息抛出异常

5. 优先捕获最具体的异常

6. 不要捕获 Throwable 类

7. 不要忽略异常

8. 不要记录并抛出异常

9. 包装异常时不要抛弃原始的异常

10. 不要使用异常控制程序的流程

11. 使用标准异常

12. 异常会影响性能

异常处理-阿里巴巴Java开发手册

2021最新版java异常面试题(附答案解析)

21、Java虚拟机精选专题

Java内存模型

1. 我们开发人员编写的Java代码是怎么让电脑认识的

2. 为什么说java是跨平台语言

3. Jdk和Jre和JVM的区别

4. 说一下 JVM由那些部分组成,运行流程是什么?

5. 说一下 JVM 运行时数据区

6. 详细的介绍下程序计数器?(重点理解)

7. 详细介绍下Java虚拟机栈?(重点理解)

8. 你能给我详细的介绍Java堆吗?(重点理解)

9. 能不能解释一下本地方法栈?

10. 能不能解释一下方法区(重点理解)

11. 什么是JVM字节码执行引擎

12. 你听过直接内存吗?

13. 知道垃圾收集系统吗?

14. 堆栈的区别是什么?

15. 深拷贝和浅拷贝

16. Java会存在内存泄漏吗?请说明为什么?

垃圾回收机制及算法

17. 简述Java垃圾回收机制

18. GC是什么?为什么要GC

19. 垃圾回收的优点和缺点

20. 垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?

21. JVM 中都有哪些引用类型?

22. 怎么判断对象是否可以被回收?

23. Full GC是什么

24. 对象什么时候可以被垃圾器回收

25. JVM 垃圾回收算法有哪些?

26. JVM中的永久代中会发生垃圾回收吗

垃圾收集器以及新生代、老年代、永久代

27. 讲一下新生代、老年代、永久代的区别

28. Minor GC、Major GC、Full GC是什么

29. Minor GC、Major GC、Full GC区别及触发条件

30. 为什么新生代要分Eden和两个 Survivor 区域?

31. Java堆老年代( Old ) 和新生代 ( Young ) 的默认比例?

32.为什么要这样分代:

33. 什么是垃圾回收器他和垃圾算法有什么区别

34. 说一下 JVM 有哪些垃圾回收器?

35. 收集器可以这么分配?(了解就好了)

36. 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?

37. 简述分代垃圾回收器是怎么工作的?

内存分配策略

38. 简述java内存分配与回收策率以及Minor GC和Major GC

五、虚拟机类加载机制

42. 简述java类加载机制?

43.类加载的机制及过程

44. 描述一下JVM加载Class文件的原理机制

45. 什么是类加载器,类加载器有哪些?

46. 说一下类装载的执行过程?

47. 什么是双亲委派模型?

JVM调优

48. JVM 调优的参数可以在那设置参数值

49. 说一下 JVM 调优的工具?

50. 常用的 JVM 调优的参数都有哪些?

51. JVM的GC收集器设置

2021最新版Java虚拟机面试题(附答案解析)

22、Java集合

集合容器概述

1. 什么是集合

2. 集合的特点

3. 集合和数组的区别

4. 使用集合框架的好处

5. 常用的集合类有哪些?

6. List,Set,Map三者的区别?

7. 集合框架底层数据结构

8. 哪些集合类是线程安全的?

9. Java集合的快速失败机制 “fail-fast”?

10. 怎么确保一个集合不能被修改?

List接口

11. 迭代器 Iterator 是什么?

12. Iterator 怎么使用?有什么特点?

13. 如何边遍历边移除 Collection 中的元素?

14. Iterator 和 ListIterator 有什么区别?

15. 遍历一个 List 有哪些不同的方式?每种方法的实现原理是什么?Java 中 List 遍历的最佳实践是什么?

16. 说一下 ArrayList 的优缺点

17. 如何实现数组和 List 之间的转换?

18. ArrayList 和 LinkedList 的区别是什么?

19. ArrayList 和 Vector 的区别是什么?

20. 插入数据时,ArrayList、LinkedList、Vector谁速度较快?阐述 ArrayList、Vector、LinkedList 的存储性能和特性?

21. 多线程场景下如何使用 ArrayList?

22. 为什么 ArrayList 的 elementData 加上 transient 修饰?

23. List 和 Set 的区别

Set接口

24. 说一下 HashSet 的实现原理?

25. HashSet如何检查重复?HashSet是如何保证数据不可重复的?

26. HashSet与HashMap的区别

Map接口

27. 什么是Hash算法

28. 什么是链表

29. 说一下HashMap的实现原理?

30. HashMap在JDK1.7和JDK1.8中有哪些不同?HashMap的底层实现

31. 什么是红黑树

32. HashMap的put方法的具体流程?

33. HashMap的扩容操作是怎么实现的?

34. HashMap是怎么解决哈希冲突的?

35. 能否使用任何类作为 Map 的 key?

36. 为什么HashMap中String、Integer这样的包装类适合作为K?

37. 如果使用Object作为HashMap的Key,应该怎么办呢?

38. HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?

39. HashMap 的长度为什么是2的幂次方

40. HashMap 与 HashTable 有什么区别?

41. 什么是TreeMap 简介

42. 如何决定使用 HashMap 还是 TreeMap?

43. HashMap 和 ConcurrentHashMap 的区别

44. ConcurrentHashMap 和 Hashtable 的区别?

45. ConcurrentHashMap 底层具体实现知道吗?实现原理是什么?

辅助工具类

46. Array 和 ArrayList 有何区别?

47. 如何实现 Array 和 List 之间的转换?

48. comparable 和 comparator的区别?

49. Collection 和 Collections 有什么区别?

50. TreeMap 和 TreeSet 在排序时如何比较元素?Collections 工具类中的 sort()方法如何比较元素?

51. Collection 和 Collections 有什么区别?

2021最新版Java集合面试题(附答案解析)

23、Git常用命令

配置操作

1、全局配置

2、当前仓库配置

3、查看 global 配置

4、查看当前仓库配置

5、删除 global 配置

6、删除当前仓库配置

本地操作

1、查看变更情况

2、将当前目录及其子目录下所有变更都加入到暂存区

3、将仓库内所有变更都加入到暂存区

4、将指定文件添加到暂存区

5、比较工作区和暂存区的所有差异

6、比较某文件工作区和暂存区的差异

7、比较暂存区和 HEAD 的所有差异

8、比较某文件暂存区和 HEAD 的差异

9、比较某文件工作区和 HEAD 的差异

10、创建 commit

11、将工作区指定文件恢复成和暂存区一致

12、将暂存区指定文件恢复成和 HEAD 一致

13、将暂存区和工作区所有文件恢复成和 HEAD 一样

14、用 difftool 比较任意两个 commit 的差异

15、查看哪些文件没被 Git 管控

16、将未处理完的变更先保存到 stash 中

17、临时任务处理完后继续之前的工作

18、查看所有 stash

19、取回某次 stash 的变更

20、优雅修改最后一次 commit

分支操作

1、查看当前工作分支及本地分支

2、查看本地和远端分支

3、查看远端分支

4、切换到指定分支

5、基于当前分支创建新分支

6、基于指定分支创建新分支

7、基于某个 commit 创建分支

8、创建并切换到该分支

9、安全删除本地某分支

10、强行删除本地某分支

11、删除已合并到 master 分支的所有本地分支

12、删除远端 origin 已不存在的所有本地分支

13、将 A 分支合入到当前分支中且为 merge 创建 commit

14、将 A 分支合入到 B 分支中且为 merge 创建 commit

15、将当前分支基于 B 分支做 rebase,以便将B分支合入到当前分支

16、将 A 分支基于 B 分支做 rebase,以便将 B 分支合入到 A 分支

变更历史

1、当前分支各个 commit 用一行显示

2、显示就近的 n 个 commit

3、用图示显示所有分支的历史

4、查看涉及到某文件变更的所有 commit

5、某文件各行最后修改对应的 commit 以及作者

标签操作

1、查看已有标签

2、新建标签

3、新建带备注标签

4、给指定的 commit 打标签

5、推送一个本地标签

6、推送全部未推送过的本地标签

7、删除一个本地标签

8、删除一个远端标签

远端交互

1、查看所有远端仓库

2、添加远端仓库

3、删除远端仓库

4、重命名远端仓库

5、将远端所有分支和标签的变更都拉到本地

6、把远端分支的变更拉到本地,且 merge 到本地分支

7、将本地分支 push 到远端

8、删除远端分支

2021最新版Git常用命令(附答案解析)

24、Elasticsearch

1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。

1.1、设计阶段调优

1.2、写入调优

1.3、查询调优

1.4、其他调优

2、elasticsearch 的倒排索引是什么

3、elasticsearch 索引数据多了怎么办,如何调优,部署

3.1 动态索引层面

3.2 存储层面

3.3 部署层面

4、elasticsearch 是如何实现 master 选举的

5、详细描述一下 Elasticsearch 索引文档的过程

6、详细描述一下 Elasticsearch 搜索的过程?

7、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法

8、lucence 内部结构是什么?

9、Elasticsearch 是如何实现 Master 选举的?

10、Elasticsearch 中的节点(比如共 20 个),其中的 10 个

11、客户端在和集群连接时,如何选择特定的节点执行请求的?

12、详细描述一下 Elasticsearch 索引文档的过程。

13、Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎。

14、Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎。它允许您快速和接近实时地存储、搜索和分析大量数据。

15、详细描述一下 Elasticsearch 更新和删除文档的过程。

16、详细描述一下 Elasticsearch 搜索的过程。

17、在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?

18、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

19、对于 GC 方面,在使用 Elasticsearch 时要注意什么?

20、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

21、在并发情况下,Elasticsearch 如果保证读写一致?

22、如何监控 Elasticsearch 集群状态?

24、介绍一下你们的个性化搜索方案?

25、是否了解字典树?

26、拼写纠错是如何实现的?

2021最新版Elasticsearch面试题(附答案解析)

25、Dubbo

基础知识

1. 为什么要用 Dubbo?

2. Dubbo 是什么?

3. Dubbo 的使用场景有哪些?

4. Dubbo 核心功能有哪些?

5. Dubbo 核心组件有哪些?

6. Dubbo 服务器注册与发现的流程?

架构设计

7. Dubbo 的整体架构设计有哪些分层?

8. Dubbo Monitor 实现原理?

分布式框架

9. Dubbo 类似的分布式框架还有哪些?

10. Dubbo 和 Spring Cloud 有什么关系?

12. Dubbo 和 Dubbox 之间的区别?

注册中心

13. Dubbo 有哪些注册中心?

14. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?

集群

15. Dubbo集群提供了哪些负载均衡策略?

16. Dubbo的集群容错方案有哪些?

配置

17. Dubbo 配置文件是如何加载到 Spring 中的?

18. 说说核心的配置有哪些?

19. Dubbo 超时设置有哪些方式?

20. 服务调用超时会怎么样?

通信协议

21. Dubbo 使用的是什么通信框架?

22. Dubbo 支持哪些协议,它们的优缺点有哪些?

设计模式

23. Dubbo 用到哪些设计模式?

运维管理

24. 服务上线怎么兼容旧版本?

25. Dubbo telnet 命令能做什么?

26. Dubbo 支持服务降级吗?

27. Dubbo 如何优雅停机?

SPI

28. Dubbo SPI 和 Java SPI 区别?

其他

29. Dubbo 支持分布式事务吗?

30. Dubbo 可以对结果进行缓存吗?

31. Dubbo 必须依赖的包有哪些?

32. Dubbo 支持哪些序列化方式?

33. Dubbo 在安全方面有哪些措施?

34. 服务调用是阻塞的吗?

35. 服务提供者能实现失效踢出是什么原理?

36. 同一个服务多个注册的情况下可以直连某一个服务吗?

37. Dubbo 服务降级,失败重试怎么做?

38.Dubbo 使用过程中都遇到了些什么问题?

RPC

39. 为什么要有RPC

40. 什么是RPC

41. PRC架构组件

42. RPC和SOA、SOAP、REST的区别

43. RPC框架需要解决的问题?

44. RPC的实现基础?

45. RPC使用了哪些关键技术?

46. 主流RPC框架有哪些

47. RPC的实现原理架构图

2021最新版Dubbo面试题(附答案解析)

最后

小编分享的文章到这里就结束了,欢迎大家一起交流!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值