当前位置: 首页 > news >正文

面试题目总结(二)

1. IoC 和 AOP 的区别

控制反转(Ioc) 和面向切面编程(AOP) 是两个不同的概念,它们在软件设计中有着不同的应用和目的。

  • IoC 是一种基于对象组合的编程模式,通过将对象的创建、依赖关系和生命周期等管理权交给外部容器或框架来实现程序间的解耦。IoC 的核心思想是通过翻转对象之间的控制关系,使得对象更加灵活、可扩展和易于测试。常见的 IoC 框架由 Spring、Guice等。
  • AOP 是一种基于对象代理的编程模式,通过原有代码执行流程中添加额为的逻辑来实现横向关注点的划分和重用。AOP 的核心思想是通过把分散在各个业务逻辑中的相同关注点抽象出来,以横向切割的方式描述他们,从而实现系统的解耦和复用功能。

可以看出,IoC和AOP都是为了降低程序的耦合度和提高程序的可维护性而设计的,但它们的实现方法和目的有所不同。IoC主要是通过容器或框架来管理对象之间的依赖关系和生命周期,使得对象之间的耦合度降低,从而实现程序的灵活性和可扩展性。而AOP主要是通过代理来对系统进行横向切割,将通用的关注点抽象出来,从而实现代码复用和系统的解耦。

总之,IoC和AOP都是重要的软件设计思想,它们可以帮助程序员更好地设计和维护程序。在实际应用中,IoC和AOP往往结合使用,以实现更高效、更灵活、更可维护的程序设计。

2. v-if 和 v-show 有什么区别

v-ifv-show 都是 Vue.js 提供的指令,用于控制元素的显示和隐藏。

v-if 指令根据表达式的值的真假来决定是否渲染元素。当表达式为真时,元素才会被渲染;当表达式为假时,元素不会被渲染到DOM中。v-if 的特点是可以在渲染时节省不必要的计算,因为当表达式为假时,元素不会被渲染。

v-show 指令也可以根据表达式的真假来控制元素的显示和隐藏。但是,与 v-if 不同的是,无论表达式的值是真还是假,元素都会被渲染到DOM中并且只是通过CSS样式控制元素的显示和隐藏。v-show 的特点是可以快速切换元素的显示和隐藏,但因为元素始终存在于DOM中,不需要重新渲染。

因此,如果需要频繁切换元素的显示和隐藏,建议使用 v-show,否则·建议使用 v-if

3. 八大数据结构

  1. 数组(Array):一组按顺序储存的相同类型元素的集合,可以通过索引访问。
  2. 链表(Linked List):由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。
  3. 栈(Stack):一种后劲先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
  4. 队列(Queue):一种先进先出(FIFO)的数据结构,可以在队尾插入元素,在队头删除元素。
  5. 树(Tree):由节点组成的层次结构,每个节点可以有多个子节点,其中有一个节点称称为根节点。
  6. 图(Graph):由顶点和边组成的非线性数据结构,用于表示多对多关系。
  7. 堆(Heap):一种特殊的树形数据结构,每个节点的值都大于等于(或小于等于)其子节点的值。
  8. 散列表(Hash Table):根据关键字直接访问数据的数据结构,通过散列函数将关键字映射到表中的位置。

4. 抽象类和接口的区别

5. MySQL的引擎有哪些?

MySQL 引擎是 MySQL 数据库用于储存和管理数据的核心组件,不同的引擎可以提供不同的储存方式、事物处理能力、锁定机制等功能。

  1. InnoDB 引擎:InnoDB 是 MySQL 默认的事物型储存引擎,具有 ACID(原子性、一致性、隔离性、持久性) 事物支持、行级锁、MVCC 等特性,适用于OLTP 系统、支持外键约束、热备份。
  2. MyISAM 引擎:MyISAM 不支持事物和外键约束,但具有较高的查询速度、全文索引、压缩表格等特点,适用于 OLAP 系统。
  3. Memory 引擎:Memory 引擎是基于内存的储存引擎,将表格数据保存在内存中,查询速度非常快,但需要考虑内存限制和数据持久化问题。
  4. Archive 引擎:Archive 引擎适用于储存历史数据、日志等大量数据,支持数据压缩,但不支持更新和删除操作。
  5. CSV 引擎:CSV引擎是基于 CSV 文件格式的数据存储引擎,适用于数据导入和导出,仅支持插入和删除操作。
  6. Blackhole 引擎:Blackhole 引擎是一个“黑洞”存储引擎,用于将数据传递到另一个 MySQL 实例,不实际存储数据。

不同的 MySQL 引擎适用于不同的场景场景和应用需求,需要根据具体情况进行选择和优化。

6. 索引失效的原因有哪些?

  1. 数据分布不均匀:如果索引字段的数据分布不均匀,可能导致某些索引值对应的数据量过大,而另一些索引值对应的数据量过小,这样就会影响索引的效率。
  2. 索引列数据类型不合适:如果索引列的数据类型选择不当,比如选择了较长的字符串为索引列,会增加索引存储空间、降低索引效率。
  3. 频繁的数据增删改操作:对于频繁进行数据增删改的表,索引容易失效。因为每次DML操作都会导致索引的重建或更新,从而影响性能。
  4. 数据量过大:如果表中的数据量很大,而索引设计不合理,可能导致索引的失效,因为需要扫描大量的索引页。
  5. 查询条件不符合索引规则:如果查询条件值包含了函数、操作符等,可能导致索引失效,因为数据库无法使用索引来加速这样的查询。
  6. 统计信息不准确:如果表的统计信息不准确,可能导致数据库优化器无法正确选择索引,从而导致索引失效。

相关文章:

面试题目总结(二)

1. IoC 和 AOP 的区别 控制反转(Ioc) 和面向切面编程(AOP) 是两个不同的概念,它们在软件设计中有着不同的应用和目的。 IoC 是一种基于对象组合的编程模式,通过将对象的创建、依赖关系和生命周期等管理权交给外部容器或框架来实现程序间的解耦。IoC 的…...

TrustZone概述

目录 一、概述 1.1 在开始之前 二、什么是TrustZone? 2.1 Armv8-M的TrustZone 2.2 Armv9-A Realm Management Ext...

[go 面试] Go Kit中读取原始HTTP请求体的方法

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 在Go Kit中,如果你想读取未序列化的HTTP请求体,可以使用标准的net/http包来实现。以下是一个示例,演示了如何完成这个任务: package mainimport …...

小程序如何刷新当前页面?

在小程序中,刷新当前页面通常有两种方法: 使用 wx.navigateBack 方法: wx.navigateBack({delta: 1 }) 这将返回上一页,并刷新页面。你可以通过调整 delta 参数来控制返回的页面数。例如,如果你想要返回到两页之前的页…...

ChatGPT使用路径:从新手到专家的指南

原文&精华文章&转载注明:ChatGPT与日本首相交流核废水事件-精准Prompt... hello,我是小索奇,有任何问题或者需要帮助的都可以在这里找到我或者留言哈 一、初识ChatGPT 什么是ChatGPT? ChatGPT是一种大型语言模型&…...

VsCode 调试 MySQL 源码

1. 启动 MySQL 2. 查看 MySQL 进程号 [root ~]# ps -ef | grep mysqld root 21479 1 0 Nov01 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir/usr/local/mysql/data --pid-file/usr/local/mysql/data/mysqld.pid root 26622 21479 0 …...

Mysql中的正经行锁、间隙锁和临键锁

行锁、间隙锁和临键锁是数据库中的三种不同类型的锁,三者都属于行锁,第一个一般叫他正经的行锁(《Mysql是怎样运行的》一书中的说法)。 行锁(Row Lock):行锁是指对数据表中的某一行进行的锁定操…...

最强AI之风袭来,你爱了吗?

2017年,柯洁同阿尔法狗人机大战,AlphaGo以3比0大获全胜,一代英才泪洒当场...... 2019年,换脸哥视频“杨幂换朱茵”轰动全网,时至今日AI换脸仍热度只增不减; 2022年,ChatGPT一经发布便轰动全球&a…...

时间序列预测实战(二十三)进阶版LSTM多元和单元预测(课程设计毕业设计首选)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行LSTM模型进行时间序列建模(专门为了时间序列领域新人编写的架构,简单且不同于市面上大家用GPT写的代码),包括结果可视化、支持单元预测、多元预测、模型拟合效果检测…...

Python之Appium 2自动化测试(Android篇)

一、环境搭建及准备工作 1、Appium 2 环境搭建 请参考另一篇文章: Windows系统搭建Appium 2 和 Appium Inspector 环境 2、安装 Appium-Python-Client,版本要求3.0及以上 pip install Appium-Python-ClientVersion: 3.1.03、手机连接电脑,并在dos窗口…...

chromium通信系统-ipcz系统(四)-ipcz-分层、和mojo的关系以及handle

在只有mojo的情况下, 进程间通信都是靠unix 域套接字来完成了,由于这种方式比较低效,并且不够灵活,后来引入了ipcz。 但是系统中基本上使用mojo做进程间通信,想要一步到位迁移到ipcz系统是比较困难的。 所以chrome团队…...

推荐一些研发人员经常用到的免费API接口

快递物流订阅与推送(含物流轨迹):【物流订阅与推送、H5物流轨迹、单号识别】支持单号的订阅与推送,订阅国内物流信息,当信息有变化时,推送到您的回调地址。地图轨迹支持在地图中展示包裹运输轨迹。包括顺丰…...

高薪资是跳出来的,好工作是面出来的~

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 如需要项目实战或者是体系化资源,文末名片加V! 作者:哈哥撩编程,工作十余年, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。荣誉:2022年度博客之星Top4、2023年度超级个体得主、谷歌与亚马逊开发…...

记QListWidget中QPushButton QSS样式失效的“bug”

一、场景 有一个QListWidget的列表;里面存放了若干QListWidgetItem;每个QListWidgetItem与一个自定义类对象绑定——通过QListWidget的setItemWidget()实现。自定义对象继承于QWidget,且内含QPushButton。 二、bug描述 在该QListWidget的外…...

python提取通话记录中的时间信息

您需要安装适合中文的SpaCy模型。您可以通过运行 pip install spacypython -m spacy download zh_core_web_sm来安装和下载所需的模型。 import spacy# 加载中文模型 nlp spacy.load(zh_core_web_sm)# 示例电话记录文本 text """ Agent: 今天我们解决一下这…...

DSShop移动商城网店系统 反序列化RCE漏洞复现

0x01 产品简介 DSShop是长沙德尚网络科技有限公司推出的一款单店铺移动商城网店系统,能够帮助企业和个人快速构建手机移动商城,并减少二次开发带来的成本。 以其丰富的营销功能,精细化的用户运营,解决电商引流、推广难题,帮助企业打造生态级B2C盈利模式商业平台。完备的电商…...

docker搭建node环境开发服务器

docker搭建node环境开发服务器 本文章是我自己搭建node环境开发服务器的过程记录,不一定完全适用所有人。根据个人情况,按需取用。 命名项目路径 为了方便cd到项目路径,将项目路径重命名,方便输入。 vim /etc/profile # 修改p…...

传统制造业企业如何实现数字化转型?

传统制造企业的数字化转型涉及利用数字技术来提高效率、生产力和整体业务流程。以下是实现制造业数字化转型的关键步骤和策略: 1.当前流程的评估: 确定可以从数字化转型中受益的领域。这可能包括生产流程、供应链管理、库存控制和客户关系。 评估技术集…...

面试:说一下深拷贝,浅拷贝,引用拷贝吧;Object类中的clone是哪种呢?

目录 深拷贝、浅拷贝、引用拷贝Object类的clone()方法 深拷贝、浅拷贝、引用拷贝 ● 浅拷贝: 对基本数据类型进行值传递; 对引用类型,复制了一份引用类型的变量 里面存储的内存地址一样 指向的对象也一样。 ● 深拷贝:对基本数据…...

接口压测指南

接口压测指南 一、 为什么需要进行接口压测二 、接口压测的目标是什么三、 用什么工具进行接口压测四、 接口压测核心指标4.1 JMeter的报告模板4.2 ApiPost报告模板 五、 接口慢如何排查5.1 大体排查思路5.2 排查工具5.3 压测经验 一、 为什么需要进行接口压测 突然有一天领导…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

智能体革命:企业如何构建自主决策的AI代理?

OpenAI智能代理构建实用指南详解 随着大型语言模型&#xff08;LLM&#xff09;在推理、多模态理解和工具调用能力上的进步&#xff0c;智能代理&#xff08;Agents&#xff09;成为自动化领域的新突破。与传统软件仅帮助用户自动化流程不同&#xff0c;智能代理能够自主执行工…...

RFID推动新能源汽车零部件生产系统管理应用案例

RFID推动新能源汽车零部件生产系统管理应用案例 一、项目背景 新能源汽车零部件场景 在新能源汽车零部件生产领域&#xff0c;电子冷却水泵等关键部件的装配溯源需求日益增长。传统 RFID 溯源方案采用 “网关 RFID 读写头” 模式&#xff0c;存在单点位单独头溯源、网关布线…...

Linux——TCP和UDP

一、TCP协议 1.特点 TCP提供的是面向连接、可靠的、字节流服务。 2.编程流程 &#xff08;1&#xff09;服务器端的编程流程 ①socket() 方法创建套接字 ②bind()方法指定套接字使用的IP地址和端口。 ③listen()方法用来创建监听队列。 ④accept()方法处理客户端的连接…...

C#调用Rust动态链接库DLL的案例

C#调用Rust动态链接库DLL的案例 项目概述 这是一个演示C#调用Rust动态链接库DLL的项目&#xff0c;包含&#xff1a; C#主程序 (Program.cs)Rust动态链接库 (rust_to_csharp目录) 使用C#创建一个net9的控制台项目&#xff0c;不使用顶级语句 dotnet new console --framewo…...