技术周总结 09.16~09.22 周日(架构 C# 数据库)
文章目录
- 一、09.16 周一
- 1.1)问题01: 软件质量属性中"质量属性场景"、"质量属性环境分析"、"质量属性效用树"、"质量属性需求用例分析"分别是什么?
- 1.2)问题02: 软件质量属性中 ATTM(架构权衡分析方法)介绍?
- ATAM 的主要目标
- ATAM 的核心概念
- ATAM 的评估流程
- 1. **阶段 0:准备工作**
- 2. **阶段 1:介绍与需求确认**
- 3. **阶段 2:架构驱动的评估**
- 4. **阶段 3:权衡分析与报告**
- ATAM 的评估输出
- ATAM 的优点
- ATAM 的局限性
- 总结
- 二、09.19 周四
- 2.1) 面向对象系统建模中,用例之间的关系有哪些?要怎么理解
- 用例之间的关系类型:
- 题目中“选择专业”与“登录系统”用例之间的关系:
- 题目中“参加模拟考试”与“批阅答卷”用例之间的关系:
- 2.2)类之间的关系及示意图
- 1. **关联(Association)**
- 2. **聚合(Aggregation)**
- 3. **组合(Composition)**
- 4. **依赖(Dependency)**
- 5. **继承/泛化(Generalization/Inheritance)**
- 6. **实现(Realization)**
- 关系的总结与应用
- 三、09.21 周六
- 3.1)问题01: resx文件是什么文件,有什么作用?
- 示例
- 使用方法
- 四、06.22 周日
- 4.1) 问题01: 数据库理论中的关系代数表达式
一、09.16 周一
1.1)问题01: 软件质量属性中"质量属性场景"、“质量属性环境分析”、“质量属性效用树”、"质量属性需求用例分析"分别是什么?
在软件工程中,为了确保软件产品的质量,通常会采用多种技术和方法来描述和评估软件的质量属性。以下是对“质量属性场景”、“质量属性环境分析”、“质量属性效用树”以及“质量属性需求用例分析”的解释:
-
质量属性场景 (Quality Attribute Scenarios):
- 质量属性场景是一种用来描述软件在特定条件下表现的技术。
- 通常包括三个主要组成部分:刺激(stimulus)、操作(operator)和响应(response)。
- 刺激是指外部输入或触发事件;操作是系统内部的处理逻辑;响应是系统对外部刺激的输出或反应。
- 通过构建具体的情景来评估软件在不同条件下的行为,以确保其满足预期的质量要求。
-
质量属性环境分析 (Environmental Analysis for Quality Attributes):
- 这一术语可能并不常见,但它可以理解为对软件运行环境的分析,目的是确定环境因素如何影响软件的质量属性。
- 分析的内容可能包括硬件平台、操作系统版本、网络条件等,这些都可能对软件的性能、可靠性、安全性等产生影响。
- 环境分析有助于识别潜在的风险,并提前采取措施进行规避。
-
质量属性效用树 (Utility Tree for Quality Attributes):
- 效用树是一种图形化的表示方法,用来描述软件质量属性及其子属性之间的层次关系。
- 通过构建一棵树形结构,可以帮助团队理解不同质量属性之间的相互依赖关系,以及这些属性是如何共同影响用户体验的。
- 树形结构中,顶层节点通常是软件的总体目标,中间层节点代表具体的质量属性(如性能、可用性、安全性等),而底层节点则可能是具体的度量指标或实现细节。
-
质量属性需求用例分析 (Use Case Analysis for Quality Attribute Requirements):
- 用例分析是软件工程中常用的一种需求捕获方法,主要用于描述系统的行为以及它如何与外部参与者(如用户)互动。
- 在这个上下文中,质量属性需求用例分析是指通过用例来捕捉和分析软件需要满足的质量属性要求。
- 通过定义涉及质量属性的用例,可以确保系统设计和开发过程中充分考虑这些非功能性需求,并在实施过程中进行验证。
这些技术和方法帮助软件开发团队更好地理解、描述和评估软件的质量属性,从而确保最终产品能够满足用户的需求和期望。
1.2)问题02: 软件质量属性中 ATTM(架构权衡分析方法)介绍?
ATAM(Architecture Tradeoff Analysis Method,架构权衡分析方法)是由**SEI(Software Engineering Institute)**提出的一种用于评估软件架构质量的系统化方法。它通过分析架构设计中的质量属性(如性能、可用性、安全性、可修改性等)来识别潜在的架构风险和权衡点,从而帮助利益相关方更好地理解架构的优缺点,确保架构能够满足系统的需求。
ATAM 的主要目标
- 识别架构中的风险和权衡:在不同的质量属性之间找到平衡点,比如性能与安全性、可修改性与性能之间的权衡。
- 提高架构的质量:通过分析架构设计的决策是否支持系统的目标质量属性,改进架构设计,提高其质量。
- 确保满足需求:验证架构是否能够满足关键的功能性和非功能性需求(质量属性)。
ATAM 的核心概念
-
质量属性(Quality Attributes)
- ATAM 关注的质量属性是系统的非功能性需求,如性能、可用性、安全性、可修改性、可扩展性等。这些属性通常在设计决策中相互影响,需要在它们之间做出权衡。
-
架构决策(Architectural Decisions)
- 架构决策是指在架构设计中做出的关于模块划分、接口定义、技术选型、模式应用等方面的决定。这些决策直接影响系统的质量属性表现。
-
权衡分析(Tradeoff Analysis)
- 不同的质量属性往往相互制约。例如,为了提升性能,可能会牺牲安全性;提高可修改性可能会降低系统的效率。ATAM 通过权衡分析来帮助利益相关方理解这些影响并做出合理的架构选择。
ATAM 的评估流程
ATAM 的评估流程通常分为四个阶段,每个阶段都有特定的活动,评估的参与者包括架构师、开发团队、利益相关方等。
1. 阶段 0:准备工作
- 组建评估团队,确定评估范围和目标。
- 收集并准备与架构相关的背景资料。
2. 阶段 1:介绍与需求确认
- 架构介绍:由架构师介绍系统的架构设计,包括架构风格、设计决策等。
- 业务需求确认:确定系统的业务需求和关键的质量属性,了解系统需要解决的核心问题。
- 利益相关方参与:包括客户、项目经理、开发人员等,明确他们对系统质量属性的关注点。
3. 阶段 2:架构驱动的评估
- 场景驱动分析:根据系统的使用场景,分析架构设计是否能够支持关键的质量属性。场景可以是用例、非功能需求场景或架构变更场景。
- 质量属性效用树:通过效用树分析不同质量属性的优先级和重要性,明确哪些质量属性对系统最关键。
- 架构敏感点分析:识别出那些对质量属性有显著影响的架构决策(即敏感点),以及这些决策对不同属性的影响。
- 架构风险识别:根据敏感点的分析,发现潜在的架构风险,如某些设计决策可能影响性能或扩展性。
4. 阶段 3:权衡分析与报告
- 权衡分析:识别和讨论不同质量属性之间的权衡,并提出解决方案或改进建议。
- 总结与报告:编写评估报告,记录发现的风险、建议的改进点和设计权衡,并提供给项目团队和利益相关方。
ATAM 的评估输出
ATAM 的最终结果包括:
- 关键的质量属性需求:明确系统最重要的质量属性,并通过效用树显示其优先级。
- 架构风险:识别在当前设计中存在的架构风险。
- 权衡决策:展示在不同质量属性之间需要做出的权衡,并提供详细的分析。
- 改进建议:针对风险提出具体的改进建议,优化架构设计。
ATAM 的优点
- 系统化评估架构质量:ATAM 提供了一种结构化的方式,帮助架构师识别并解决架构中的潜在问题。
- 支持利益相关方参与:通过让利益相关方参与评估过程,ATAM 能够确保架构决策符合项目的业务需求和技术要求。
- 识别权衡和风险:ATAM 强调在不同质量属性之间做出合理的权衡,帮助团队在早期发现并解决设计中的潜在问题。
ATAM 的局限性
- 时间与成本较高:ATAM 评估过程比较复杂,涉及到多个利益相关方,通常需要较长的时间和较高的成本来完成。
- 依赖架构师的经验:ATAM 的评估结果在很大程度上依赖于架构师的经验和对系统的理解,不同的评估团队可能产生不同的评估结果。
总结
ATAM 是一种用于评估软件架构质量的有效方法,重点在于通过对质量属性的分析和权衡,帮助项目团队识别架构中的潜在风险并提出改进建议。通过系统化的评估过程,ATAM 能够确保架构设计不仅满足功能需求,还能在性能、可用性、可修改性、安全性等非功能需求上表现优异,从而支持系统的长期演进和稳定运行。
二、09.19 周四
2.1) 面向对象系统建模中,用例之间的关系有哪些?要怎么理解
在面向对象系统建模中,用例之间的关系主要有以下几种类型:
用例之间的关系类型:
-
包含关系(Include)
- 一个用例包含了另一个用例的行为。被包含的用例是必要的步骤,必须执行。
- 表示法:
<<include>>
- 示例:在一个“注册用户”用例中,可能包含“验证用户信息”的用例。
-
扩展关系(Extend)
- 一个用例在特定条件下可能扩展另一个用例的行为。扩展的用例是可选的,只有在某些条件下才会执行。
- 表示法:
<<extend>>
- 示例:在一个“提交订单”用例中,可能扩展“使用优惠券”的用例。
-
泛化关系(Generalization)
- 用例之间具有继承关系,子用例继承父用例的行为。子用例可以增加或覆盖父用例的部分行为。
- 表示法:实线三角箭头
- 示例:一个“支付”用例可以泛化为“信用卡支付”和“网上银行支付”两个具体子用例。
题目中“选择专业”与“登录系统”用例之间的关系:
包含关系(Include)
-
解释:用户必须先登录系统,才能执行“选择专业”的操作。也就是说,“选择专业”用例依赖于“登录系统”用例的执行。因此,“选择专业”用例包含了“登录系统”用例,这是一个强制性的操作。
-
描述:在需求建模时,“选择专业”用例包含了用户“登录系统”的操作,这是必需的步骤,用户不可能在未登录的情况下直接选择专业。
题目中“参加模拟考试”与“批阅答卷”用例之间的关系:
扩展关系(Extend)
-
解释:学生参与“模拟考试”后,教师才能进行“批阅答卷”。但从系统角度看,批阅答卷的行为是独立的,它不是“参加模拟考试”用例的必要步骤,只有在考试结束后,教师需要时才会进行批阅。因此,“批阅答卷”用例扩展了“参加模拟考试”用例。
-
描述:学生提交答卷后,教师可以选择批阅或不批阅。批阅答卷作为可选的操作,依赖于“参加模拟考试”的完成。
2.2)类之间的关系及示意图
类之间的关系有 关联、聚合、组合、依赖、泛化(继承)、实现6种关系,示意图如下:
在面向对象系统建模中,类之间的关系是系统设计的关键部分,类之间的关系通常反映对象之间的交互和依赖。主要有以下几种类型:
1. 关联(Association)
- 描述:关联表示两个类之间存在某种联系,它们可以互相访问。关联可以是单向的或双向的。
- 表示法:实线连接两个类,通常带有方向箭头(单向)或无箭头(双向)。可以在关联线旁标注角色名称和多重性(如 1:N)。
- 示例:学生与课程的关系,一个学生可以选修多门课程,课程可以被多个学生选修。
2. 聚合(Aggregation)
- 描述:聚合是关联的一种特殊形式,表示“整体-部分”的关系。聚合表示部分可以独立于整体存在,生命周期上不依赖于整体。
- 表示法:带空心菱形的实线连接,菱形在“整体”类一侧,另一端是“部分”类。
- 示例:一辆汽车与轮胎的关系,轮胎是汽车的一部分,但即使汽车不存在,轮胎仍可以单独存在。
3. 组合(Composition)
- 描述:组合也是“整体-部分”的关系,但它比聚合更强,表示部分完全依赖于整体,不能单独存在。整体的生命周期决定了部分的生命周期。
- 表示法:带实心菱形的实线连接,菱形在“整体”类一侧,另一端是“部分”类。
- 示例:一本书与章节的关系,如果书不存在,章节也不存在。章节是书的组成部分,无法独立于书存在。
4. 依赖(Dependency)
- 描述:依赖表示一个类依赖于另一个类,意味着一个类使用到另一个类,通常体现在类的方法中使用另一个类作为参数或局部变量。依赖关系通常是临时的,生命周期上不绑定。
- 表示法:虚线带箭头的连接线,箭头指向被依赖的类。
- 示例:方法调用的关系,比如一个打印机驱动类依赖于打印机类,来执行打印操作。
5. 继承/泛化(Generalization/Inheritance)
- 描述:继承表示子类继承父类的属性和方法,子类是父类的特殊化。继承是“is-a”关系,表示某个类是另一个类的子类或派生类。
- 表示法:实线三角箭头,箭头指向父类。
- 示例:学生类继承了“人类”,学生是人类的子类,继承了人类的共性属性。
6. 实现(Realization)
- 描述:实现表示一个类实现了接口中的方法。接口是定义类行为的抽象,而实现类提供了具体的实现。
- 表示法:虚线三角箭头,箭头指向接口类。
- 示例:假设有一个“可打印”接口,类“文档”实现了该接口的具体打印方法。
关系的总结与应用
- 关联关系用于描述类之间相对松散的联系,适合表示具有可互相访问行为的类。
- 聚合与组合用于描述整体与部分的关系,聚合表示部分可以独立存在,组合表示部分依赖于整体。
- 依赖用于表示临时的、弱耦合的依赖关系,通常体现在类的行为中。
- 继承用于表示类之间的继承关系,子类继承父类的特征。
- 实现用于类实现接口的情况,通常用于多态性设计。
每种关系都有其适用场景,在面向对象设计中根据需求选择合适的类之间的关系非常重要。
三、09.21 周六
3.1)问题01: resx文件是什么文件,有什么作用?
.resx
文件是用于在.NET应用程序中存储资源的XML文件。它的全称是“XML Resource File”。这些文件通常包含字符串、图像、图标和其他类型的数据,可以在应用程序运行时加载和使用。
.resx
文件的主要作用包括:
-
本地化和全球化:通过将不同语言的资源存储在不同的
.resx
文件中,可以轻松实现应用程序的多语言支持。根据用户的区域设置,应用程序可以选择加载相应的资源文件。 -
资源管理:将资源文件与代码分离,有助于更好地管理和维护。资源文件可以独立于代码进行修改,而不需要重新编译整个应用程序。
-
简化开发:开发工具(如Visual Studio)提供了对
.resx
文件的良好支持,使得开发者可以通过图形界面轻松编辑资源内容。
示例
一个简单的.resx
文件可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<root><data name="HelloWorld" xml:space="preserve"><value>Hello, World!</value></data><data name="AppTitle" xml:space="preserve"><value>My Application</value></data>
</root>
在这个例子中,HelloWorld
和AppTitle
是资源的键,它们对应的值分别是"Hello, World!"
和"My Application"
。
使用方法
在C#代码中,可以通过ResourceManager
类来访问.resx
文件中的资源。例如:
using System;
using System.Resources;class Program
{static void Main(){ResourceManager rm = new ResourceManager("MyNamespace.MyResource", typeof(Program).Assembly);string hello = rm.GetString("HelloWorld");string title = rm.GetString("AppTitle");Console.WriteLine(hello);Console.WriteLine(title);}
}
在这个例子中,MyNamespace.MyResource
是资源文件的命名空间和名称,GetString
方法用于获取字符串类型的资源。
通过使用.resx
文件,可以显著提高应用程序的可维护性和扩展性,特别是在需要支持多语言和多区域设置的情况下。
四、06.22 周日
4.1) 问题01: 数据库理论中的关系代数表达式
关系代数是一种形式化的查询语言,用于描述如何从一个或多个关系数据库中检索数据。它由一系列的操作符组成,可以组合起来形成复杂的查询表达式。在关系代数中,基本操作包括选择(Selection)、投影(Projection)、并(Union)、差(Difference)以及笛卡尔积(Cartesian product)。此外,还有几个导出的操作,如交集(Intersection)、连接(Join)、自然连接(Natural Join)、除法(Division)等。
下面是一些基本的关系代数表达式的例子:
-
选择(Selection)
- 表示为 σ<条件>®,其中 R 是关系名。<条件> 可以是基于关系的属性的逻辑表达式。
- 示例:σ年龄 > 30(员工) 表示选择所有年龄大于30岁的员工。
-
投影(Projection)
- 表示为 π属性列表®,属性列表指定了需要保留的列。
- 示例:π姓名, 年龄(员工) 表示只保留员工表中的姓名和年龄两列。
-
并(Union)
- 表示为 R ∪ S,其中 R 和 S 都必须具有相同的模式(即相同数量及类型的属性)。
- 示例:σ部门=‘销售’(员工) ∪ σ部门=‘市场’(员工) 表示选择属于销售部门或市场部门的所有员工。
-
差(Difference)
- 表示为 R - S,结果是 R 中有而 S 中没有的元组。
- 示例:σ部门=‘销售’(员工) - σ性别=‘女’(员工) 表示选择属于销售部门但不是女性的员工。
-
笛卡尔积(Cartesian product)
- 表示为 R × S,返回两个集合中每个元组的配对。
- 示例:员工 × 部门 表示列出每一名员工与每一个部门的配对。
-
连接(Join)
- 连接操作结合了选择和笛卡尔积的功能。表示为 R ⋈ S,其中 R 和 S 是关系,并且连接条件用于过滤笛卡尔积的结果。
- 示例:员工 ⋈ σ员工.部门号 = 部门.部门号(部门) 表示将员工与部门表通过部门号关联起来。
-
自然连接(Natural Join)
- 自然连接仅在两个关系中有相同名称的属性上进行连接。
- 示例:员工 ⨝ 部门 表示在员工与部门表之间共享的属性上自动执行连接。
-
除法(Division)
- 除法用于找到第一个关系中的元组,这些元组与第二个关系中的每个元组都有匹配项。
- 示例:供应商 ÷ 零件 表示找到供应所有列出零件的供应商。
关系代数表达式可以组合使用上述操作来构建更复杂的查询。例如,要找出所有销售部的男性员工的名字,可以这样写:
π姓名 (σ性别=‘男’ ∧ 部门=‘销售’(员工))
这会先选择所有性别为“男”并且部门为“销售”的员工,然后从中提取他们的名字。
相关文章:

技术周总结 09.16~09.22 周日(架构 C# 数据库)
文章目录 一、09.16 周一1.1)问题01: 软件质量属性中"质量属性场景"、"质量属性环境分析"、"质量属性效用树"、"质量属性需求用例分析"分别是什么?1.2)问题02: 软件质量属性中…...

【java实现json转化为CSV文件】
文章目录 JSON文件中的数据格式测试文件转换的接口 JSON文件中的数据格式 单条数据展开后如下: {"text": "《邪少兵王》是冰火未央写的网络小说连载于旗峰天下","spo_list":[{"predicate": "作者", "objec…...

MySQL索引知识个人笔记总结(持续整理)
本篇笔记是个人整理的索引知识总结,刚开始有点乱,后续会一直边学边整理边总结 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。就好比索引就是数据的目录 索引结构 Btree索引,Hash索引,Full-text索引,R-tree(空…...

ReKep——李飞飞团队提出的让机器人具备空间智能:基于视觉语言模型GPT-4o和关系关键点约束
前言 由于工厂、车厂的任务需求场景非常明确,加之自今年年初以来,我司在机器人这个方向的持续大力度投入(包括南京、长沙两地机器人开发团队的先后组建),使得近期我司七月接到了不少来自车厂/工厂的订单,比如其中的三个例子&…...

[Java并发编程] synchronized(含与ReentrantLock的区别)
文章目录 1. synchronized与ReentrantLock的区别2. synchronized的作用3. synchronized的使用3.1 修饰实例方法,作用于当前实例,进入同步代码前需要先获取实例的锁3.2 修饰静态方法,作用于类的Class对象,进入修饰的静态方法前需要…...

spring-boot-maven-plugin插件打包和java -jar命令执行原理
文章目录 1. Maven生命周期2. jar包结构2.1 不可执jar包结构2.2 可执行jar包结构 3. spring-boot-maven-plugin插件打包4. 执行jar原理 1. Maven生命周期 Maven的生命周期有三种: clean:清除项目构建数据,较为简单,不深入探讨&a…...

Python办公自动化教程(001):PDF内容提取
1、Pdfplumber介绍 pdfplumber的github地址: https://github.com/jsvine/pdfplumber/【介绍】:pdfplumber 是一个用于处理 PDF 文件的 Python 第三方库,它提供了一种方便的方式来提取 PDF 文件中的文本、表格和其他信息。【功能】ÿ…...

HarmonyOS鸿蒙开发实战(5.0)自定义全局弹窗实践
鸿蒙HarmonyOS开发实战往期文章必看: HarmonyOS NEXT应用开发性能实践总结 最新版!“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通) 非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&am…...
【AI学习】了解OpenAI o1背后的self-play RL:开启新的智能道路
在ChatGPT刚刚出来的时候,沐神关于ChatGPT有一段视频,只有几分钟,却是讲得极其透彻的一段。大概意思就是,过去的AI智能水平,比如五年前,大概相当于人类5秒钟思考的程度,包括自动驾驶,…...

Java项目实战II基于Java+Spring Boot+MySQL的车辆管理系统(开发文档+源码+数据库)
目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 "随着…...

IPsec-VPN中文解释
网络括谱图 IPSec-VPN 配置思路 1 配置IP地址 FWA:IP地址的配置 [FW1000-A]interface GigabitEthernet 1/0/0 [FW1000-A-GigabitEthernet1/0/0]ip address 10.1.1.1 24 //配置IP地址 [FW1000-A]interface GigabitEthernet 1/0/2 [FW1000-A-GigabitEthernet1/0/2]ip a…...

Ubuntu 22.04 源码下载、编译
Kernel/BuildYourOwnKernel - Ubuntu Wikihttps://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 一、查询当前系统内核版本 rootubuntu22:~# uname -r 5.15.0-118-generic 二、查询本地软件包数据库中的内核源码信息 rootubuntu22:~# apt search linux-source Sorting... Do…...

【深度学习实战—11】:基于Pytorch实现谷歌QuickDraw数据集的下载、解析、格式转换、DDP分布式训练、测试
✨博客主页:王乐予🎈 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 😺〇、仓库…...

基于SpringBoot+WebSocket实现地图上绘制车辆实时运动轨迹图
实现基于北斗卫星的车辆定位和轨迹图的Maven工程(使用模拟数据),我们将使用以下技术: Spring Boot:作为后端框架,用来提供数据接口。Thymeleaf:作为前端模板引擎,呈现网页。Leaflet…...

嵌入式入门小工程
此代码基于s3c2440 1.点灯 //led.c void init_led(void) {unsigned int t;t GPBCON;t & ~((3 << 10) | (3 << 12) | (3 << 14) | (3 << 16));t | (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16);GPBCON t; }void le…...

hackmyvm靶场--zon
环境 攻击机kali 靶机 未知 主机探测 因为在同一个局域网内使用ARP协议探测存活主机 靶机为192.168.56.128 端口探测 常见的80和22端口 那么一定是寻找web漏洞拿shell了 后台扫描 后台扫描常用dirsearch和gobuster,有时候小字典可能不太行,可以尝试换个大点…...
atcoder abc372 启发式合并, dp
A delete 代码: #include <bits.stdc.h>using namespace std;int main() {string s;cin >> s;for(auto t: s) if(t ! .) cout << t; } B 3 ^ A 思路:三进制转换,可以参考二进制,先把当前可以加入的最大的3的…...

CentOS Stream 9部署MariaDB
1、更新系统软件包 sudo dnf update 2、安装MariaDB软件包(替代mysql) sudo dnf install mariadb-server 3、安装MariaDB服务 sudo systemctl enable --now mariadb 4、检查MariaDB服务状态 sudo systemctl status mariadb 5、配置MariaDB安全性 sudo my…...

【Leetcode:997. 找到小镇的法官 + 入度出度】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...

大数据Flink(一百二十三):五分钟上手Flink MySQL连接器
文章目录 五分钟上手Flink MySQL连接器 一、创建数据库表 二、创建session集群 三、源表查询 四、窗口计算 五、结果数据写回数据库 五分钟上手Flink MySQL连接器 MySQL Connector可以将本地或远程的MySQL数据库连接到Flink中&#x…...
SYN Flood攻击原理,SYN Cookie算法
SYN Flood是一种非常危险而常见的Dos攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,SYN Cookie就是其中最著名的一种。 1. SYN Flood攻击原理 SYN Flood攻击是一种典型的拒绝服务(Denial of Service)攻击。所谓的拒绝服务攻击就是通过进…...
计组(蒋)期末速成笔记1
蒋本珊计组期末不挂科复习笔记 第1章 概论 第2章 数据的机器层次表示 第3章 指令系统 第4章 数值的机器运算 第5章 存储系统和结构 第6章 中央处理器 第7章 总线 第1章 概论 蒋本珊计组期末不挂科复习笔记知道你快考试了,莫慌! 第1章 概论1.1 冯诺依曼计…...
mysql学习教程,从入门到精通,SQL 更新数据(UPDATE 语句)(17)
1、SQL 更新数据(UPDATE 语句) SQL UPDATE 需要指定要更新的表、要修改的列以及新值,并且通常会通过WHERE子句来指定哪些行需要被更新。下面是一个简单的示例,说明如何使用UPDATE语句。 假设我们有一个名为employees的表…...

【吊打面试官系列-MySQL面试题】MyISAM 表格将在哪里存储,并且还提供其存储格式?
大家好,我是锋哥。今天分享关于【MyISAM 表格将在哪里存储,并且还提供其存储格式?】面试题,希望对大家有帮助; MyISAM 表格将在哪里存储,并且还提供其存储格式? 每个 MyISAM 表格以三种格式存储…...
常用的图像增强的算法之间的联系和区别
Unsharp Mask (USM)、拉普拉斯算子、直方图均衡化和伽马增强是图像处理中常见的技术,但它们在原理、作用和应用场景上有显著不同。以下是对这些方法的详细比较: 1. Unsharp Mask (USM) 原理:USM 是通过对图像进行模糊处理(如高斯…...

SpringBoot+Vue考试系统免费分享
源码说明: 这是一个开源的SpringBoot与Vue开发的在线考试系统。经过站长测试,系统稳定可用,允许重复考试。 环境: 需要安装的环境包括Node.js v14.21.3、JDK8、Maven以及MySQL 5.7。 前端部署教程: 执行 npm inst…...
音视频入门基础:FLV专题(1)——FLV官方文档下载
一、FLV简介 Flash Video(简称FLV),是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。 一般FLV文件包在SW…...

使用c#制作一个小型桌面程序
封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表(如果没有可以参考visual stdio 如何配置opencv等其他环境) 创建完成后 系统会自动生成一些文件,其中 pch.cpp 先不要修改,pch.h中先导入自己需…...

Clip studio paint百度云下载:附安装包+教程
首先补一个介绍,Clip Studio Paint(即CSP):这是一款专业的绘画和漫画创作软件,拥有丰富的绘画工具,适合漫画创作者使用。其界面友好,工具齐全,能够满足漫画创作中的各种需求。 用过…...

从Yargs源码学习中间件的设计
yargs中间件介绍 yargs 是一个用于解析命令行参数的流行库,它能帮助开发者轻松地定义 CLI(命令行接口),并提供参数处理、命令组织、help文本自动生成等功能。今天我们来学习一下它对中间件的支持。 中间件的API详细信息࿰…...