您现在的位置是:首页 > 正文

每日五问(java)

2024-01-30 20:15:04阅读 2

一.spring如果有两个id相同的bean会报错吗
首先,在同一个 XML 配置文件里面,不能存在 id 相同的两个 bean,否则 spring容器启动的时候会报错,因为 id 这个属性表示一个 Bean 的唯一标志符号,所以 Spring 在启动的时候会去验证 id 的唯一性,一旦发现重复就会报错,这个错误发生 Spring 对 XML 文件进行解析转化为 BeanDefinition 的阶段。但是在两个不同的 Spring 配置文件里面,可以存在 id 相同的两个 bean。 IOC容器在加载 Bean 的时候,默认会多个相同 id 的 bean 进行覆盖。
在 Spring3.x 版本以后,这个问题发生了变化我们知道 Spring3.x 里面提供@Configuration 注解去声明一个配置类,然后使用@Bean 注解实现 Bean 的声明,这种方式完全取代了 XMl。在这种情况下,如果我们在同一个配置类里面声明多个相同名字的bean,在Spring IOC 容器中只会注册第一个声明的 Bean 的实例。后续重复名字的 Bean 就不会再注册了。像这样一段代码,在 Spring IOC 容器里面,只会保存 UserService01 这个实例,后续相同名字的实例不会再加载
如果使用@Autowired 注解根据类型实现依赖注入,因为 IOC 容器只有UserService01的实例,所以启动的时候会提示找不到UserService02这个实例
如果使用@Resource 注解根据名词实现依赖注入,在 IOC 容器里面得到的实例对象是 UserService01,于是 Spring 把 UserService01 这个实例赋值给 UserService02,就会提示类型
不匹配错误这个错误,是在 Spring IOC 容器里面的 Bean 初始化之后的依赖注入阶段发生的。
二.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
不同的xml映射文件的id可以重复,因为实际命名namespace+id,而namespace在不同的xml映射文件中不能重复,并且namespace不能为空,所以在不同的xml映射文件中id可以重复
三.Bean的实例化方式
Spring为Bean提供了多种实例化方式,通常包括4种方式。(也就是说在Spring中为Bean对象的创建准备了多种方案,目的是:更加灵活)
● 第一种:通过构造方法实例化
● 第二种:通过简单工厂模式实例化
● 第三种:通过factory-bean实例化
● 第四种:通过FactoryBean接口实例化
四. BeanFactory和FactoryBean的区别
BeanFactory
Spring IoC容器的顶级对象,BeanFactory被翻译为“Bean工厂”,在Spring的IoC容器中,“Bean工厂”负责创建Bean对象。
BeanFactory是工厂。
FactoryBean:它是一个Bean,是一个能够辅助Spring实例化其它Bean对象的一个Bean。
在Spring中,Bean可以分为两类:
● 第一类:普通Bean
● 第二类:工厂Bean(记住:工厂Bean也是一种Bean,只不过这种Bean比较特殊,它可以辅助Spring实例化其它Bean对象。)
五.String、StringBuffer、StringBuilder区别
关于 String、StringBuffer、StringBuilder 的区别,我想从四个角度来说明。
第一个,可变性。String 内部的 value 值是 final 修饰的,所以它是不可变类。所以每次修改 String的值,都会产生一个新的对象。StringBuffer 和 StringBuilder 是可变类,字符串的变更不会产生新的对象
第二个,线程安全性。
String 是不可变类,所以它是线程安全的。StringBuffer 是线程安全的,因为它每个操作方法都加了synchronized 同步关键字。
StringBuilder 不是线程安全的,所以在多线程环境下对字符串进行操作,应该使用 StringBuffer,否则使用 StringBuilder
第三个,性能方面。
String 的性能是最的低的,因为不可变意味着在做字符串拼接和修改的时候,需要重新创建新的对象以及分配内存。
其次是 StringBuffer 要比 String 性能高,因为它的可变性使得字符串可以直接被修改最后是 StringBuilder,它比 StringBuffer 的性能高,因为 StringBuffer 加了同步锁
第四个,存储方面。
String 存储在字符串常量池里面
StringBuffer 和 StringBuilder 存储在堆内存空间。

网站文章

  • 操作系统 进程的描述与控制

    本系列是计算机操作系统的笔记 采用的书是《计算机操作系统》汤子瀛第二章 进程的描述与控制2.1前驱图和程序执行2.1.1前驱图1. 所谓前驱图,是指一个有向无循环图,可记为DAG(Directed Acyclic Graph),它用于描述进程之间执行的先后顺序。2.1.2程序顺序执行 程序的顺序执行 程序顺序执行时的特征 顺序性 封闭性 可再现性 2.1.3 程序并发执行 程序的并发执行 程序并发

    2024-01-30 20:14:57
  • Laravel - 队列应用及踩过的坑

    Laravel - 队列应用及踩过的坑

    Laravel 自己实现了队列的机制,如果要看源码解析,这两篇文章写的很好。 https://laravel-china.org/articles/4169/analysis-of-laravel-m...

    2024-01-30 20:14:29
  • Centos7安装Redis单节点

    Centos7安装Redis单节点

    Centos7安装Redis单节点下载Redis安装包服务器中使用wget直接下载解压安装gcc依赖编译&安装修改默认配置文件启动Redis连接客户端停止Redis下载Redis安装包Redis官网地址:https://redis.io/这里下载最新的5.0.5版本。下载地址:服务器中使用wget直接下载服务器需要能够访问外网,可以参考VirtualBox配置Centos7固定...

    2024-01-30 20:14:23
  • 计算机中丢失mplugin.dll,安装MathType时提示缺少Mplugin.dll文件

    计算机中丢失mplugin.dll,安装MathType时提示缺少Mplugin.dll文件

    MathType在编辑数学公式确实很方便,因为它的功能很强大,能够进行多种数学符号编辑。但是MathType在使用安装时也有很多朋友遇到了很多问题,比如Mplugin.dll文件缺失,这样就导致了Ma...

    2024-01-30 20:14:16
  • Python基础学习:逻辑回归理论(第一天)

    Python基础学习:逻辑回归理论(第一天)

    Python基础学习:逻辑回归理论(第一天)1文章内容Python基础学习:逻辑回归理论(第一天)[^1]1.逻辑回归理论简介2.逻辑回归应用2.1 简单示例2.1.1 导入库函数2.1.2 创建实例...

    2024-01-30 20:13:46
  • Python基础专栏11-python基础篇-复合数据类型-集合

    Python基础专栏11-python基础篇-复合数据类型-集合

    今天要讲解的内容是另外一种数据结构类型-集合,集合这个概念对于大家来说,应该不陌生;在数学当中,我们已经学过这个概念,也大概应该知道集合的作用;集合是一个存放数据的容器,并且集合当中也是可以存放任何数据类型的数据,集合的特点是无序性和唯一性,集合当中的元素是没有顺序的,不能按照索引位置进行元素访问,唯一性是指集合当中的元素是不重复的。这一点也是经常被用作数据去重。...

    2024-01-30 20:13:39
  • HTML实体编码、URL编码、正则表达式、状态码总结

    编码是指将数字和字符通过一定的转换后使其能够在计算机中进行展示的行为,因为计算机只能识别0,1的信号,所以输入计算机中的信息都要转换成0,1串的形式才能被计算机识别。在计算机中,编码的本质是用来保存或...

    2024-01-30 20:13:32
  • 超燃!高效 MacBook 工作环境配置,超实用!

    超燃!高效 MacBook 工作环境配置,超实用!

    关注“Java后端技术全栈”回复“面试”获取最新资料回复“加群”邀您进技术交流群工欲善其事,必先利其器,工具永远都是用来解决问题的,没必要为了工具而工具,一切工具都是为了能快速准确的完成...

    2024-01-30 20:13:04
  • 做了3年Java的朋友跳槽天猫,拿下offer(面经总结)

    做了3年Java的朋友跳槽天猫,拿下offer(面经总结)

    很多人去面试之前都很做足准备,下面就分享一次,从面试中,其实可以看得出来现在的公司对于面试者的知识体系要求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 天猫一面: 第一步先自我介绍? 介绍自己...

    2024-01-30 20:12:56
  • 网站打开速度缓慢的原因都有哪些?

    网站打开速度缓慢的原因都有哪些?

    网站打开速度缓慢的原因都有哪些?

    2024-01-30 20:12:48