首页 > 其他分享 >笔试错题记录

笔试错题记录

时间:2024-03-26 11:33:06浏览次数:28  
标签:记录 对象 Spring 笔试 模式 错题 中介 Pattern 设计模式

一、Linux相关

1. Linux删除变量的命令——unset

 

 

 

 

 

 


 

二、MySQL

1. 各种类型的索引

全文索引效率低下,只适合模糊搜索;

 

 

2. MySQL中的枚举类型

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

三、设计模式

 

1. 浏览器的事件模型使用了哪种设计模式——发布者/订阅者模式

浏览器的事件模型通常使用了观察者模式(Observer Pattern),也被称为发布-订阅模式(Publish-Subscribe Pattern)。

在浏览器中,各种事件(如鼠标点击、键盘输入、页面加载完成等)都可以被看作是事件源,而注册在这些事件上的事件处理程序则可以看作是观察者。当事件发生时,事件源会通知所有注册在其上的事件处理程序,从而触发相应的操作。

 

原型模式是一种创建型设计模式,其主要思想是通过复制现有对象来生成新对象,而不是通过实例化类来创建新对象。通过这种方式可以避免使用构造函数来创建新对象,从而提高性能并减少不必要的资源消耗。

在原型模式中,通常会定义一个抽象的原型接口,包含一个用于复制自身的方法。具体的对象类将实现这个原型接口,并实现复制自身的方法,从而使得可以基于现有对象来创建新的对象实例。

应用场景:

  1. 当创建新对象的成本较大,而且新对象与现有对象相似度很高时,可以考虑使用原型模式。例如,在某些场景下,从数据库或文件系统中读取数据来创建对象的开销较大,这时可以利用已有对象进行复制来创建新对象。
  2. 在需要动态生成对象的场景下,原型模式也很有用。例如,在一些图形编辑软件中,用户可以通过复制现有图形对象来创建新的图形对象,这就是原型模式的应用之一。
  3. 原型模式还可以用于对象的克隆,当需要生成一系列相似对象时,可以通过原型模式来快速生成这些对象的副本。

总的来说,原型模式适用于对象的创建成本较大,而且新对象与现有对象相似度高的情况下,可以通过复制现有对象来创建新对象,从而提高效率和降低资源消耗。

 

中介者模式是一种行为型设计模式,旨在减少对象之间的直接通信,通过引入一个中介者对象来协调各对象之间的交互。这种模式有助于降低对象之间的耦合度,使系统更易于维护和扩展。

在中介者模式中,对象之间不再直接相互调用,而是通过一个中介者对象来进行通信。当一个对象发生改变时,它不需要知道其他对象的存在,只需将这个改变通知给中介者对象,由中介者对象负责处理后续的交互逻辑。这样可以避免对象之间的紧耦合关系,提高系统的灵活性和可维护性。

应用场景:

  1. 当系统中对象之间存在复杂的交互关系,导致对象之间相互依赖过多、耦合度较高时,可以考虑使用中介者模式。通过引入中介者对象,可以有效地管理对象之间的通信,减少彼此之间的直接依赖。
  2. 在图形用户界面(GUI)开发中,中介者模式也经常被应用。例如,在一个包含多个组件的窗体中,各组件之间的交互可能较为复杂,这时可以引入一个中介者对象来统一管理组件之间的通信。
  3. 在多人协作系统中,如聊天室或在线游戏中,中介者模式可以用来管理用户之间的消息传递和交互,确保各用户之间的通信能够顺畅进行。
  4. 在分布式系统中,中介者模式也可以用于解耦不同节点之间的通信,通过中介者节点来协调各节点之间的消息传递。

总的来说,中介者模式适用于需要减少对象之间直接耦合、集中管理对象之间交互的场景,可以提高系统的灵活性和可维护性。

 

 

 

 

 

 

 

 

 


 

四、计算机网络

 

1. TCP/UDP报文格式

 

 

 

 

 

 

 

 


 

五、操作系统

1. 进程管理

临界资源:多个进程可以共享系统中的资源,一次仅允许一个进程使用的资源称为临界资源,如共享的数据、代码或硬件设备等;

临界区:指访问临界资源的那段代码程序,如P/V操作、加减锁等;

 

 

 

 

 

 

 

 

 

 

 

 


 

六、Spring&SpringBoot

1. Spring框架中用到了哪些设计模式

Spring 框架中使用了多种设计模式来实现其功能,其中一些常用的设计模式包括:

  1. 单例模式(Singleton Pattern):Spring 中大量使用了单例模式,确保容器中的 bean 默认是单例的,这样可以节省资源并提高性能。

  2. 工厂模式(Factory Pattern):Spring 使用工厂模式通过 BeanFactory 和 ApplicationContext 来创建和管理 bean 实例,将对象的创建和获取解耦,使得应用更加灵活。

  3. 代理模式(Proxy Pattern):Spring AOP(面向切面编程)基于代理模式实现,通过动态代理机制为目标对象织入横切关注点,实现对业务逻辑的增强。

  4. 观察者模式(Observer Pattern):Spring 事件机制就是基于观察者模式实现的,允许对象在事件发生时注册监听器,并在事件发生时得到通知。

  5. 模板方法模式(Template Method Pattern):Spring 的 JdbcTemplate 使用了模板方法模式,定义了数据库操作的算法框架,具体的 SQL 查询和更新由用户实现。

  6. 装饰器模式(Decorator Pattern):Spring 的装饰器模式体现在 AOP 中,通过切面(Aspect)为 bean 动态添加额外的功能,而不改变原有类的结构。

  7. 适配器模式(Adapter Pattern):Spring MVC 中的 HandlerAdapter 就是适配器模式的应用,用于将不同类型的处理器适配到框架中统一的处理器接口。

  8. 建造者模式(Builder Pattern):Spring 中的 RestTemplate 使用了建造者模式来构建 HTTP 请求,使得客户端能够方便地创建复杂的请求。

 

命令模式(Command Pattern)是一种行为型设计模式,旨在将请求封装成一个对象,从而使调用操作的对象与执行操作的对象解耦。在命令模式中,命令被封装成一个对象,包含了执行该命令所需的所有信息,如方法调用、参数等。命令模式广泛应用于各种应用场景,如 GUI 操作的撤销重做、多线程任务处理、网络请求处理等。通过命令模式,可以将请求封装成独立的对象,提高系统的灵活性、可扩展性和可维护性。

——但Spring框架中没怎么用到

 

工程模式好像没有这个设计模式;

 

 

 

 

 


 

标签:记录,对象,Spring,笔试,模式,错题,中介,Pattern,设计模式
From: https://www.cnblogs.com/AvavaAva/p/18096268

相关文章

  • 学点儿Java_Day10_错题重测&勘误解析
    1.下列代码语法正确的是()A.bytei=100,j=200;可以通过编译,整型变量当然可以赋值为整数.B.shorts='a'+1;可以通过编译,因为编译时'a'+1会先被计算C.finalfloatPI;PI=3.14;不可以通过编译,因为PI是常量,定义时必须赋值D.charc=12345;不可以通过......
  • 一些好用的小众软件记录
    1.电脑(Windows):搜索:everythingPDF阅读:SumatraPDF录屏生成gif:screentogif视频播放器:vlcRSS广播订阅:vlc网页视频下载:neatdownloadmanager密码管理:keepassSQLite可视化:dbbrowserSQL工具:dbeaver2.手机(安卓)广播:podcastgoPDF阅读:readera综......
  • Blazor学习记录五_组件生命周期_____
    15.组件生成周期,已由ComponentBase默认实现1.设置参数前SetParameterAsync2.初始化OnInitialized/OnInitializedAsync3.设置参数后OnParameterSet/OnParameterAsync4.通知组件渲染StateHasChanged5.组件渲染呈现后OnAfterRender/OnRenderAsync6.组件删除前DisPose......
  • pve 下的群晖虚拟机硬盘空间扩容的记录
    pve下,105号群晖虚拟机,btrfs系统,sata硬盘。虚拟机容量硬盘130G,扩展至140G,还需要命令行和网页存储管理器界面操作,以实现扩容的目的。df-hFilesystemSizeUsedAvailUse%Mountedon/dev/md07.9G1.8G6.0G23%/devtmpfs......
  • Debian配置记录
    找到了官方的debian12镜像,安装配置采用nat模式(学校网络不支持虚拟机桥接),第一次装失败,选择了桥接模式,无法启动DHCP配置第二次装失败,原因是安装最后一步选择了不将GRUB启动引导器安装到主引导记录上,安装完成启动只剩黑屏上一个光标。第二次选择安装位置为/dev/sda安装成功过程中......
  • vue自定义指令及常用自定义指令#记录
    一、什么是自定义指令在vue官方文档中是这样描述的,自定义指令主要是为了重用涉及普通元素的底层DOM访问的逻辑。自定义指令主要分为全局自定义指令和局部自定义指令。二、自定义指令相关参数Vue2.X钩子函数:bind:自定义指令绑定到DOM后调用。只调用一次,指令第一次绑定到元素......
  • vue2和vue3的主要区别#记录
    一、 vue2和vue3的区别1、vue2和vue3双向数据绑定原理发生了改变vue2 的双向数据绑定是利用ES5的一个API Object.definePropert()对数据进行劫持结合发布订阅模式的方式来实现的。vue3 中使用了es6的 ProxyAPI对数据代理。相比于vue2.x,使用proxy的优势如下de......
  • 代码随想录刷题记录4——滑动窗口和螺旋矩阵
    数组:701.二分查找27.移除元素977.有序数组的平方209.长度最小的子数组59.螺旋矩阵思路:209.长度最小的子数组只要知道要用滑动窗口的思路来写就好了!滑动窗口本质上就是双指针核心问题是考虑好窗口什么时候变大什么时候变小59.螺旋矩阵并没有什么新的算法思想,但......
  • 微机原理上机实验记录
    eg0202.asm;eg0202.asmincludeio32.inc.datacountdword12345678h,9abcdef0h,0,0,3721h.codestart:moveax,33221100hmovebx,eaxmovecx,countmovebx,offsetcountmovedx,[ebx]movesi,[ebx+4]movesi,4movedi,count[esi]movedi,[ebx+esi]movecx,[eb......
  • Python数据匹配和记录链接库之recordlinkage使用详解
    概要Python的recordlinkage库为数据匹配和记录链接提供了一个强大的工具集,使得从不同数据源识别重复或相关记录变得简单高效。这对于数据清洗、合并数据集、实体识别等任务至关重要。recordlinkage库简介recordlinkage提供了一套全面的工具来进行复杂的记录比较、匹配和......