详解高频Spring 经典面试题汇总

花了14天做了一张spring脑图,所有spring知识点都汇总了!2020最新Spring全家桶高频面试题 花了14天做了一张spring脑图,所有spring知识点都汇总了!2020最新Spring全家桶高频面试题,现在分享给大家。spring知识脑图放在文末。 对于那些想面试高级 Java 岗位的同学来说,spring是一大绕不过的坎!剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容。 这里总结了 70 道 Spring 相关面试题,有的很基础,有的很细节,大家可以评估一下自己掌握的情况。 这里把重要的知识点都写出来了,不管是核心知识点也好还是面试题也好,让大家对知识框 阅读详情

推荐阅读:

19年常问面试题汇总:JVM+微服务+多线程+锁+高并发性能(建议收藏2020必用)

据说看完这200+大厂高频面试题的Java工程师都拿到了一份满意的offer!

1、基础概念

1.1. 不同版本的 Spring Framework 有哪些主要功能?

Version Feature

详解热门Spring 经典面试题汇总

 

1.2. 什么是 Spring Framework?

Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。

它是轻量级、松散耦合的。

它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。

它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。

1.3. 列举 Spring Framework 的优点。

由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。

Spring Framework 支持 POJO(Plain Old Java Object) 编程,从而具备持续集成和可测试性。

由于依赖注入和控制反转,JDBC 得以简化。

它是开源免费的。

1.4. Spring Framework 有哪些不同的功能?

轻量级 - Spring 在代码量和透明度方面都很轻便。

IOC - 控制反转

AOP - 面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。

容器 - Spring 负责创建和管理对象(Bean)的生命周期和配置。

MVC - 对 web 应用提供了高度可配置性,其他框架的集成也十分方便。

事务管理 - 提供了用于事务管理的通用抽象层。Spring 的事务支持也可用于容器较少的环境。

JDBC 异常 - Spring 的 JDBC 抽象层提供了一个异常层次结构,简化了错误处理策略。

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

详解热门Spring 经典面试题汇总

 

Spring 核心容器 – 该层基本上是 Spring Framework 的核心。它包含以下模块:

  • Spring Core
  • Spring Bean
  • SpEL (Spring Expression Language)
  • Spring Context

数据访问/集成 – 该层提供与数据库交互的支持。它包含以下模块:

  • JDBC (Java DataBase Connectivity)
  • ORM (Object Relational Mapping)
  • OXM (Object XML Mappers)
  • JMS (Java Messaging Service)
  • Transaction

Web – 该层提供了创建 Web 应用程序的支持。它包含以下模块:

  • Web
  • Web – Servlet
  • Web – Socket
  • Web – Portlet

AOP – 该层支持面向切面编程

Instrumentation – 该层为类检测和类加载器实现提供支持。

Test – 该层为使用 JUnit 和 TestNG 进行测试提供支持。

几个杂项模块:

  • Messaging – 该模块为 STOMP 提供支持。它还支持注解编程模型,该模型用于从 WebSocket 客户端路由和处理 STOMP 消息
  • Aspects – 该模块为与 AspectJ 的集成提供支持。

1.6. 什么是 Spring 配置文件?

Spring 配置文件是 XML 文件。该文件主要包含类信息。它描述了这些类是如何配置以及相互引入的。但是,XML 配置文件冗长且更加干净。如果没有正确规划和编写,那么在大项目中管理变得非常困难。

1.7. Spring 应用程序有哪些不同组件?

Spring 应用一般有以下组件:

接口 - 定义功能。

Bean 类 - 它包含属性,setter 和 getter 方法,函数等。

Spring 面向切面编程(AOP) - 提供面向切面编程的功能。

Bean 配置文件 - 包含类的信息以及如何配置它们。

用户程序 - 它使用接口。

1.8. 使用 Spring 有哪些方式?

使用 Spring 有以下方式:

  • 作为一个成熟的 Spring Web 应用程序。
  • 作为第三方 Web 框架,使用 Spring Frameworks 中间层。
  • 用于远程使用。
  • 作为企业级 Java Bean,它可以包装现有的 POJO(Plain Old Java Objects)。

2、依赖注入(Ioc)

2.1. 什么是 Spring IOC 容器?

Spring 框架的核心是 Spring 容器。容器创建对象,将它们装配在一起,配置它们并管理它们的完整生命周期。Spring 容器使用依赖注入来管理组成应用程序的组件。

容器通过读取提供的配置元数据来接收对象进行实例化,配置和组装的指令。该元数据可以通过 XML,Java 注解或 Java 代码提供。

详解热门Spring 经典面试题汇总

 

img

2.2. 什么是依赖注入?

在依赖注入中,您不必创建对象,但必须描述如何创建它们。您不是直接在代码中将组件和服务连接在一起,而是描述配置文件中哪些组件需要哪些服务。由 IoC 容器将它们装配在一起。

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

通常,依赖注入可以通过三种方式完成,即:

  • 构造函数注入
  • setter 注入
  • 接口注入

在 Spring Framework 中,仅使用构造函数和 setter 注入。

2.4. 区分构造函数注入和 setter 注入。

详解热门Spring 经典面试题汇总

 

2.5. spring 中有多少种 IOC 容器?

  • BeanFactory - BeanFactory 就像一个包含 bean 集合的工厂类。它会在客户端要求时实例化 bean。
  • ApplicationContext - ApplicationContext 接口扩展了 BeanFactory 接口。它在 BeanFactory 基础上提供了一些额外的功能。

2.6. 区分 BeanFactory 和 ApplicationContext。

详解热门Spring 经典面试题汇总

 

2.7. 列举 IoC 的一些好处。

IoC 的一些好处是:

  • 它将最小化应用程序中的代码量。
  • 它将使您的应用程序易于测试,因为它不需要单元测试用例中的任何单例或 JNDI 查找机制。
  • 它以最小的影响和最少的侵入机制促进松耦合。
  • 它支持即时的实例化和延迟加载服务。

2.8. Spring IoC 的实现机制。

Spring 中的 IoC 的实现原理就是工厂模式加反射机制。

示例:

详解热门Spring 经典面试题汇总

 

3、Beans

3.1. 什么是 spring bean?

  • 它们是构成用户应用程序主干的对象。
  • Bean 由 Spring IoC 容器管理。
  • 它们由 Spring IoC 容器实例化,配置,装配和管理。
  • Bean 是基于用户提供给容器的配置元数据创建。

3.2. spring 提供了哪些配置方式?

  • 基于 xml 配置

bean 所需的依赖项和服务在 XML 格式的配置文件中指定。这些配置文件通常包含许多 bean 定义和特定于应用程序的配置选项。它们通常以 bean 标签开头。例如:

详解热门Spring 经典面试题汇总

 

  • 基于注解配置

您可以通过在相关的类,方法或字段声明上使用注解,将 bean 配置为组件类本身,而不是使用 XML 来描述 bean 装配。默认情况下,Spring 容器中未打开注解装配。因此,您需要在使用它之前在 Spring 配置文件中启用它。例如:

详解热门Spring 经典面试题汇总

 

  • 基于 Java API 配置

Spring 的 Java 配置是通过使用 @Bean 和 @Configuration 来实现。

  1. @Bean 注解扮演与 <bean /> 元素相同的角色。
  2. @Configuration 类允许通过简单地调用同一个类中的其他 @Bean 方法来定义 bean 间依赖关系。

例如:

详解热门Spring 经典面试题汇总

 

3.3. spring 支持集中 bean scope?

Spring bean 支持 5 种 scope:

  • Singleton - 每个 Spring IoC 容器仅有一个单实例。
  • Prototype - 每次请求都会产生一个新的实例。
  • Request - 每一次 HTTP 请求都会产生一个新的实例,并且该 bean 仅在当前 HTTP 请求内有效。
  • Session - 每一次 HTTP 请求都会产生一个新的 bean,同时该 bean 仅在当前 HTTP session 内有效。
  • Global-session - 类似于标准的 HTTP Session 作用域,不过它仅仅在基于 portlet 的 web 应用中才有意义。Portlet 规范定义了全局 Session 的概念,它被所有构成某个 portlet web 应用的各种不同的 portlet 所共享。在 global session 作用域中定义的 bean 被限定于全局 portlet Session 的生命周期范围内。如果你在 web 中使用 global session 作用域来标识 bean,那么 web 会自动当成 session 类型来使用。

仅当用户使用支持 Web 的 ApplicationContext 时,最后三个才可用。更多spring内容

3.4. spring bean 容器的生命周期是什么样的?

spring bean 容器的生命周期流程如下:

  1. Spring 容器根据配置中的 bean 定义中实例化 bean
  2. Spring 使用依赖注入填充所有属性,如 bean 中所定义的配置。
  3. 如果 bean 实现 BeanNameAware 接口,则工厂通过传递 bean 的 ID 来调用 setBeanName()。
  4. 如果 bean 实现 BeanFactoryAware 接口,工厂通过传递自身的实例来调用 setBeanFactory()。
  5. 如果存在与 bean 关联的任何 BeanPostProcessors,则调用 preProcessBeforeInitialization() 方法。
  6. 如果为 bean 指定了 init 方法( <bean>的 init-method 属性),那么将调用它。
  7. 最后,如果存在与 bean 关联的任何 BeanPostProcessors,则将调用 postProcessAfterInitialization() 方法。
  8. 如果 bean 实现 DisposableBean 接口,当 spring 容器关闭时,会调用 destory()。
  9. 如果为 bean 指定了 destroy 方法( <bean>的 destroy-method 属性),那么将调用它。

详解热门Spring 经典面试题汇总

 

3.5. 什么是 spring 的内部 bean?

只有将 bean 用作另一个 bean 的属性时,才能将 bean 声明为内部 bean。为了定义 bean,Spring 的基于 XML 的配置元数据在<property>或<constructor-arg> 中提供了<bean>元素的使用。内部 bean 总是匿名的,它们总是作为原型。

例如,假设我们有一个 Student 类,其中引用了 Person 类。这里我们将只创建一个 Person 类实例并在 Student 中使用它。

Student.java

详解热门Spring 经典面试题汇总

 

bean.xml

详解热门Spring 经典面试题汇总

 

3.6. 什么是 spring 装配

当 bean 在 Spring 容器中组合在一起时,它被称为装配或 bean 装配。Spring 容器需要知道需要什么 bean 以及容器应该如何使用依赖注入来将 bean 绑定在一起,同时装配 bean。

3.7. 自动装配有哪些方式?

Spring 容器能够自动装配 bean。也就是说,可以通过检查 BeanFactory 的内容让 Spring 自动解析 bean 的协作者。

自动装配的不同模式:

  • no - 这是默认设置,表示没有自动装配。应使用显式 bean 引用进行装配。
  • byName - 它根据 bean 的名称注入对象依赖项。它匹配并装配其属性与 XML 文件中由相同名称定义的 bean。
  • byType - 它根据类型注入对象依赖项。如果属性的类型与 XML 文件中的一个 bean 名称匹配,则匹配并装配属性。
  • 构造函数 - 它通过调用类的构造函数来注入依赖项。它有大量的参数。
  • autodetect - 首先容器尝试通过构造函数使用 autowire 装配,如果不能,则尝试通过 byType 自动装配。

3.8. 自动装配有什么局限?

  • 覆盖的可能性 - 您始终可以使用<constructor-arg> 和 <property>设置指定依赖项,这将覆盖自动装配。
  • 基本元数据类型 - 简单属性(如原数据类型,字符串和类)无法自动装配。
  • 令人困惑的性质 - 总是喜欢使用明确的装配,因为自动装配不太精确。

4、注 解

4.1. 你用过哪些重要的 Spring 注解?

  • @Controller - 用于 Spring MVC 项目中的控制器类。
  • @Service - 用于服务类。
  • @RequestMapping - 用于在控制器处理程序方法中配置 URI 映射。
  • @ResponseBody - 用于发送 Object 作为响应,通常用于发送 XML 或 JSON 数据作为响应。
  • @PathVariable - 用于将动态值从 URI 映射到处理程序方法参数。
  • @Autowired - 用于在 spring bean 中自动装配依赖项。
  • @Qualifier - 使用 @Autowired 注解,以避免在存在多个 bean 类型实例时出现混淆。
  • @Scope - 用于配置 spring bean 的范围。
  • @Configuration,@ComponentScan 和 @Bean - 用于基于 java 的配置。
  • @Aspect,@Before,@After,@Around,@Pointcut - 用于切面编程(AOP)。

4.2. 如何在 spring 中启动注解装配?

默认情况下,Spring 容器中未打开注解装配。因此,要使用基于注解装配,我们必须通过配置<context:annotation-config /> 元素在 Spring 配置文件中启用它。

4.3. @Component, @Controller, @Repository, @Service 有何区别?

  • @Component:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。
  • @Controller:这将一个类标记为 Spring Web MVC 控制器。标有它的 Bean 会自动导入到 IoC 容器中。
  • @Service:此注解是组件注解的特化。它不会对 @Component 注解提供任何其他行为。您可以在服务层类中使用 @Service 而不是 @Component,因为它以更好的方式指定了意图。
  • @Repository:这个注解是具有类似用途和功能的 @Component 注解的特化。它为 DAO 提供了额外的好处。它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。

4.4. @Required 注解有什么用?

@Required 应用于 bean 属性 setter 方法。此注解仅指示必须在配置时使用 bean 定义中的显式属性值或使用自动装配填充受影响的 bean 属性。如果尚未填充受影响的 bean 属性,则容器将抛出 BeanInitializationException。

示例:

详解热门Spring 经典面试题汇总

 

4.5. @Autowired 注解有什么用?

@Autowired 可以更准确地控制应该在何处以及如何进行自动装配。此注解用于在 setter 方法,构造函数,具有任意名称或多个参数的属性或方法上自动装配 bean。默认情况下,它是类型驱动的注入。

详解热门Spring 经典面试题汇总

 

4.6. @Qualifier 注解有什么用?

当您创建多个相同类型的 bean 并希望仅使用属性装配其中一个 bean 时,您可以使用@Qualifier 注解和 @Autowired 通过指定应该装配哪个确切的 bean 来消除歧义。

例如,这里我们分别有两个类,Employee 和 EmpAccount。在 EmpAccount 中,使用@Qualifier 指定了必须装配 id 为 emp1 的 bean。

详解热门Spring 经典面试题汇总

 

EmpAccount.java

详解热门Spring 经典面试题汇总

 

4.7. @RequestMapping 注解有什么用?

@RequestMapping 注解用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类/方法。此注解可应用于两个级别:

  • 类级别:映射请求的 URL
  • 方法级别:映射 URL 以及 HTTP 请求方法

5、数据访问

5.1. spring DAO 有什么用?

Spring DAO 使得 JDBC,Hibernate 或 JDO 这样的数据访问技术更容易以一种统一的方式工作。这使得用户容易在持久性技术之间切换。它还允许您在编写代码时,无需考虑捕获每种技术不同的异常。

5.2. 列举 Spring DAO 抛出的异常。

详解热门Spring 经典面试题汇总

 

5.3. spring JDBC API 中存在哪些类?

  • JdbcTemplate
  • SimpleJdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcInsert
  • SimpleJdbcCall

5.4. 使用 Spring 访问 Hibernate 的方法有哪些?

我们可以通过两种方式使用 Spring 访问 Hibernate:

  1. 使用 Hibernate 模板和回调进行控制反转
  2. 扩展 HibernateDAOSupport 并应用 AOP 拦截器节点

5.5. 列举 spring 支持的事务管理类型

Spring 支持两种类型的事务管理:

  1. 程序化事务管理:在此过程中,在编程的帮助下管理事务。它为您提供极大的灵活性,但维护起来非常困难。
  2. 声明式事务管理:在此,事务管理与业务代码分离。仅使用注解或基于 XML 的配置来管理事务。

5.6. Spring 支持哪些 ORM 框架

  • Hibernate
  • iBatis
  • JPA
  • JDO
  • OJB

6、AOP

6.1. 什么是 AOP?

AOP(Aspect-Oriented Programming), 即 面向切面编程, 它与 OOP( Object-Oriented Programming, 面向对象编程) 相辅相成, 提供了与 OOP 不同的抽象软件结构的视角.

在 OOP 中, 我们以类(class)作为我们的基本单元, 而 AOP 中的基本单元是 Aspect(切面)

6.2. AOP 中的 Aspect、Advice、Pointcut、JointPoint 和 Advice 参数分别是什么?

详解热门Spring 经典面试题汇总

 

  1. Aspect - Aspect 是一个实现交叉问题的类,例如事务管理。方面可以是配置的普通类,然后在 Spring Bean 配置文件中配置,或者我们可以使用 Spring AspectJ 支持使用 @Aspect 注解将类声明为 Aspect。
  2. Advice - Advice 是针对特定 JoinPoint 采取的操作。在编程方面,它们是在应用程序中达到具有匹配切入点的特定 JoinPoint 时执行的方法。您可以将 Advice 视为 Spring 拦截器(Interceptor)或 Servlet 过滤器(filter)。
  3. Advice Arguments - 我们可以在 advice 方法中传递参数。我们可以在切入点中使用 args() 表达式来应用于与参数模式匹配的任何方法。如果我们使用它,那么我们需要在确定参数类型的 advice 方法中使用相同的名称。
  4. Pointcut - Pointcut 是与 JoinPoint 匹配的正则表达式,用于确定是否需要执行 Advice。Pointcut 使用与 JoinPoint 匹配的不同类型的表达式。Spring 框架使用 AspectJ Pointcut 表达式语言来确定将应用通知方法的 JoinPoint。
  5. JoinPoint - JoinPoint 是应用程序中的特定点,例如方法执行,异常处理,更改对象变量值等。在 Spring AOP 中,JoinPoint 始终是方法的执行器。

6.3. 什么是通知(Advice)?

特定 JoinPoint 处的 Aspect 所采取的动作称为 Advice。Spring AOP 使用一个 Advice 作为拦截器,在 JoinPoint “周围”维护一系列的拦截器。

6.4. 有哪些类型的通知(Advice)?

  • Before - 这些类型的 Advice 在 joinpoint 方法之前执行,并使用 @Before 注解标记进行配置。
  • After Returning - 这些类型的 Advice 在连接点方法正常执行后执行,并使用@AfterReturning 注解标记进行配置。
  • After Throwing - 这些类型的 Advice 仅在 joinpoint 方法通过抛出异常退出并使用 @AfterThrowing 注解标记配置时执行。
  • After (finally) - 这些类型的 Advice 在连接点方法之后执行,无论方法退出是正常还是异常返回,并使用 @After 注解标记进行配置。
  • Around - 这些类型的 Advice 在连接点之前和之后执行,并使用 @Around 注解标记进行配置。

6.5. 指出在 spring aop 中 concern 和 cross-cutting concern 的不同之处。

concern 是我们想要在应用程序的特定模块中定义的行为。它可以定义为我们想要实现的功能。

cross-cutting concern 是一个适用于整个应用的行为,这会影响整个应用程序。例如,日志记录,安全性和数据传输是应用程序几乎每个模块都需要关注的问题,因此它们是跨领域的问题。

6.6. AOP 有哪些实现方式?

实现 AOP 的技术,主要分为两大类:

  • 静态代理 - 指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;
  • 编译时编织(特殊编译器实现)
  • 类加载时编织(特殊的类加载器实现)。
  • 动态代理 - 在运行时在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。
  • JDK 动态代理
  • CGLIB

6.7. Spring AOP and AspectJ AOP 有什么区别?

Spring AOP 基于动态代理方式实现;AspectJ 基于静态代理方式实现。

Spring AOP 仅支持方法级别的 PointCut;提供了完全的 AOP 支持,它还支持属性级别的 PointCut。

6.8. 如何理解 Spring 中的代理?

将 Advice 应用于目标对象后创建的对象称为代理。在客户端对象的情况下,目标对象和代理对象是相同的。

Advice + Target Object = Proxy

6.9. 什么是编织(Weaving)?

为了创建一个 advice 对象而链接一个 aspect 和其它应用类型或对象,称为编织(Weaving)。在 Spring AOP 中,编织在运行时执行。请参考下图:

详解热门Spring 经典面试题汇总

 

7、MVC

7.1. Spring MVC 框架有什么用?

Spring Web MVC 框架提供 模型-视图-控制器 架构和随时可用的组件,用于开发灵活且松散耦合的 Web 应用程序。MVC 模式有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和 UI 逻辑,同时在所有这些元素之间提供松散耦合。

7.2. 描述一下 DispatcherServlet 的工作流程

DispatcherServlet 的工作流程可以用一幅图来说明:

详解热门Spring 经典面试题汇总

 

  1. 向服务器发送 HTTP 请求,请求被前端控制器 DispatcherServlet 捕获。
  2. DispatcherServlet 根据 -servlet.xml 中的配置对请求的 URL 进行解析,得到请求资源标识符(URI)。然后根据该 URI,调用 HandlerMapping 获得该 Handler 配置的所有相关的对象(包括 Handler 对象以及 Handler 对象对应的拦截器),最后以HandlerExecutionChain 对象的形式返回。
  3. DispatcherServlet 根据获得的Handler,选择一个合适的 HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的 preHandler(…)方法)。
  4. 提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据你的配置,Spring 将帮你做一些额外的工作:
  • HttpMessageConveter:将请求消息(如 Json、xml 等数据)转换成一个对象,将对象转换为指定的响应信息。
  • 数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。
  • 数据格式化:对请求消息进行数据格式化。如将字符串转换成格式化数字或格式化日期等。
  • 数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5. Handler(Controller)执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象;

6. 根据返回的ModelAndView,选择一个适合的 ViewResolver(必须是已经注册到 Spring 容器中的ViewResolver)返回给DispatcherServlet。

7. ViewResolver 结合Model和View,来渲染视图。

8. 视图负责将渲染结果返回给客户端。

7.3. 介绍一下 WebApplicationContext

WebApplicationContext 是 ApplicationContext 的扩展。它具有 Web 应用程序所需的一些额外功能。它与普通的 ApplicationContext 在解析主题和决定与哪个 servlet 关联的能力方面有所不同。

推荐阅读:

19年常问面试题汇总:JVM+微服务+多线程+锁+高并发性能(建议收藏2020必用)

据说看完这200+大厂高频面试题的Java工程师都拿到了一份满意的offer!

 

Spring Boot经典20道面试题及答案 这是一个基于 Web 的 UI,主要提供了使用可用依赖项创建新 Spring Boot 项目并下载创建为 zip 的项目的能力。例如:— 当我们在项目中添加spring-boot-starter-web依赖项时,Spring Boot 自动配置会查找 Spring MVC 是否在类路径中。通常,在控制器层我们注入服务,在服务层我们注入存储库来使用这个注解。我们可以以集中的方式做到这一点。简单地说,Spring Boot 框架的一个子项目,它使用 HTTP 端点来公开有关任何正在运行的应用程序的操作信息。 阅读详情

相关推荐

互联网大厂高频面试题基本总结回顾(含笔试高频算法整理)

1.自我介绍+项目介绍+项目细节/难点提问-------这个主要看个人的经历了,每个人都不一样 2.基础知识点考核---------还是可以去增强自己的,也是这次的主要的一些总结思路 3.算法题-----------一般都是LeetCode高频题,这个得在找工作之前的好好的练习(d对常见的高频题进行总结分析,见对应的链接提示)

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 177万+

30道Spring高频面试题,学完吊打面试官(实用干货!!!)

本文旨在为准备参加Spring框架面试的开发者提供全面的指导。Spring作为Java企业级开发的主流框架,以其轻量级、依赖注入、AOP(面向切面编程)和模块化等特性而广受欢迎。

小斜同学的博客 5604

matlab/simulink saw谐振器仿真,基于Matlab的SAW模态耦合模型的仿真研究

第32卷 第 4 期Vol. 32 No. 4重 庆 理 工 大 学 学 报 (自然科学)Journal of Chongqing University of Technology( Natural Science)2 0 1 8年 4 月Apr. 2018doi : 10.3969/j . issn. 1674-8425(z). 2018.04.002本文引用格式 :李志鹏,马龙祥,孟旭,等•基...

weixin_36192634的博客 1386

spring常见面试题(2024最新)

spring常见面试题(2023最新)

酷酷的馫博客 5万+

17【Protues单片机仿真】基于51单片机的太阳能智能谷物翻晒机器人

基于51单片机,避障,低于50CM报警,LED灯亮起,自动翻晒用光敏电阻,光照强度大,电机转动,相当于翻晒粮食,远程控制用按键代替,按下去电机就转动,相当于翻晒粮食,然后光照强度和超声波的距离都在LCD1602显示屏显示出来。

weixin_70360261的博客 1450

ERA5数据批量下载

ERA5再分析数据的IDM接管下载

qq_38734327的博客 3036

Spring高频面试题

文章持续更新中… 我们知道java之所能够有如此美好的生态,spring绝对功不可没,因为完美的和spring兼容在一起,才有了那么多丰富好用的功能。 1.AOP有哪些实现方式? AOP有两种实现方式:静态代理和动态代理。 1.1 静态代理 静态代理:代理类在编译阶段生成,在编译阶段将通知织入Java字节码中,也称编译时增强。 AspectJ使用的是静态代理。 缺点:代理对象需要与目标对象实现一样的接口,并且实现接口的方法,会有冗余代码。同时,一旦接口增加方法,目标对象与代理对象都要维护。 1.2 动态代理

zhiyikeji的博客 1409

【同等学力】01-逻辑符号表达

F(x): x是确诊者,G(x):x有症状F(x): x是老人,G(x):x是宠物,L(x,y): x喜欢y。

super_mochi1 1881

Spring面试题

推荐博客:https://blog.youkuaiyun.com/a745233700/article/details/80959716 1. Spring是什么 Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。主要包括以下七个模块: Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和

诗和远方 1万+

LVGL v8学习笔记 | 09 - 进度条控件的使用方法(bar)

lv_bar_set_range必须放在lv_bar_set_mode前面,否则不生效。bar对象的API在lv_bar.h中声明,以lv_bar_xxx命名。此事件可以用来在进度条更新值之后更新别的控件(比如进度条旁边的文字)。可以看到,默认创建的进度条值是0到100。(3)设置进度条的范围值(最大值和最小值)(2)获取进度条的起始值。(3)获取进度条的最小值。(4)获取进度条的最大值。(1)设置进度条的当前值。(2)设置进度条的起始值。(1)获取进度条当前值。(5)获取进度条的模式。

Mculover666的博客(嵌入式) 1730

博图SCL基础知识-寻址调用及新建SCL

和LAD/FBD不同,LAD/FBD在程序编辑器是一段一段的,编辑器可以插入新的网络段,每一个网络段可以有各自的注释。一般情况下,FB的简单数据类型形参可以没有对应实参,复杂数据类型的输入、输出也可以没有对应实参,所以FB可以隐藏或不隐藏不出现的形参。一般情况下,FB的简单数据类型形参可以没有对应实参,复杂数据类型的输入、输出也可以没有对应实参,所以FB可以隐藏或不隐藏不出现的形参。如图3所示,当FB的参数全部显示,在背景数据块右键可以激活"仅显示分配的参数";如图2所示,显示了一些FB调用的例子。

电工 2030

【Java超高频面试题&Spring】Spring相关高频面试题汇总

本期文章将汇总Spring相关的高频面试题,给最近需要找工作的朋友们总结一波,帮助大家全面掌握Spring核心知识点,提升竞争力,为你的面试之旅保驾护航!

longshehui的博客 1289

基于C#开发ABB机器人上位机系统:从操作控制到数据交互的全方位实现

ABB工业机器人是世界领先的自动化设备之一,广泛应用于焊接、装配、搬运、喷涂、包装等多个行业。机器人控制器:用于控制机器人运动、路径规划、状态监控等。上位机系统:提供人机交互界面,允许操作员与机器人进行交互,实现实时控制、参数调整和数据分析。上位机系统通过与机器人控制器通信,采集机器人状态数据,发送控制指令,实现远程监控和控制操作。通过高效的操作界面和数据交互,可以大大提高机器人的工作效率和系统的可维护性。基于C#开发ABB机器人上位机系统,能够实现高效的机器人控制与实时数据交互。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1180

【八股战神篇】Spring高频面试题汇总

通过分析上千篇面经、上万道面试题,提炼出排名靠前的100道面试题,我将Spring相关的面试题汇集到本篇文章。

m0_62332728的博客 1020

基于STM32F103C8T6的智能蓝牙手环系统设计与实现

摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能蓝牙手环系统。该系统集成了ADXL345加速度计、DS18B20温度传感器、plusesennor心率模块和BT06蓝牙模块,实现了心率(±2bpm)、体温(±0.5℃)、步数(±3%)等健康数据的实时监测与显示。通过OLED屏提供人机交互界面,支持蓝牙APP远程控制,具备自动步数清零、异常提醒等功能。测试表明系统各项功能均达到设计要求,响应时间0.1-0.5秒,心率检测准确率98%,体温检测准确率99%,功耗50mA(工作)/10mA(待

3254968421的博客 207

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

初级Java经典面试题汇总

## 初级Java经典面试题汇总 ### Java基础 1. Java中的基本数据类型有哪些? - byte, short, int, long, float, double, char, boolean。 2. String、StringBuilder和StringBuffer的区别是什么? - String是不可变的,StringBuilder和StringBuffer是可变的。 - StringBuilder是非线程安全的,StringBuffer是线程安全的。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 3113

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸

什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文能成为你面霸路上的垫脚石! 做 Java 开发,没有人敢小觑 Spring Boot 的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,不会?没用过? Sorry ,我们不合适! 今天松哥就给大家整理了 15 道高频 Spring Boot 面试题...

江南一点雨的专栏 8627

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Spring Boot面试题精选汇总

Spring Boot面试题精选汇总

感谢阅读 1744

Spring经典高频面试题,原来是长这个样子

本文选自《Spring 5核心原理与30个类手写实战》一书,文末参与互动有机会赢取本书。本文题目目录: 1 什么是Spring框架,Spring框架有哪些主要模块 2 使用Spring框架能带来哪些好处 3 什么是控制反转(IoC),什么是依赖注入 4 在Java中依赖注入有哪些方式 5 BeanFactory和ApplicationContext有什么区别 6 Sprin...

博文视点(北京)官方博客 2382

Java面试题2025全新汇总八股文!包含海量面试题以及高频考点!

本文整理了一份全面的Java面试题汇总,涵盖Java基础、JVM、多线程并发、Spring框架、MyBatis、SpringBoot、MySQL等核心知识点。内容包含高频面试问题和重点技术解析,如String类的区别、HashMap原理、JVM垃圾回收、线程安全实现、Spring生命周期、MyBatis缓存机制等。这份资料已帮助多人获得大厂offer,完整版PDF包含更多详细题目和笔记,可供有需要的读者直接获取。

2401_83384536的博客 1511

100道Java中高级面试题汇总+详细拆解

出自:Java面试题精选1-10期【10期】Redis 面试常见问答【09期】说说hashCode() 和 equals() 之间的关系?【08期】说说Object类下面有几种方法呢?【...

Java笔记虾 3万+

2019 最新「Spring 全家桶」高频面试题

点击上方蓝字关注我们对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难...

形势所逼,不进则退 2070

【Java超高频面试题&事务】事务相关高频面试题汇总

本期文章将汇总java事务相关的高频面试题,给最近需要找工作的朋友们总结一波,帮助大家全面掌握事务的核心知识点,提升竞争力,为你的面试之旅保驾护航!

longshehui的博客 2490

Java面试-Java 高频面试题 Top 20 汇总与解析

《Java面试高频Top20解析》是一份系统梳理Java核心技术的面试指南,涵盖基础语法、集合框架、并发编程、JVM原理、设计模式等核心领域。文章采用"理论+场景+代码"的讲解方式,重点解析了==与equals区别、ArrayList/LinkedList对比、synchronized锁机制等经典问题,并提供了面试应答技巧。作者Jinkxs结合自身面试经验,强调面试是技术深度与表达能力的综合展现,而非简单背诵答案。全文包含20个高频面试题解析,帮助开发者从源码层面理解技术本质,适合准备J

千淘万漉虽辛苦,吹尽狂沙始到金 2万+
上一篇: 扫地神僧:Java开发者如何应对多线程与高并发面试题目?
下一篇: 我3年开发经验,从字节跳动抖音组离职后,一口气拿到15家Offer
JavaAOE
博客等级 码龄7年 27粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值