2022最新超详细Spring全家桶面试题(待更新ing)

0. 参考视频

链接: 2021最新超详细Spring全家桶面试题100道完整版.
链接: 2022中文社区上面试趋势+精选+排行榜上所有热度最高的Java面试八股文.

1. 谈谈对Spring的理解

在这里插入图片描述

77.SpringBoot的自动配置原理

在这里插入图片描述

81. Springboot 启动原理 (启动过程)

第一步:创建 SpringApplication 对象。
第二步:运⾏ run() ⽅法。
以上两步是粗略介绍。
下述关键步骤:
在这里插入图片描述
“ApplicationContext是spring中比较高级的容器。和BeanFactory类似,它可以加载配置文件中定义的bean,并将所有bean集中在一起,

  1. 创建ApplicationContext容器
  2. 将启动类作为配置类进行读取,将配置类注册为BeanDefinition
    在这里插入图片描述
  3. 调用Refresh 加载IOC容器(其中具体包括,解析@import,加载所有的自动配置类,OnRefresh创建内置的servlet容器)
    在这里插入图片描述

86. Springboot默认的日志实现框架,如何切换其他日志框架?

默认是logback日志框架
切换log4j2 (springboot 中含有log4j2的对应的starter)
在这里插入图片描述
切换log4j (了解)
在这里插入图片描述

101.@Component 和@ComponentScan的联系

@Component 这个注解的作用是把我们写的bean注入到容器中,以供使用,
@ComponentScan注解的作用则是扫描包中的bean(比如:Spring不知道你定义了某个bean除非它知道从哪里可以找到这个bean,ComponentScan做的事情就是告诉Spring从哪里找到bean),由你来定义哪些包需要被扫描。一旦你指定了,Spring将会将在被指定的包及其下级包中寻找bean,这两个注解进行配合使用。

102. @SpringBootApplication和@ComponentScan,扫描包的区别:

如果你的其他包都在使用了@SpringBootApplication注解的main app所在的包及其下级包,则你什么都不用做,SpringBoot会自动帮你把其他包都扫描了如果你有一些bean所在的包,不在main app的包及其下级包,那么你需要手动加上@ComponentScan注解并指定那个bean所在的包。

103 @GetMapping和@RequestMapping的区别

  1. @GetMapping用于将HTTP get请求映射到特定处理程序的方法注解
    具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
  2. RequestMapping 具有类属性的,可以进行 GET,POST,PUT 或者其它的注释中具有的请求方法。
    GetMapping 是 GET 请求方法中的一个特例。它只是 ResquestMapping 的一个延伸,目的是为了提高清晰度。

链接: 参考视频.

1.JDK JRE JVM区别与联系?(JIT即时编译器)

在这里插入图片描述

2. ACID的实现方式

原子性( A )——>undo log实现;
隔离性( I )——>MVC实现;
持久性( D )——>redo log实现
一致性( C )——>依靠以上特性三个实现

3. Mybatis中#{}和¥{}的区别?

在这里插入图片描述

4. 浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别

链接: 参考链接.

5. 如何自定义一个注解(@Annotation)

链接: 参考链接.
自定义校验注解
链接: 自定义校验注解.

6. 最近最久未使用(LRU算法)算法采用的数据结构

链接: 彻头彻尾理解 LinkedHashMap.
HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥有HashMap的所有特性。比如,LinkedHashMap的元素存取过程基本与HashMap基本类似,只是在细节实现上稍有不同。当然,这是由LinkedHashMap本身的特性所决定的,因为它额外维护了一个双向链表用于保持迭代顺序。此外,LinkedHashMap可以很好的支持LRU算法。
在这里插入图片描述
在这里插入图片描述

7. SpringMVC和JSON的交互

springMVC中和json的交互:主要分为两点:
一是传递过来的是json字符串,springMVC会先进行解析,
二是传递过来的是key:value那么springMVC可以不进行解析,
这里的解析指的是json和java对象之间的转换
在这里插入图片描述

8. Spring中@Component与@Bean的区别

@Component和@Bean的目的是一样的,都是注册bean到Spring容器中。
@Component VS @Bean
@Component 和 它的子类型(@Controller, @Service and @Repository)注释在类上。告诉Spring,我是一个bean,通过类路径扫描自动检测并注入到Spring容器中。
@Bean不能注释在类上,只能用于在配置类中显式声明单个bean。意思就是,我要获取这个bean的时候,spring要按照这种方式去获取这个bean。默认情况下@Bean注释的方法名作为对象的名字,也可以用name属性定义对象的名字。
链接: Spring中@Component与@Bean的区别.

9. HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口。它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它对集合中的对象进行索引,Queue的工作原理是FCFS算法(First Come, First Serve)。

首先让我们来看看什么是HashMap和HashSet,然后再来比较它们之间的分别。

9.1 什么是HashSet

HashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。
public boolean add(Object o)方法用来在Set中添加元素,当元素值重复时则会立即返回false,如果成功添加的话会返回true。

9.2 什么是HashMap

HashMap实现了Map接口,Map接口对键值对进行映射。Map中不允许重复的键。Map接口有两个基本的实现,HashMap和TreeMap。TreeMap保存了对象的排列次序,而HashMap则不能。HashMap允许键和值为null。HashMap是非synchronized的,但collection框架提供方法能保证HashMap synchronized,这样多个线程同时访问HashMap时,能保证只有一个线程更改Map.

public Object put(Object Key,Object value)方法用来将元素添加到map中。
在这里插入图片描述

链接: HashMap和HashSet的区别 .

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一些常见的 Spring 全家桶面试题: 1. Spring 是什么?它的核心特性是什么? Spring 是一个开源的轻量级框架,它基于 Java 语言开发,旨在简化企业级应用程序的开发。Spring 的核心特性包括:IoC(控制反转)、AOP(面向切面编程)、MVC(模型-视图-控制器)等。 2. IoC(控制反转)是什么?它的实现方式有哪些? IoC(控制反转)指的是将对象的创建和依赖关系的管理交给 IoC 容器来完成。它的实现方式包括:XML 配置、注解、Java 配置等。 3. AOP(面向切面编程)是什么?它的应用场景有哪些? AOP(面向切面编程)指的是在不改变源代码的情况下,通过动态代理的方式对方法进行增强。它的应用场景包括:事务管理、日志记录、权限控制等。 4. Spring MVC(模型-视图-控制器)是什么?它的工作流程是怎样的? Spring MVC(模型-视图-控制器)是一种基于 Java 的 Web 框架,它采用 MVC 设计模式来实现分离应用程序的不同层。它的工作流程包括:用户发送请求、DispatcherServlet 接收请求、HandlerMapping 找到匹配的 Controller、Controller 处理请求并返回数据、ViewResolver 找到匹配的视图并返回给客户端。 5. Spring Boot 是什么?它的优点是什么? Spring Boot 是一个快速开发 Spring 应用程序的框架,它基于 Spring 框架,采用约定优于配置的方式来简化应用程序的开发。它的优点包括:快速开发、简化配置、自动装配、内置服务器等。 6. Spring Cloud 是什么?它的核心组件有哪些? Spring Cloud 是一个基于 Spring Boot 的微服务框架,它提供了一些常用的微服务组件,例如服务发现、服务治理、配置中心、负载均衡等。它的核心组件包括:Eureka、Ribbon、Feign、Hystrix、Zuul 等。 以上是一些常见的 Spring 全家桶面试题,希望能对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值