面试题30天打卡-day10

news/2024/10/30 9:27:10/

1、String 和 StringBuffer、StringBuilder 的区别是什么?

String、StringBuffer、StringBuilder主要的区别在于执行效率和线程安全上。

String:String字符串常量,意味着它是不可变的,导致每次对String都会生成新的String对象,执行效率低。

StringBuffer: 它是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量

StringBuilder: 它作为一种可变字符串类型,它和String的不同在于StringBuilder可以对字符串进行,拼接、反序、替换、删减、插入等操作,进行操作时每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象。

执行速度线程安全使用场景
String最差安全少量的字符串操作
StringBuffer中等安全多线程下的大量字符串操作
StringBuilder最快不安全单线程下的大量字符串操作

2、MySQL 中的索引是怎么实现的?B+ 树是什么,B 树和 B+ 树的区别,为什么 MySQL 要用 B+ 树?

在MySQL中索引主要是通过B+树实现,

B+树和B树的区别是:

  1. B树的节点(根节点/父节点/中间节点/叶子节点)中没有重复元素,B+树有。
  2. B树的中间节点会存储数据指针信息,而B+树只有叶子节点才存储。
  3. B+树的每个叶子节点有一个指针指向下一个节点,把所有的叶子节点串在了一起。

3、Spring 框架中都用到了哪些设计模式?

(1)工厂模式:Spring使用工厂模式,通过BeanFactory和ApplicationContext来创建对象

(2)单例模式:Bean默认为单例模式

(3)策略模式:例如Resource的实现类,针对不同的资源文件,实现了不同方式的资源获取策略

(4)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术

(5)模板方法:可以将相同部分的代码放在父类中,而将不同的代码放入不同的子类中,用来解决代码重复的问题。比如RestTemplate, JmsTemplate, JpaTemplate

(6)适配器模式:Spring AOP的增强或通知(Advice)使用到了适配器模式,Spring MVC中也是用到了适配器模式适配Controller

(7)观察者模式:Spring事件驱动模型就是观察者模式的一个经典应用。

(8)桥接模式:可以根据客户的需求能够动态切换不同的数据源。比如我们的项目需要连接多个数据库,客户在每次访问中根据需要会去访问不同的数据库


http://www.ppmy.cn/news/48120.html

相关文章

网络工程师经常搞混的路由策略和策略路由,两者到底有啥区别?

当涉及到网络路由时,两个术语经常被混淆:策略路由和路由策略。虽然这些术语听起来很相似,但它们实际上有着不同的含义和用途。在本文中,我们将详细介绍这两个术语的区别和应用。 一、路由策略 路由策略是指一组规则,用…

十大排序算法之插入排序、希尔排序、选择排序

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构初阶(C实现)】 本篇主要讲解八大排序算法中的三种排序,分别是:插入排序、希尔排…

高并发的程序设计-系统设计层面

高并发的程序设计-系统设计层面 目录概述需求: 设计思路实现思路分析1.主要指标二、处理高并发的方案 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better …

【C++类和对象】类和对象(上) {初识面向对象,类的引入,类的定义,类的访问限定符,封装,类的作用域,类的实例化,类对象模型,this指针}

一、面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。…

如何将项目提交到别人的仓库

大纲: 1、在gitee中克隆(clone)别人仓库的代码。 首先,进入别人的仓库,点击 克隆/下载 2、在你存放项目的文件夹下克隆你刚刚复制的代码 (右键点击Git Clone即可) 点击OK 就开始克隆了 克隆成功之后,文件上…

springboot+vue准妈妈孕期交流平台(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的准妈妈孕期交流平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:…

【Spring Boot】SpringBoot 优雅整合Swagger Api 自动生成文档

文章目录 前言一、添加 Swagger 依赖二、创建接口类三、添加 Swagger 配置类四、访问 Swagger 页面五、整合一个更友好的UI接口文档 Knife4j1、添加 Knife4j 依赖2、添加 Knife4j 配置类3、访问 Knife4j 页面 总结 前言 Swagger 是一套 RESTful API 文档生成工具,可…

ChatGPT原理详解+实操

言 ChatGPT已近火了快大半年了,从去年刚出来的时候小编就关注了一下,也具体的使用过,然后就惊为天人,再然后就没有然后了,因为小编那段时间沉迷于AIGC了。ChatGPT今年开年后更是火的一塌糊涂,无论是行业内…