秋招Java后端开发冲刺——关系型数据库篇(Mysql)

本文介绍关系型数据库及其代表Mysql数据库,并介常见面试题目。
在这里插入图片描述

一、数据库概述

1. 数据库(Database, DB):是长期储存在计算机内的、有组织的、可共享的数据集合
2. 数据库管理系统(Database Management System, DBMS):是一种操纵和管理数据库的大型软件
3. 数据库系统(Database System, DBS):是计算机系统、数据库(DB)、数据库管理系统(DBMS)、应用软件、数据库管理员(DBA)和用户的全体(集合)
三者之间的关系为:
在这里插入图片描述

二、关系数据库基础

1. 定义:采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。
2. 特点

特点说明
固定的表结构使用预定义的表结构和关系模型,表中的每个列都有明确定义的数据类型和约束条件。
强一致性遵循ACID(原子性、一致性、隔离性、持久性)事务特性,保证事务的原子性和数据的一致性。
SQL 查询语言使用结构化查询语言(SQL)进行数据操作和管理,支持复杂的查询、连接和数据处理操作。
事务支持提供强大的事务支持,保证在事务中的操作要么全部提交成功,要么全部回滚,确保数据的完整性。
规范化通过规范化设计数据库模式,减少数据冗余,确保数据存储的一致性和节省存储空间。
复杂的关系支持复杂的表关系(一对一、一对多、多对多),通过外键保持数据之间的完整性和关联。
成熟稳定已经经过长时间的发展和优化,成熟的产品和广泛的使用基础,具备稳定性和可靠性。
ACID事务保证事务的原子性、一致性、隔离性和持久性,适合处理需要强一致性和事务控制的应用场景。
复杂查询优化通过索引和查询优化器优化复杂查询,提高查询效率,支持大规模数据处理和高性能应用。
数据完整性使用约束(如主键、外键、唯一约束)和触发器来保持数据的完整性和一致性。

3. 代表:Oracle、DB2、MySQL、Microsoft SQL Server、Microsoft Access

4. 候选码、主码、外码

  • 候选码:若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何、子集都不能再标识,则称该属性组为候选码。
  • 主码(主键):主码是从候选码中选出来的,一个实体集中只能有一个主码。
  • 外码(外键):一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。
    :不推荐使用,建议在应用层建立外键约束,而不是在数据库中建立实际外键,降低开发复杂性。
  • 主属性:候选码中出现过的属性称为主属性。
  • 非主属性: 不包含在任何一个候选码中的属性称为非主属性。

5. ER图(实体关系图)
在这里插入图片描述

6. 数据库范式(某大厂数据工程一面)

范式定义与要求特点
第一范式 (1NF)要求每个字段都是不可再分的数据单元,确保数据表中的每一列保持原子性。消除了重复的列,确保每列都包含单一的数据类型。
第二范式 (2NF)在满足1NF的基础上,要求表中的非主属性完全依赖于主键,即不存在部分依赖。消除了非主属性对主键部分依赖的问题。
第三范式 (3NF)在满足2NF的基础上,要求表中的非主属性不依赖于其他非主属性,即不存在传递依赖。消除了非主属性之间的传递依赖。
巴斯-科得范式 (BCNF)在满足3NF的基础上,要求每一个非主属性都完全依赖于候选键的每一个超键,即不存在依赖关系的例外情况。强化了对主键的依赖关系,确保所有非主属性完全依赖于候选键。
第四范式 (4NF)在满足BCNF的基础上,要求消除表中的多值依赖关系,即一个属性依赖于另一个属性时,不能有多个独立的值。消除了多值依赖,确保一个属性不依赖于另一个属性的多个独立值。
第五范式 (5NF)在满足4NF的基础上,要求消除表中的连接依赖,即表中的数据在无损分解之后能够重新连接起来,且数据不发生丢失。消除了连接依赖,确保数据在分解后能够无损连接。
第六范式 (6NF)在满足5NF的基础上,进一步规范化数据结构,确保数据的最小冗余,适用于时间相关数据的规范化。在时间相关的数据处理中,提供了更高的规范化程度,确保数据的最小冗余。

7. 函数依赖

  • 若在一张表中,在属性(或属性组)X 的值确定的情况下,必定能确定属性 Y 的值,那么就可以说 Y 函数依赖于 X,写作 X → Y。
  • 部分函数依赖:如果 X→Y,并且存在 X 的一个真子集 X0,使得 X0→Y,则称 Y 对 X 部分函数依赖。
  • 完全函数依赖:在一个关系中,若某个非主属性的值依赖于全部关键字称之为完全函数依赖。
  • 传递函数依赖:在关系模式 R(U)中,设 X,Y,Z 是 U 的不同的属性子集,如果 X 确定 Y、Y 确定 Z,且有 X 不包含 Y,Y 不确定 X,(X∪Y)∩Z=空集合,则称 Z 传递函数依赖于 X。
    8. 存储过程:在其中增加了逻辑控制语句的SQL 语句的集合。
  • 优点:存储过程是预编译过,运行速度快,适合处理复杂业务
  • 缺点:难以调试和扩展,且没有移植性

三、SQL总结

1. 创建、展示、删除、切换、修改数据库

create database 数据库名称;
show database 数据库名称;
drop database 数据库名称;
user 数据库名称;
alter database 数据库名称 character set gbk

2. 数据表操作
(1)创建、展示、删除数据表

create table 数据表名(
	字段名 数据类型,
 	字段名 数据类型,
	字段名 数据类型,	
);
show table 数据表名;
drop table 数据表名;

(2)修改数据表(某大厂数据工程一面:如何添加字段)

##修改表名
alter table 数据表名 rename to 修改后数据表名;
##修改字段名
alter table 数据表名 change 字段名 修改后字段名 数据类型;
##修改字段类型
alter table 数据表名 modify 字段名 数据类型;
##增加字段
alter table 数据表名 add 字段名 数据类型;
##删除字段
alter table 数据表名 drop 字段名;

3. drop、delete 与 truncate 的联系与区别

特性DROPDELETETRUNCATE
作用对象整个表、数据库、视图、索引等表中的特定行整个表
是否删除表结构
数据恢复不能恢复(除非有备份)可以通过回滚恢复不能恢复(除非有备份)
触发器触发不触发触发不触发
事务控制无法回滚(在大多数数据库中)可以回滚无法回滚(在大多数数据库中)
自动增量 (AUTO_INCREMENT)移除表后重置不重置重置
删除速度最快最慢
删除条件无条件删除整个对象可以指定条件删除特定记录无条件删除整个表的数据
SQL 标准SQL 标准SQL 标准SQL 标准
空间释放释放所有关联的空间不一定释放空间释放大部分空间

4. 数据表约束

  • 主键约束(PRIMARY KEY):用于唯一标识对应的记录
  • 外键约束(FOREIGN KEY):用于关联两个表
  • 非空约束(NOT NULL):用于字段值规定
  • 唯一约束(UNIQUE):用于字段约束
  • 默认值约束(DEFAULT):设置字段默认值

5. 数据库查询

  • 普通查询
  • 多表连接查询
    (1)交叉连接查询:查询两个数据表的笛卡尔积(数据组合)
SELECT * FROM 表1 CROSS JOIN 表2;

(2)内连接查询:查询两个数据表满足连接条件的数据行

SELECT 查询字段1,查询字段2, ... FROM 表1 [INNER] JOIN 表2 ON 表1.关系字段=表2.关系字段

(3)左外连接查询:查询两个数据表中右表满足连接条件的数据行和左边数据表全部行

SELECT 查询字段1,查询字段2, ... FROM 表1 LEFT [OUTER] JOIN 表2 ON 表1.关系字段=表2.关系字段 WHERE 条件

(4)右外连接查询:查询两个数据表中左表满足连接条件的数据行和右边数据表全部行

SELECT 查询字段1,查询字段2, ... FROM 表1 RIGHT [OUTER] JOIN 表2 ON 表1.关系字段=表2.关系字段 WHERE 条件

:outer可省略

  • 子查询:在查询中嵌套查询(any,all,exist)

6. 视图

  • 视图是基于 SQL 语句的结果集的可视化的表,是虚拟的表,本身不包含数据,也就不能对其进行索引操作
  • 基本语法:
##创建
CREATE VIEW 视图名 AS
SELECT 列
FROM 表
WHERE 查询条件;
##删除
DROP VIEW 视图名;

7. 触发器

  • 当对表进行插入、更新、删除操作的时候会自动执行的特殊的存储过程
  • 作用:数据一致性维护、日志记录和审计、自动计算字段
  • 基本语法
create trigger 触发器的名字
<before|after>  #定义触发器的触发时机
<新增insert|删除delete|修改update> #定义数据操作语言DML类型
on 表名  #指定具体是哪张表
for each row  #声明为行级触发器(只要操作一条记录就能触发触发器执行一次)
具体的触发器操作

8. 事务:用于保证数据的一致性

  • START TRANSACTION - 指令用于标记事务的起始点。
  • SAVEPOINT - 指令用于创建保留点。
  • ROLLBACK TO - 指令用于回滚到指定的保留点;如果没有设置保留点,则回退到 START - TRANSACTION 语句处。
  • COMMIT - 提交事务。

四、Mysql数据库

Mysql最流行的关系型数据库管理系统之一,将数据以表的形式存储,体积小、速度快。(某大厂数据工程一面)

(一)基本数据类型

1. 整型:TINYINT(1字节)、SMALLINT(2字节)、MEDIUMINT(3字节)、INT(4字节,常用)和 BIGINT(8字节)
2. 浮点型:FLOAT(4字节)、DOUBLE(8字节)和DECIMAL(M,D)(M表示数据的长度,D表示的是小数点后的长度)
:FLOAT和DOUBLE存在浮点数精读丢失的问题,因此在存储金额等需要准确无误的数据时需要使用DECIMAL。
3. 字符串类型:CHAR(定长)和VARCHAR(变长,一般不确定长度的时候建议使用,节约资源)
4. 文本类型(存储一些描述性文字):TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
5. 日期与时间类型:YEAR、DATE、TIME、DATETIME 和 TIMESTAMP
6. 二进制类型(存储图片、文件等):TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB

(二)基本架构

在这里插入图片描述

1. Mysql主要由两部分组成:存储引擎和Server层,server层又包括:连接器、查询缓存、分析器、优化器、执行器和一个日志模块(binlog)。各个部分的功能如下:

  • 连接器:身份认证和权限相关
  • 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除)
  • 分析器: 检查SQL语句语法是否正确
  • 优化器: 按照 MySQL 认为最优的方案去执行(分析索引)
  • 执行器: 执行语句,然后从存储引擎返回数据
  • binlog:记录数据库操作语句的原始逻辑,用于主从备份,数据一致性
  • 存储引擎:主要负责数据的存储和读取,采用的是插件式架构,支持 InnoDB、MyISAM、Memory 等多种存储引擎。(现在使用的基本上都是InnoDB)

2. SQL语句执行过程

  • 查询语句
    在这里插入图片描述
  • 增删改语句
    在这里插入图片描述
(三)Mysql存储引擎(某大厂数据工程一面)
  • Mysql存储引擎采用的是插件式架构,是基于表的,不是基于数据库的
  • MySQL 5.5.5 之前,MyISAM 是 默认存储引擎。之后,InnoDB 是 MySQL 的默认存储引擎(目前主流)。二者之间的区别为:
特性MyISAMInnoDB
锁粒度表级别行级别
事务支持不支持支持
隔离级别不支持支持 SQL 标准的四个隔离级别
外键支持不支持支持
MVCC 支持不支持支持
索引结构B+Tree,具体实现不同B+Tree,具体实现不同
崩溃恢复不支持支持
性能较弱更强大
(四)Mysql索引

1. 定义:索引是帮助mysql高效获取数据的数据结构
2. 索引分类

索引类型特点
B+Tree 索引默认索引类型,适用于大多数查询操作。支持范围查询、排序查询等。InnoDB 和 MyISAM 都使用 B+Tree 作为默认索引结构。
Hash 索引基于哈希表实现,适用于等值查询,不支持范围查询。Memory 存储引擎支持此索引。
全文索引适用于全文检索,用于查找文本数据中的关键词。MyISAM 和 InnoDB(从 MySQL 5.6 开始)支持全文索引。
空间索引用于地理数据类型的索引(如 GIS 数据),支持复杂的地理空间查询。MyISAM 和 InnoDB(从 MySQL 5.7 开始)支持空间索引。
唯一索引确保索引列的值唯一,可以有多个 NULL 值。适用于需要唯一性约束的列。
主键索引一种特殊的唯一索引,不允许 NULL 值。每个表只能有一个主键索引。
复合索引由多个列组成的索引,用于提高多列查询的性能。
前缀索引对字符列的前缀部分进行索引,适用于需要对长字符串列的前几部分进行索引的情况。
聚簇索引数据存储与索引顺序一致,每个表只能有一个聚簇索引。InnoDB 使用主键作为聚簇索引。如果没有定义主键,则选择一个唯一的非空索引。如果没有合适的唯一索引,InnoDB 会隐式创建一个行 ID。
非聚簇索引索引结构和数据存储分离,索引中存储指向数据行的指针,可以有多个非聚簇索引。MyISAM 和 InnoDB 都支持非聚簇索引。

3. 最左匹配原则(某大厂数据工程一面)

  • 使用联合索引查询时,索引的使用从最左边的列开始,必须依次匹配索引的列,不能跳过任何一列。
  • 违反最左匹配原则导致索引失效情况:查询条件不包含组合索引的最左列;在查询条件中跳过了组合索引中的某一列;使用了不支持索引的函数或运算符

4. 索引失效

  • 创建了组合索引,但查询条件未遵守最左匹配原则
  • 在索引列上进行计算、函数、类型转换等操作
  • 以 % 开头的 LIKE 查询比如 LIKE ‘%abc’;
  • 查询条件中使用 OR,且 OR 的前后条件中有一个列没有索引,涉及的索引都不会被使用到
  • N 的取值范围较大时会导致索引失效,走全表扫描(NOT IN 和 IN 的失效场景相同);
  • 发生隐式转换
(五) Mysql三大日志

1. binlog日志(server层)

  • 逻辑日志,记录内容是语句的原始逻辑;主要用于MySQL 数据库的数据备份、数据同步,保证数据一致性
  • 三种格式:statement、row(可能会产生数据不一致情况用,开销较大)、mixed

2. redo log(InnoDB 存储引擎独有)

  • 物理日志,记录数据页的物理修改,用于数据库的崩溃恢复,保证数据库的持久性
  • 每条 redo 记录由“表空间号+数据页号+偏移量+修改数据长度+具体修改的数据”组成
  • 刷盘时机:事务提交;log buffer 空间不足;事务日志缓冲区满;Checkpoint后台刷新线程;正常关闭服务器

3. undo log

  • 逻辑日志,记录内容与原始操作相反的 SQL 语句,用于事务回滚,保证数据库的原子性
    :redo log 在事务执行过程中可以不断写入,而 binlog 只有在提交事务时才写入
(六)Mysql事务

1. 事务特性(ACID)

  • 原子性(Atomicity):事务是最小的执行单位,不允许分割
  • 一致性(Consistency):执行事务前后,数据保持一致
  • 隔离性(Isolation):并发访问数据库时,各并发事务之间数据库是独立的
  • 持久性(Durability):一个事务被提交之后,它对数据库中数据的改变是持久的
    A + I + D → D A+I+D\rightarrow D A+I+DD

2. 并发事务导致的问题及解决方式

现象说明解决方法
脏读一个事务读到了另一个事务尚未提交的修改数据。设置事务隔离级别为 READ COMMITTED 或更高。
不可重复读一个事务在前后两次读取同一数据时,发现数据被另一个事务修改了,导致两次读取结果不一致。设置事务隔离级别为 REPEATABLE READ 或更高(对记录加锁)。
幻读一个事务在前后两次读取时,发现插入或删除了一些新的数据行,导致读取结果集的行数不一致。设置事务隔离级别为 SERIALIZABLE(对记录加锁和加GAP锁)。

3. 事务隔离级别
Mysql中有四种事务隔离级别:

  • READ-UNCOMMITTED(读取未提交) :最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复
  • READ-COMMITTED(读取已提交) :允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。(通过MVCC实现)
  • REPEATABLE-READ(可重复读) :对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。(通过MVCC实现)
  • SERIALIZABLE(可串行化) :最高的隔离级别,完全服从 ACID 的隔离级别。该级别可以防止脏读、不可重复读以及幻读。(通过加锁实现)

4. 并发事务控制
(1)锁(悲观)

  • 共享锁(S锁):允许多个事务同时获取(锁兼容),通常用于读取操作
  • 排他锁(X锁):不允许多个事务同时获取,通常用于写操作
  • 表级锁:针对非索引字段加的锁,对当前操作的整张表加锁
  • 行级锁(记录锁、间隙锁、临键锁):针对索引字段加的锁 ,只针对当前操作的行记录进行加锁
    :InnoDB 不光支持表级锁,还支持行级锁(默认);表级锁和行级锁都有X和S两种锁
    (2)MVCC(多版本并发控制):对一份数据会存储多个版本,通过事务的可见性来保证事务能看到自己应该看到的版本
    -通过创建数据的多个版本和使用快照读取来实现并发控制
  • 实现手段:隐藏字段、read view(用于控制版本可见性)、undo log(用于记录某行数据的多个版本的数据)
    (3)当前读和快照读
  • 当前读:一致性锁定读,就是给行记录加 X 锁或 S 锁
  • 快照读:一致性非锁定读,就是普通的 SELECT 语句

5. 分库分表
(1)垂直拆分

  • 垂直分库:以表为依据,根据业务将不同表拆分到不同库中
  • 垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中
    (2)水平拆分
  • 水平分库:将一个库的数据拆分到多个库中
  • 水平分表:将一个表的数据拆分到多个表中(可以在同一个库内)
(七)Mysql优化

1. 优化方法

  • 表设计优化,可参考Mysql高性能优化
  • 索引优化:把握索引创建原则和失效注意事项(见上文)
  • 主从复制,读写分离
  • 分库分表

2. 定位慢查询
(1)方法

  • 开源工具:arthas、prometheus、skywalking
  • mysql自带的慢日志
    (2)sql执行很慢的分析方法:在sql查询语句前面加explain或desc,分析索引等的使用情况

3. 深度分页优化
(1)深度分页指查询偏移量过大的场景,会导致查询耗时多,响应慢。
(2)优化方案

  • 当可以保证 ID 的连续性时,根据 ID 范围进行分页
  • 先查询出 limit 第一个参数对应的主键值,再根据这个主键值再去过滤并 limit
  • 延迟关联的优化思路,跟子查询的优化思路其实是一样的:都是把条件转移到主键索引树,减少回表的次数,使用内连接包含子查询。
  • 建立覆盖索引,减少回表次数
    :回回表是指根据索引查询到的主键值再去访问主键索引,从而获取完整的数据记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/745188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高性能并行计算华为云实验五:PageRank算法实验

目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建PageRank源码 3.2 makefile的创建和编译 3.3 主机配置文件建立与运行监测 四、实验结果与分析 4.1 采用默认的节点数量及迭代次数进行测试 4.2 分析并行化下节点数量与耗时的变化规律 4.3 分析迭代次数与耗时的变…

数据结构——跳表Skip List

本文对跳表的定义、实现、应用等进行简单总结。 一、 介绍 1.定义 跳表&#xff08;Skip List&#xff09;&#xff1a;是一种概率性数据结构&#xff0c;由William Pugh在1990年提出&#xff0c;主要用于在有序的元素集合上进行快速的搜索、插入和删除操作。跳表的效率与平衡…

百威英博旗下知名啤酒品牌Jupiler,创意助力比利时国足角逐欧洲杯冠军!

怎么说呢&#xff1f;今天非常开心。 因为今天分享的这个品牌创意案例很特别&#xff0c;和夏天、足球有关&#xff0c;和梦想、啤酒有关&#xff0c;还和QR Tiger 、二维彩虹有关。而把这一切连接在一起的&#xff0c;是一个小小的二维码。 这个夏天&#xff0c;百威英博旗下…

选专业,分析就业前景和市场需求

大学专业纷繁复杂&#xff0c;每个专业的就业前景和市场需求也天差地别&#xff0c;一般而言&#xff0c;就业前景优和市场需求的专业的学生更容易就业&#xff0c;更容易实现个人价值&#xff1f; 一、充分利用性格优势 在专业选择当中&#xff0c;如果我们自己对某个专业拥有…

背包模型——AcWing 423. 采药

背包模型 定义 背包模型是一种常见的算法问题模型&#xff0c;它主要涉及将一些物品放入一个容量有限的背包中&#xff0c;以达到某种最优目标&#xff0c;如最大化价值或最小化重量等。 运用情况 常用于资源分配、项目选择、货物装载等实际问题中。例如&#xff0c;在选择…

用AI解锁创意设计新思路

在数字化浪潮的推动下&#xff0c;创意设计领域正经历一场由人工智能&#xff08;AI&#xff09;引领的深刻变革。AI技术的崛起不仅显著提升了设计工作的效率&#xff0c;还为设计师们开辟了前所未有的创新空间。 随着AI技术的持续进步&#xff0c;传统的设计流程正在逐步被重…

Lua流媒体服务器支持(MP4视频、桌面直播、摄像头)

本来在做FFMPEG的项目&#xff0c;忽然想到Lua封装FFMPEG与SRS实现一个简易的直播网站何尝不是一个大胆的想法。 示例为初级版本&#xff0c;主要是用来验证可行性和功能性DEMO 演示效果&#xff1a; Lua流媒体直播服务器(支持MP4、桌面直播、摄像头)_哔哩哔哩_bilibili 代码简…

最佳实践 | HelpLook通过PartnerShare实现低成本的市场拓展

在如今许多行业市场竞争非常激烈&#xff0c;扩大品牌影响力、提升产品竞争力成为企业亟待攻克的难题之一。为此&#xff0c;HelpLook AI知识库对接了PartnerShare联盟系统&#xff0c;为SaaS产品如何做好全民分销带来了全新的解决思路。 PartnerShare凭借成熟的推广体系为Hel…

基于Python/MNE处理fnirs数据

功能性近红外光谱技术在脑科学领域被广泛应用&#xff0c;市面上也已经有了许多基于MATLAB的优秀工具包及相关教程&#xff0c;如&#xff1a;homer、nirs_spm等。而本次教程将基于Python的MNE库对fNIRS数据进行处理。 本次教程基于&#xff1a;https://mne.tools/stable/auto_…

宝兰德受邀出席华为开发者大会2024,携手共绘基础软件新篇章

6月21日-23日&#xff0c;华为开发者大会&#xff08;HDC 2024&#xff09;在东莞松山湖举行&#xff0c;作为全球开发者的年度盛会&#xff0c;本次大会汇聚了众多业界精英与前沿技术。华为分享了HarmonyOS、盘古大模型、昇腾AI云服务、GaussDB数据库、自研仓颉编程语言等最新…

一年Java转GO|19K|腾讯 CSIG 一二面经

面经哥只做互联网社招面试经历分享&#xff0c;关注我&#xff0c;每日推送精选面经&#xff0c;面试前&#xff0c;先找面经哥 背景 学历&#xff1a;本科工作经验&#xff1a;一年(不算实习)当前语言&#xff1a;Javabase&#xff1a;武汉部门\岗位&#xff1a;腾讯云‍ 一…

pdf压缩,pdf压缩在线,pdf文件太大怎么变小

在数字化时代&#xff0c;PDF文档因其跨平台、保持原样、易于阅读和打印等特点&#xff0c;成为了我们日常工作和生活中不可或缺的一部分。然而&#xff0c;随着PDF文件的不断累积&#xff0c;存储空间逐渐变得紧张&#xff0c;特别是在处理大量大型PDF文件时&#xff0c;如何有…

深圳大学 软件测试作业 #2

声明&#xff1a;本人上课摆烂选手&#xff0c;稍微听了下&#xff0c;答案仅供参考。 ———————— 1. 考虑下面这个代码&#xff0c;并回答以下的问题。 (a) 请画出上面代码的控制流程图。(20分) (b) 请画出上面代码的数据流程图。(10分) (c) 找出每个变量的定义使…

说点智驾领域的实话!感知|定位|规划控制|就业……

你们有没有一种感觉&#xff0c;近几年自动驾驶技术栈迭代太快&#xff0c;自己稍不留神就与当下主流技术产生脱节了。 其实说实话&#xff0c;并非只有你如此&#xff0c;行业内的工程师都有类似感受。 智能驾驶行业交流群&#xff1a;点击进 分享几个我们最近聊天中的几位朋…

低代码平台如何重塑项目管理:效率与创新的新边界

引言 随着数字化转型的加速和技术创新的推动&#xff0c;低代码开发平台在近年来逐渐崭露头角&#xff0c;成为企业和组织加速应用开发和创新的重要工具。低代码平台通过提供可视化的开发环境和预构建的组件&#xff0c;极大地简化了应用程序的开发过程&#xff0c;使非专业开发…

Vmvare12安装CentOS7.6

Vmvare12安装 注意事项 安装完成以后有这两个虚拟网卡。 CentOS官网镜像地址 https://www.centos.org/download/mirrors/Vmvare安装CentOS7.6 创建虚拟机 安装CentOS7.6 选择桌面版 磁盘分区 上述是确认使用自动分区。 设置密码 设置license information 欢迎页面 CentOS7…

windows 安装 Kubernetes(k8s)

windows 安装 docker 详情见&#xff1a; https://blog.csdn.net/sinat_32502451/article/details/133026301 minikube Minikube 是一种轻量级的Kubernetes 实现&#xff0c;可在本地计算机上创建VM 并部署仅包含一个节点的简单集群。 下载地址&#xff1a;https://github.…

每日一题——Python实现PAT乙级1030 完美数列(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试 再次尝试 代码结构 时间复杂度分析 空间复杂度分析 总结 我要更强 时…

《互联网政务应用安全管理规定》深度解读

《互联网政务应用安全管理规定》的出台&#xff0c;对互联网政务应用的安全提出了一系列具体要求。 2024年5月15日&#xff0c;中央网信办、中央编办、工业和信息化部、公安部等四部门联合公布《互联网政务应用安全管理规定》&#xff08;以下称《规定》&#xff09;&#xff…

手机pdf删除怎么办?只需要2招,就可以快速恢复耶

PDF文件&#xff0c;这个我们日常生活中的常客&#xff0c;越来越受到大家的喜爱。但是&#xff0c;有时候我们会因为一时的疏忽或者清理手机内存而不小心删掉了重要的PDF文件&#xff0c;这可真是让人头疼啊&#xff01;那么&#xff0c;这些pdf删除后&#xff0c;有没有什么好…