一、Linux相关
1. Linux删除变量的命令——unset
二、MySQL
1. 各种类型的索引
全文索引效率低下,只适合模糊搜索;
2. MySQL中的枚举类型
三、设计模式
1. 浏览器的事件模型使用了哪种设计模式——发布者/订阅者模式
浏览器的事件模型通常使用了观察者模式(Observer Pattern),也被称为发布-订阅模式(Publish-Subscribe Pattern)。
在浏览器中,各种事件(如鼠标点击、键盘输入、页面加载完成等)都可以被看作是事件源,而注册在这些事件上的事件处理程序则可以看作是观察者。当事件发生时,事件源会通知所有注册在其上的事件处理程序,从而触发相应的操作。
原型模式是一种创建型设计模式,其主要思想是通过复制现有对象来生成新对象,而不是通过实例化类来创建新对象。通过这种方式可以避免使用构造函数来创建新对象,从而提高性能并减少不必要的资源消耗。
在原型模式中,通常会定义一个抽象的原型接口,包含一个用于复制自身的方法。具体的对象类将实现这个原型接口,并实现复制自身的方法,从而使得可以基于现有对象来创建新的对象实例。
应用场景:
- 当创建新对象的成本较大,而且新对象与现有对象相似度很高时,可以考虑使用原型模式。例如,在某些场景下,从数据库或文件系统中读取数据来创建对象的开销较大,这时可以利用已有对象进行复制来创建新对象。
- 在需要动态生成对象的场景下,原型模式也很有用。例如,在一些图形编辑软件中,用户可以通过复制现有图形对象来创建新的图形对象,这就是原型模式的应用之一。
- 原型模式还可以用于对象的克隆,当需要生成一系列相似对象时,可以通过原型模式来快速生成这些对象的副本。
总的来说,原型模式适用于对象的创建成本较大,而且新对象与现有对象相似度高的情况下,可以通过复制现有对象来创建新对象,从而提高效率和降低资源消耗。
中介者模式是一种行为型设计模式,旨在减少对象之间的直接通信,通过引入一个中介者对象来协调各对象之间的交互。这种模式有助于降低对象之间的耦合度,使系统更易于维护和扩展。
在中介者模式中,对象之间不再直接相互调用,而是通过一个中介者对象来进行通信。当一个对象发生改变时,它不需要知道其他对象的存在,只需将这个改变通知给中介者对象,由中介者对象负责处理后续的交互逻辑。这样可以避免对象之间的紧耦合关系,提高系统的灵活性和可维护性。
应用场景:
- 当系统中对象之间存在复杂的交互关系,导致对象之间相互依赖过多、耦合度较高时,可以考虑使用中介者模式。通过引入中介者对象,可以有效地管理对象之间的通信,减少彼此之间的直接依赖。
- 在图形用户界面(GUI)开发中,中介者模式也经常被应用。例如,在一个包含多个组件的窗体中,各组件之间的交互可能较为复杂,这时可以引入一个中介者对象来统一管理组件之间的通信。
- 在多人协作系统中,如聊天室或在线游戏中,中介者模式可以用来管理用户之间的消息传递和交互,确保各用户之间的通信能够顺畅进行。
- 在分布式系统中,中介者模式也可以用于解耦不同节点之间的通信,通过中介者节点来协调各节点之间的消息传递。
总的来说,中介者模式适用于需要减少对象之间直接耦合、集中管理对象之间交互的场景,可以提高系统的灵活性和可维护性。
四、计算机网络
1. TCP/UDP报文格式
五、操作系统
1. 进程管理
临界资源:多个进程可以共享系统中的资源,一次仅允许一个进程使用的资源称为临界资源,如共享的数据、代码或硬件设备等;
临界区:指访问临界资源的那段代码程序,如P/V操作、加减锁等;
六、Spring&SpringBoot
1. Spring框架中用到了哪些设计模式
Spring 框架中使用了多种设计模式来实现其功能,其中一些常用的设计模式包括:
-
单例模式(Singleton Pattern):Spring 中大量使用了单例模式,确保容器中的 bean 默认是单例的,这样可以节省资源并提高性能。
-
工厂模式(Factory Pattern):Spring 使用工厂模式通过 BeanFactory 和 ApplicationContext 来创建和管理 bean 实例,将对象的创建和获取解耦,使得应用更加灵活。
-
代理模式(Proxy Pattern):Spring AOP(面向切面编程)基于代理模式实现,通过动态代理机制为目标对象织入横切关注点,实现对业务逻辑的增强。
-
观察者模式(Observer Pattern):Spring 事件机制就是基于观察者模式实现的,允许对象在事件发生时注册监听器,并在事件发生时得到通知。
-
模板方法模式(Template Method Pattern):Spring 的 JdbcTemplate 使用了模板方法模式,定义了数据库操作的算法框架,具体的 SQL 查询和更新由用户实现。
-
装饰器模式(Decorator Pattern):Spring 的装饰器模式体现在 AOP 中,通过切面(Aspect)为 bean 动态添加额外的功能,而不改变原有类的结构。
-
适配器模式(Adapter Pattern):Spring MVC 中的 HandlerAdapter 就是适配器模式的应用,用于将不同类型的处理器适配到框架中统一的处理器接口。
-
建造者模式(Builder Pattern):Spring 中的 RestTemplate 使用了建造者模式来构建 HTTP 请求,使得客户端能够方便地创建复杂的请求。
命令模式(Command Pattern)是一种行为型设计模式,旨在将请求封装成一个对象,从而使调用操作的对象与执行操作的对象解耦。在命令模式中,命令被封装成一个对象,包含了执行该命令所需的所有信息,如方法调用、参数等。命令模式广泛应用于各种应用场景,如 GUI 操作的撤销重做、多线程任务处理、网络请求处理等。通过命令模式,可以将请求封装成独立的对象,提高系统的灵活性、可扩展性和可维护性。
——但Spring框架中没怎么用到
工程模式好像没有这个设计模式;
标签:记录,对象,Spring,笔试,模式,错题,中介,Pattern,设计模式 From: https://www.cnblogs.com/AvavaAva/p/18096268