![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典面试题目
安无名
这个作者很懒,什么都没留下…
展开
-
经典面试题目:Spring MVC中的常用注解
RestController(Rest控制器):将控制器声明为 RESTController ,它的元注解中包括@Controller和@ResponseBody注解,实际效果是为该控制器类中的所有方法添加@ResponseBody注解。原创 2023-10-09 16:59:33 · 148 阅读 · 0 评论 -
经典面试题目:Spring Boot是如何实现自动配置的
2.spring.factories文件:Spring Boot的自动配置类信息通常被定义在spring.factories文件中,该文件位于META-INF目录下。4.自动配置机制的执行顺序为:启动项目>加载spring.factories文件>条件评估>激活符合条件的自动配置类>生成Bean定义>应用自动配置>完成自动。1.自动配置类:Spring Boot提供了大量的自动配置类,这些类包含了针对各种场景的配置。3.条件化注解:Spring Boot使用条件化注解来确定是否需要应用某个自动配置类。原创 2023-10-09 14:44:51 · 101 阅读 · 0 评论 -
经典面试题目:BeanFactory和FactoryBean的关系
3.FactoryBean是一个特殊的工厂接口,用于创建和管理特定类型的对象,允许定制化对象创建逻辑,并将工厂本身作为Bean进行管理。4.在实际使用中,BeanFactory是Spring的核心容器接口,而FactoryBean则是一种用于创建定制化对象的机制。BeanFactory和FactoryBean都是Spring框架中用于管理和创建对象的重要接口,但它们的作用和用途有所不同。2.BeanFactory是IOC容器的核心接口,职责包括:实例化、定位、配置应用程序中的对象建立这些对象间的依赖。原创 2023-10-09 14:34:17 · 165 阅读 · 0 评论 -
经典面试题目:介绍一下@Autowired的Bean匹配机制
Autowired的Bean匹配机制是指在执行依赖注入之前,Spring容器会根据被注入字段,方法参数的类型来查找匹配的Bean。3.如果类型匹配的实例有多个,且无法选出唯一的,则转为根据Bean的名称匹配。>查看是否有@Qualifier注解,有则按其指定规则匹配。>查看是否有@Primary注解,有则按其指定规则匹配。>有匹配类型,对应的实例有1个,则注入。>如果名称匹配成功就注入,反之注入失败。>若没有匹配类型,则注入失败。原创 2023-10-09 14:24:16 · 109 阅读 · 0 评论 -
经典面试题目:为什么Spring不建议使用字段注入
2.可能导致空指针异常:一个Bean的初始顺序为静态变量或静态代码块>实例变量或初始化语句块>构造方法>字段注入。3.不利于测试:在单元测试中,为了隔离被测试类与外部依赖之间的耦合,常常需要模拟依赖对象字段注入会使得测试类无法直接通过构造器或方法注入模拟对象,从而增加了测试的复杂性。1.Spring框架支持三种主要的注入方式:字段注入、构造器注入、setter方法注入。4.无法注入final字段:字段注入无法用于注入final字段,这会限制一些设计和测试的可能性。原创 2023-10-09 14:17:18 · 210 阅读 · 0 评论 -
经典面试题目:介绍一下Spring支持的依赖注入方式
字段注入在实际使用中比较简便,但也可能降低代码的可测试性和清晰度,因为字段通常私有;构造器注入强制要求依赖在对象创建时就需要提供,适用于必须得依赖关系;setter方法注入适用于可选性依赖或需要在对象创建后才能设置的情况;容器会调用目标类的setter方法,将依赖项注入到目标类的属性中;在创建对象实例时,容器会通过构造器参数来解析和注入依赖项;字段注入、构造器注入、setter方法。原创 2023-10-09 10:49:26 · 33 阅读 · 0 评论 -
经典面试题目:Spring框架中@Bean和@Component的区别
在Spring框架中,@Bean注解和@Component注解均用于定义Bean,但是添加的位置和应用的场景不同。@Component注解主要用于在类前隐式的配置Bean。将声明集中在一个(或几个)地方,方便统一管理Bean;1.@Bean注解主要用于在配置类中显式配置Bean。可用于所有类(包括第三方工具包中的类);3.实际应用中,通常都是两种方式混合使用。位置分散,不便于统一管理;可以添加在方法和注解前;适合非常快速的开发;原创 2023-10-09 10:27:48 · 28 阅读 · 0 评论 -
经典面试题:介绍一下对Spring IOC 和 DI的理解
这道题目是 Spring 框架的基础面试题,旨在考察应试者对 Spring 框架核心概念的理解。在 Spring IOC中,不再是应用程序直接控制对象的创建和管理,而是讲这些控制权交给Spring 容器。DI是Spring框架实现控制反转(IOC)的一种方式,被反转的是一个对象获取其依赖对象的流程。Spring IOC容器负责实例化对象,解决对象之间的依赖关系,并管理对象的生命周期。Spring 框架提供了一种基于注解的,声明式的依赖注入方式,称为Spring DI。2.Spring DI的理解。原创 2023-10-09 10:21:06 · 72 阅读 · 1 评论 -
经典面试题目:Spring IOC的好处
1.松耦合性:IOC降低了对象之间的紧密耦合性,对象不再直接创建和管理他们的依赖,而是通过容器来完成。总得来说,Spring IOC通过控制权从应用程序中转移到容器中,带来了更好的可维护性,灵活性和重用性,有助于构建高质量,可扩展和易于维护的应用程序。3.灵活性:通过配置文件或者注解,你可以在不修改代码的情况下改变对象的行为。2.可维护性:由于对象创建和管理由容器负责,代码的结构更清晰,逻辑更集中。你可以通过将相同的组件配置到不同的环境中,实现代码的重用。原创 2023-10-09 09:36:05 · 35 阅读 · 1 评论 -
经典面试题目:I/O的流分支
字符流:(Character Stream):以字符为单位进行读写操作,适用于处理文本数据,能够正确处理字符编码和跨平台的字符表示。字节流:(Byte Stream):以字节为单位进行读写操作,适用于处理二进制数据或字节流形式的文本数据。处理流:(Processing Stream):对已存在的流进行包装,提供了额外的功能或对数据进行处理。节点流:(Node Stream):直接与数据源或目标进行交互,可以读写字节或字符。输出流:(Output Stream):用于将程序中的数据输出到外部。原创 2023-10-08 17:46:04 · 35 阅读 · 1 评论 -
经典面试题目:如何精准处理小数
在上述示例中,使用double类型进行0.1和0.2的相加,由于浮点数的精度限制,计算结果会产生舍入误差,得到一个略微不精准的结果,而使用BigDecimal进行相加时,精确的标识了0.1和0.2并得到了准确的计算结果。BigDecimal 是Java中的一个类,用于进行高精度的数值计算。它提供了一种精准表示和操作任意精度的十进制的方式,避免了使用浮点数在精度和舍入误差上可能存在的问题。在需要精确计算,特别是涉及货币,财务或其他小数点的场景时,使用BigDecimal更可靠,避免浮点数带来的舍入误差。原创 2023-10-08 16:52:52 · 40 阅读 · 1 评论 -
经典面试题目:String和StringBuilder区别
性能:由于String 的不可变性,每次对String 进行拼接,替换或者删除时,都会创建新的String 对象,导致内存的频繁分配和回收,性能较低。而StringBuilder 允许原地修改字符串,避免了这种性能损耗,在大量字符串操作时通常比String 效率更高。可变性:String 是不可变类,即一旦创建,其值不可更改。没次对String进行修改时,都会创建一个新的String对象。而StringBuilder 是可变类,允许对字符串进行原地修改,避免了频繁创建新的对象。原创 2023-10-08 16:39:47 · 32 阅读 · 1 评论 -
经典面试题目:说出String的5个常用API 方法
substring(int beginIndex , int endIndex):该方法返回指定索引范围内的子字符串。其中,beginIndex表示子字符串的起始索引(包括),endIndex表示子字符串的结束索引(不包括)。indexOf(String str):该方法用于查找指定字符串在原字符串中的索引位置。使用方法: String subStr = str.substring(beginIndex,beginIndex);length():该方法返回字符串的长度,即字符串中字符的个数。原创 2023-10-08 15:37:23 · 42 阅读 · 1 评论 -
经典面试题目:equals 和 ==
3.在比较对象是,通常应该使用“equals”方法比较内容相等性,而不是使用“==”操作符来比较引用相等性。2.“equals”方法用于比较对象的内容是否相等,通常需要重写以满足自定义的相等性标准。1.“==”操作符用于引用是否相等,比较的是对象在内存中的地址。4.但对于基本数据类型,可以使用“==”操作符来比较它们的值。原创 2023-10-08 15:17:09 · 83 阅读 · 1 评论 -
经典面试题目:Java是如何实现多继承的
在Java中,类是单独继承的,既一个类只能继承自一个父类。然而,通过接口的使用,Java可以实现多继承的效果。类可以实现多个接口中的方法,从而获得多个接口定义的行为和功能。这种机制提供了灵活性和可扩展性,使得Java在面对多继承需求时能够更好的满足设计和开发的需求。原创 2023-10-08 14:39:57 · 38 阅读 · 1 评论 -
经典面试题目:接口和抽象类的区别
方法实现:抽象类可以包含实现的方法和抽象的方法。接口只能包含抽象的方法,不包含具体的方法实现。所有的方法都隐式地被声明为抽象方法,不需要使用 abstract 关键字。实现接口的类必须提供方法的具体实现。Java8引入了接口中的静态方法和默认方法,使得接口具备了一定的实现能力。继承关系:抽象类通过使用 extends 关键字继承其他类或者抽象类。接口通过使用 implements 关键字实现一个或多个接口。声明方法:抽象类使用 abstract 关键字进行声明,使用 class 关键字定义类。原创 2023-10-08 14:36:05 · 49 阅读 · 1 评论 -
经典面试题目:Java基本类型
整数类型:包括byte, short , int 和 long,用于表示整数值。浮点类型:包括float 和double ,用于表示带有小数部分的数值。布尔类型:boolean ,用于表示真或假的逻辑值。字符类型:char ,用于表示单个字符。原创 2023-10-08 14:13:35 · 30 阅读 · 1 评论 -
经典面试题目:重写和重载的区别
功能:重写用于在子类中重新定义父类的方法,可以根据子类的需要实现不同的功能。重载用于处理同一个类中不同的输入环境,通过参数的差异来选择不同的方法。重载是在编译时静态绑定的,根据传入的参数类型和个数来选择合适的方法。方法签名:重写要求子类与父类方法具有相同的方法签名,包括方法名,参数类别和返回类型。定义:重写是指在子类中重新定义父类的方法,方法名,参数列表和返回值类型都相同。重载是在同一个类中定义多个方法,方法名相同但参数列表不同。重写用于子类对父类方法的重新定义,重载用于同一个类中多个方法的差异处理。原创 2023-10-08 14:27:37 · 82 阅读 · 1 评论