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

拨云见日:深入理解 HTML 解析器与有限状态机

文章目录

  • 参考
  • 描述
  • 状态机
      • 状态机
      • 有限状态机与无限状态机
          • 有限状态机与自动售货机
          • 无限状态机与计算器
  • HTML 解析器
      • HTML 解析器
      • HTML 与有限状态机
  • HTML 解析器的常见状态
      • 初始状态
      • DOCTYPE 状态
      • 注释状态
      • 标签状态
          • 开始标签状态
          • 属性状态
            • 属性名状态
            • 属性值状态
          • 结束标签状态
          • 自闭和标签状态
      • 文本状态
      • 字符引用状态
      • 数字字符引用状态
      • RCDATA 状态
          • RCDATA 元素
          • RCDATA 状态
      • RAWTEXT 状态
      • PLAINTEXT 状态
          • PLAINTEXT 元素
          • PLAINTEXT 状态

参考

项目描述
搜索引擎Google 、Bing
维基百科首页
百度百科首页
MDN文档
HTML Standardparsing.html

描述

项目描述
浏览器Edge 111.0.1661.62 (正式版本) (64 位)

状态机

状态机

状态机(State Machine)是一种用来描述对象或系统的行为的抽象概念。它是由一组状态、一组转移条件和一组动作组成的。在任何时候,状态机只能处于其中一种状态。当满足某些转移条件时,状态机会从当前状态转移到下一个状态,并执行相应的动作。

优点

  1. 状态机提供了一种清晰的方式来描述复杂的行为。状态机可以把复杂的问题简化为一些离散的状态和转移条件,使问题更容易理解和解决。

  2. 状态机可以提高程序的可读性和可维护性。使用状态机,程序员可以更容易地理解程序的行为,更快速地进行故障排除和更改。

  3. 状态机可以用于设计高效的算法。许多计算机科学领域中的算法都是基于状态机设计的,如图形处理、自然语言处理和编译器等。

  4. 状态机可以用于实现复杂的控制逻辑,如自动机器人、工业自动化和网络通信等。

有限状态机与无限状态机

一般来说,状态机可以分为有限状态机和无限状态机两种类型。

有限状态机(Finite State Machine,FSM)是指状态机中状态的数量是有限的。在有限状态机中,状态之间的转移是根据预定义的规则进行的,这些规则可以用转移函数或转移表来表示。 有限状态机通常用于处理离散的问题,如自动机器人、电路设计、解释器和编译器等。

无限状态机(Infinite State Machine,ISM)是指状态机中状态的数量是无限的。在无限状态机中,状态之间的转移是根据某种计算规则进行的,这些规则可以是递归函数、迭代算法、差分方程等。 无限状态机通常用于处理连续的问题,如控制系统、信号处理、图像处理等。

需要注意的是,有限状态机和无限状态机并不是互相排斥的概念。 事实上,许多实际的问题都可以用有限状态机和无限状态机相结合的方式来处理。例如,在编译器中,词法分析器可以用有限状态机来处理代码中的单词,而语法分析器可以用无限状态机来处理代码中的语法结构。

有限状态机与自动售货机

当一个系统的状态数量是有限的时候,我们就可以使用有限状态机(FSM)来描述它的行为。例如,考虑一个简单的自动售货机,它可以接受硬币、选择饮料、进行交易等。自动售货机可以表示为一个有限状态机,它有以下状态:

  • 等待选择饮料
  • 已选择饮料
  • 等待投币
  • 已投币
  • 正在进行交易
  • 交易完成

这些状态之间的转移可以由用户或自身的行为触发,例如:

  • 选择饮料:从 等待选择饮料 状态转移至 已选择饮料 状态。
  • 投入硬币:从 等待投币 状态转移到 已投币 状态。
  • 自动售货机吐出饮料:从 正在进行交易 状态转移至 交易完成 状态。

无限状态机与计算器

当我们要描述一个计数器时,可以使用一个无限状态机(ISM)。该状态机可以表示计数器从 0 开始不断递增的行为,状态机中的状态数量是无限的。在该状态机中,有一个可能的输入信号,即 增加计数器中存储的值。每当输入信号被触发时,计算器将执行相应的动作,同时切换至另一个状态之中。

在这个例子中,状态机的状态数量是无限的,因为计数器可以一直增加下去。 由于状态数量无限,因此我们无法用图形表示法或者表格表示法来表示它。但是,我们可以使用数学符号来描述它,比如 f(n)=n+1,表示当输入信号被触发时,状态机的下一个状态是当前状态加 1

HTML 解析器

HTML 解析器

HTML 解析器是一种将 HTML 文本解析为 DOM(Document Object Model) 树的程序。DOM 树是一种以 分层 的方式表示 HTML 文档的树形结构,其中每个 HTML 元素对应一个节点,而元素中元素则作为该节点下的子节点。

HTML 解析器通常分为两个部分:词法分析器和语法分析器词法分析器将 HTML 文本分解成一个个词法单元(token),例如标签、属性、文本等。语法分析器将这些词法单元组合成一棵 DOM 树,并验证 HTML 文档的语法正确性。

HTML 解析器在 Web 开发中具有重要作用,因为它是浏览器渲染 HTML 页面的关键组件之一。当用户在浏览器中请求一个 HTML 页面时,浏览器会先将该页面的 HTML 文本传递给 HTML 解析器进行解析,生成对应的 DOM 树。随后,浏览器会使用 DOM 树来渲染页面,并执行其中包含的 JavaScript 代码。

HTML 除了应用于浏览器中,还广泛应用于 Web 爬虫、数据挖掘和搜索引擎等领域,用于解析 HTML 文本,以从中提取所需要的信息。

HTML 与有限状态机

HTML 解析器通常使用有限状态机(FSM)来解析 HTML 文档,因为 HTML 文档本身是由有限的、预定义的标签和属性组成的。

具体来说,HTML 解析器可以被视为一种 流式 有限状态机,即解析器将文本数据作为输入流,然后逐个处理输入的字符,根据当前的状态进行相应的转移。解析器通过检查当前字符和上下文来确定下一个状态,并将所需的节点添加到 DOM 树中。

例如,当解析器遇到一个开始标签时,它将进入一个 开始标签 状态,然后逐个解析标签的名称和属性,并将这些信息存储为 DOM 节点的属性。当解析器遇到标签的结束标记时,它将退出 开始标签 状态,并将新的节点添加到 DOM 树中。

HTML 解析器的常见状态

HTML解析器通常包含多个状态,用于识别和处理HTML代码中不同类型的词法单元(lexical token)和语法结构。

初始状态

HTML 解析器中的初始状态是 解析器在开始解析 HTML 文档时所处的状态。在这个状态下,解析器还没有开始解析任何内容,它会等待输入的字符流。

当解析器接收到输入时,它会根据输入的内容判断应该转换到哪个状态。 如果输入的是空格、制表符、换行符等空白字符,解析器会忽略它们并继续等待输入。如果输入的是 <!DOCTYPE><!-- 或其他类型的标签开始符号 <,则解析器会转换到对应的状态继续解析。

初始状态的主要作用是初始化解析器并等待输入,它是整个解析过程的起点。

DOCTYPE 状态

HTML 解析器中的 DOCTYPE 状态是指解析器遇到 DOCTYPE 声明 时所处的状态。在这个状态下,解析器会解析 DOCTYPE 声明并根据其内容设置文档类型,从而影响后续的解析行为。
如果 HTML 文档中没有 DOCTYPE 声明,解析器会默认将文档类型设置为 HTML5,这种情况下解析器会按照 HTML5 规范进行解析。

DOCTYPE 状态是 HTML 解析器的一个重要状态,因为它 决定了文档类型,从而影响后续的解析行为。

注释状态

HTML 解析器中的注释状态是指解析器遇到 <!-- 标签时所处的状态。在这个状态下,解析器会将接下来的字符视为注释,直到遇到注释结束标记 --> 为止。

标签状态

标签状态(tag state)是 HTML 解析器中的一个主要状态,用于识别和解析 HTML 元素。在标签状态下,解析器会根据接下来的输入字符识别出当前的 HTML 元素,并将其转化为 DOM 树的节点。

开始标签状态

在标签状态下,如果解析器遇到 < 字符,则会切换到开始标签状态(start tag state),进而开始解析一个开始标签。开始标签状态用于解析 HTML 元素的名称、属性和属性值等信息,它是标签状态的子状态。

属性状态

属性状态(attribute state)是开始标签状态的子状态,用于解析 HTML 元素的属性。在属性状态下,解析器会识别出当前属性的名称和值,并将其添加到当前 HTML 元素的属性列表中。

属性名状态

在 HTML 解析器中,属性名状态(attribute name state)是在属性状态(start tag state)下触发的一种状态。在属性名状态中,HTML 解析器会解析开始标签中的属性名,直到遇到空格、斜杠、等号等分隔符号。

在属性名状态中,HTML 解析器会忽略多余的空格,并将下一个非空格字符解析为属性名的第一个字符。接下来,HTML 解析器会解析属性名的剩余字符,直到遇到分隔符号。

如果遇到的分隔符号是等号,那么 HTML 解析器会将状态切换到属性值状态(attribute value state);如果遇到的分隔符号是斜杠,那么 HTML 解析器会将状态切换到自闭合标签状态(self-closing tag state);如果遇到的分隔符号是空格,则属性名解析结束。

如果解析到的属性名已经存在于标签中,那么 HTML 解析器会将其视为一个新的属性,并覆盖原有的属性值。

属性值状态

属性值状态

在 HTML 解析器中,属性值状态(attribute value state)是在属性状态(start tag state)下触发的一种状态。在属性值状态中,HTML 解析器会解析开始标签中的属性值,直到遇到引号(单引号或双引号)或者空格等分隔符号。

引号状态与无引号状态

属性值可以有两种写法,分别是带引号的写法和不带引号的写法。在带引号的写法中,属性值必须被一对引号包含,可以是单引号或者双引号。在不带引号的写法中,属性值可以直接跟在等号后面,但是不能包含空格和其他分隔符号。

在属性值状态中,HTML 解析器会忽略开头的空格,直到解析到第一个非空格字符。 如果该字符是引号,则属性值状态切换到对应的引号状态(quoted string state),否则表示属性值是不带引号的写法,直接进入无引号属性值状态(unquoted value state)。

在引号状态或无引号属性值状态中,HTML 解析器会解析属性值中的字符,直到遇到对应的引号或空格等分隔符号为止。 如果属性值中存在字符引用或者数字字符引用,则 HTML 解析器会将其解析为对应的字符。 如果解析到的属性值包含非法字符,则会产生语法错误。

结束标签状态

HTML解析器中的结束标签状态(end tag state)用于解析 HTML 中的结束标签。当解析器遇到 < 符号时,会判断接下来的字符是否为 /,如果是,则表示遇到了结束标签,解析器将进入结束标签状态。

在 HTML 解析器进入结束标签状态时,解析器将解析结束标签的标签名,并在 DOM 树中查找与之 对应的 开始标签,如果找到了匹配的开始标签,就将其与其内部的子节点全部关闭。如果没有找到匹配的开始标签,则会发出解析错误并忽略此结束标签。

需要注意的是,有一些 HTML 元素是没有结束标签的,例如 <br><img><input> 等,这些元素属于自闭合标签,即在开始标签中就已经包含了结束标签,因此在解析这些元素时 不需要进入结束标签状态

自闭和标签状态

在开始标签状态中,若解析器遇到了 /> 符号,则表示该标签为自闭合标签。 此时解析器会立即进入自闭和标签状态,将该标签解析为一个完整的元素节点,并将该节点插入到当前活动元素的父节点中。

自闭合标签状态与开始标签状态的主要区别在于,自闭合标签状态中不需要解析属性,因为自闭合标签不需要包含任何属性。此外,在自闭合标签状态中,解析器不需要等待闭合标签,因为 自闭合标签已经被视为一个完整的标签。

文本状态

在HTML解析器中,文本状态是指解析器正在解析的内容为文本节点,即一段纯文本字符串。当解析器遇到文本内容时,它将进入文本状态,直到遇到一个标签开始符号 <,或者遇到字符引用符号 & 时,解析器将离开文本状态,并开始解析相应的标签或字符引用。

字符引用状态

在 HTML 解析器中,字符引用状态是指解析器遇到 & 字符时进入的状态,该状态用于解析 HTML 中的字符实体引用和数值字符实体引用。

HTML 中的字符实体引用以 & 开始,以 ; 结束,用于表示一些特殊字符(通过使用 HTML 字符实体来将特殊字符进行转义,以避免它们与 HTML 代码产生歧义),例如 &lt; 表示小于号 <

当HTML解析器进入字符引用状态后,会读取字符引用的内容,并将其转换为相应的字符添加到当前活动元素的子节点中,然后解析器将离开字符引用状态,返回到先前的状态继续解析HTML文档。

需要注意的是,在字符引用状态中,解析器需要进行一些容错处理,例如忽略不合法的字符实体引用或数值字符实体引用,或者在遇到 & 字符后没有后续字符时,将 & 字符视为文本节点的一部分而不是字符实体引用。

数字字符引用状态

数字字符引用状态是HTML解析器中的一种状态,用于解析HTML文档中的数字字符实体。在HTML中,数字字符实体以 &# 开头,以 ; 结尾,例如 &#65; 表示字符 A

在数字字符引用状态中,解析器会读取 &# 后面的数字,直到读取到;为止。然后,解析器会将读取到的数字转换为对应的字符,并将该字符添加到解析树中。如果在读取数字的过程中遇到了不合法的字符(比如非数字字符),则该实体被视为无效实体,解析器不会将其转换为字符。

常见的字符引用

字符编码字符名称字符
&#34;&quot;"
&#38;&amp;&
&#39;&apos;'
&#60;&lt;<
&#62;&gt;>
&#160;&nbsp;空格
&#165;&yen;¥
&#169;&copy;©
&#174;&reg;®
&#175;&macr;¯
&#176;&deg;°
&#177;&plusmn;±
&#215;&times;×

RCDATA 状态

RCDATA 元素

RCDATA 的全称是 Raw Character Data,意为 原始字符数据。RCDATA 元素是 HTML 中的一类元素,其与普通元素的不同之处在于,它们允许字符数据而不会被解析成 HTML 标记,因此 在 RCDATA 元素内可以包含除外围 RCDATA 元素的结束标记外的其他类型的 HTML 元素。

举个栗子

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><!-- HTML 解析器会将 textarea 元素中的内容均视为纯文本数据。 --><textarea cols="100" rows="13">
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 在 RCDATA 状态下的 HTML 字符实体可以被正常解析 --><title> &lt;两侧均是由字符实体转换而来的尖括号&gt; </title>
</head>
<body></body>
</html></textarea></body></html>

执行效果

HTML 规范与 RCDATA 元素

元素功能
<textarea>用于输入多行文本的文本框,可以包含文本和标记。
<title>用于指定文档的标题。
<pre>pre 元素用于指定预格式化文本,保留文本中的空格、换行和其他特殊字符,并将其原样显示在页面上。
RCDATA 状态

RCDATA 元素需要有 RCDATA 状态来解析其中的内容。在 RCDATA 状态下,HTML 解析器会将标记之间的内容解析为纯文本,这意味着 HTML 解析器在遇到 RCDATA 元素中的内容时,将进入 与文本状态类似(在文本状态时,HTML 解析器无法将标签解析为文本但能够解析字符实体)的状态

RCDATA 元素的存在可以方便地在 HTML 中插入纯文本内容,同时避免了因包含 HTML 标记而导致的解析错误。

RAWTEXT 状态

在 HTML 解析器中,RAWTEXT 状态表示解析器在解析 scriptstyle 标签中的文本内容。RAWTEXT 状态与 RCDATA 状态类似,但是在 RAWTEXT 状态中,HTML 解析器 不会解析实体引用和标签,而是将其视为纯文本内容。这意味着在 RAWTEXT 状态中,所有的字符都被视为文本,包括标签符号 < 和实体引用 &。在 RAWTEXT 状态下,解析器会一直解析到遇到 </script></style> 标签,这时会回到之前的状态继续解析 HTML 文档。

PLAINTEXT 状态

PLAINTEXT 元素

在 HTML 中,PLAINTEXT 元素是一种 已经被废弃(自 HTML3.2 废弃) 的元素,它曾经用于指定文档的一部分应该以纯文本形式显示,而不应该被解释为 HTML 标记。<plaintext> 标签会将 该标签后的所有内容,包括其可选的结束标签( </plaintext> )视为普通文本。

举个栗子

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><plaintext></plaintext><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h1>Hello World</h1>
</body>
</html>

执行效果

在这里插入图片描述

PLAINTEXT 状态

当 HTML 解析器解析到 plaintext 元素时,HTML 解析器将进入 PLAINTEXT 状态。PLAINTEXT 状态 通常 是由服务器发送一个特殊的 MIME 类型 (text/plain) 来触发的,而不是由 HTML 中的元素来触发。 在 PLAINTEXT 状态下,浏览器不会解释 任何 HTML 标记,也不会执行 任何 嵌入式脚本(如 JavaScript)。

相关文章:

拨云见日:深入理解 HTML 解析器与有限状态机

文章目录 参考描述状态机状态机有限状态机与无限状态机有限状态机与自动售货机无限状态机与计算器 HTML 解析器HTML 解析器HTML 与有限状态机 HTML 解析器的常见状态初始状态DOCTYPE 状态注释状态标签状态开始标签状态属性状态属性名状态属性值状态 结束标签状态自闭和标签状态…...

Java线程池及其实现原理

线程池概述 线程池&#xff08;Thread Pool&#xff09;是一种基于池化思想管理线程的工具&#xff0c;经常出现在多线程服务器中&#xff0c;如MySQL。 线程过多会带来额外的开销&#xff0c;其中包括创建销毁线程的开销、调度线程的开销等等&#xff0c;同时也降低了计算机…...

进程替换函数组介绍exec*

目录 前述 execl execlp execle execv execvp execvpe 前述 介绍后缀的意义&#xff1a; l &#xff08;list&#xff09;&#xff1a;表示参数采用列表。 v&#xff08;vector&#xff09;&#xff1a;参数同数组表示。 p&#xff08;path&#xff09;&#xff1a;自…...

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失&#xff0c;与上个月相比&#xff0c;损失金额有所降落&#xff0c;但安全事件数量依旧不减。其中&#xff0c;Yearn Finance因参数配置错误&#xff0c;导致了1000多万美金的损失。同时&#xff0c;有一些已经出现过的…...

KubeVirt备份与还原方案【翻译】

KubeVirt备份与还原方案【翻译】 ref:https://github.com/kubevirt/kubevirt/blob/main/docs/backup-restore-integration.md 备份 为所有必需的k8s资源构建依赖关系图冻结应用程序pvc数据快照解冻应用程序将所有必需的k8s资源定义拷贝到一个共享的存储位置&#xff08;可选…...

使用PyQt5设计一款简单的计算器

目录 一、环境配置&#xff1a; 二、代码实现 三、主程序 四、总结 本文使用PyQt5设计一款简单的计算器&#xff0c;可以通过界面交互实现加减乘除的功能&#xff0c;希望能够给初学者一些帮助。主要涉及的知识点有类的定义与初始化、类的成员函数、pyqt5的信号与槽函数等。…...

Htop使用说明

目录 引言 什么是htop htop安装 htop界面介绍 htop功能介绍 引言 我们使用服务器的时候常常需要关注下自己的程序资源占用情况&#xff0c;htop就是一种互动式的进程查查看器&#xff0c;整齐用下来感觉比top的逼格高&#xff0c;造作可视化都更方便些&#xff0c;我觉得还…...

PostgreSQL Linux安装

安装依赖&#xff1a; sudo yum -y install readline-devel zlib-devel 安装Postgres&#xff1a; ssh hadoophadoop001 #下载Postgres wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz tar -zxvf postgresql-14.2.tar.gz -C /data #编译前准备 /dat…...

亚商投资顾问 早餐FM/0509车辆电动化

01/亚商投资顾问 早间导读 1.上交所拟于5月11日举办“发现央企投资价值&#xff0c;促进央企估值回归”交流会 2.监管部门十方面举措加强房地产经纪行业管理 3.广东&#xff1a;推动城市公共服务及货运配送车辆电动化替代 4.昆山两楼盘因大幅降价被暂停网签&#xff1a;降幅…...

AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)

大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我&#xff0c;备注&#xff1a;aigc&#xff0c;拉你进群。 现在市面上AI绘图大概有三大阵营&#xff1a;Midjourney、Stable Diffusion&#xff0c;还有一个就是OpenAI实…...

学习笔记(2)项目结构描述 - manifest.json和pages.json

目录 1&#xff0c;manifest.json2&#xff0c;pages.json2.1&#xff0c;pages2.2&#xff0c;globalStyle2.3&#xff0c;tabBar 1&#xff0c;manifest.json 官方详情 uni-app 的 appid 由 DCloud 云端分配&#xff0c;主要用于 DCloud 相关的云服务&#xff0c;请勿自行修…...

vector、deque、list相关知识点

vector erase返回迭代器指向删除元素后的元素insert返回迭代器指插入的元素reserve只给容器底层开指定大小内存空间&#xff0c;并不添加新元素 deque 底层数据结构 动态开辟的二维数组&#xff0c;一维数组从2开始&#xff0c;以2倍方式扩容&#xff0c;每次扩容和&#x…...

多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比

多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比 目录 多维时序 | MATLAB实现基于VMD-SSA-LSSVM、SSA-LSSVM、VMD-LSSVM、LSSVM的多变量时间序列预测对比预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 多维时序 …...

设计模式——适配器模式(类适配器、对象适配器)

是什么&#xff1f; 我们平时的有线耳机接口分为USB的和Type-C的接口&#xff0c;但是手机的耳机插口却只有一个&#xff0c;像华为的耳机插口现在基本都是Type-c的&#xff0c;那如果我们现在只有USB接口的耳机怎么办呢&#xff0c;这个时候就需要使用到一个转换器&#xff0c…...

iOS开发多target

场景 背景:设想一下有一个场景,一个业务分为多种身份,他们大部分功能是相同的,但是也有自己的差异性。这种情况,想要构建出不同身份的APP。你会怎么做??? 当然,你可以拷贝一份代码出来,给项目重新命名。这样做的好处是,他们互相不会冲突,不用去关心是否有逻辑的冲…...

100种思维模型之每日评估思维模型-58

曾子曰&#xff1a;吾日三省吾省&#xff0c;为人谋而不忠乎&#xff1f;与朋友交不信乎&#xff1f;传不习乎&#xff1f; 曾国藩&#xff0c;坚持每日写复盘日记&#xff0c;最后他用自己的实践经历向我们证明&#xff1a;一个智商很平庸、出身很普通且有着各种毛病的人&…...

libreoffice api

libreOffice API是用于访问libreOffice的编程接口。可以使用libreOffice API创建、打开、修改和打印libreOffice文档。 LibreOffice API支持Basic、Java、C/C、Javascript、Python语言。 这是通过一种称为通用网络对象 (Universal Network Objects, UNO) 的技术实现的&#xff…...

全网最火,Web自动化测试驱动模型详全,一语点通超实用...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 自动化测试模型&a…...

如何写软件测试简历项目经验,靠这个面试都要赶场

一、前言&#xff1a;浅谈面试 面试是我们进入一个公司的门槛&#xff0c;通过了面试才能进入公司&#xff0c;你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试&#xff0c;得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一…...

【Linux】Linux下安装Mysql(图文解说详细版)

文章目录 前言第一步&#xff0c;进到opt文件夹下面&#xff0c;为什么&#xff1f;因为opt文件夹相当于Windows下的D://software第二步&#xff0c;用yum安装第三步&#xff0c;设置mysql的相关配置第四步&#xff0c;设置远程连接。第五步&#xff0c;更改mysql的语言第六步&…...

Cookie和Session的API、登录页面

目录 一、Cookie 和 Session 1、HttpServletRequest 类中的相关方法 2、HttpServletResponse 类中的相关方法 3、HttpSession 类中的相关方法 4、Cookie 类中的相关方法 二、网页登录 1、约定前后端交互接口 2、编写一个简单的登录页面 3、编写一个Servlet 来处理这个…...

C++数据结构:手撕红黑树

目录 一. 红黑树的概念及结构 二. 红黑树节点的定义 三. 红黑树节点的插入 3.1 初步查找插入节点的位置并插入节点 3.2 红黑树结构的调整 3.3 红黑树节点插入完整版代码 四. 红黑树的结构检查 4.1 检查是否为搜索树 4.2 检查节点颜色是否满足要求 附录&#xff1a;红黑…...

Spring IoC 深度学习

Io回顾 IoC 是 Inversion of Control 的简写&#xff0c;译为“控制反转”&#xff0c;它不是一门技术&#xff0c;而是一种设计思想&#xff0c;是一个重要的面向对象编程法则&#xff0c;能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容器来管理所有 Jav…...

C语言从入门到精通第17天(指针和数组联用)

指针和数组联用 不同类型指针变量之间的区别数组的指针指针数组 不同类型指针变量之间的区别 在了解数组和指针联用之前&#xff0c;我们先对指针变量进行补充。我们对比一下int *p1和char *p2的区别&#xff1f; 相同点&#xff1a; 都是指针变量都是用来保存一个内存地址编…...

Android9.0 原生系统SystemUI下拉状态栏和通知栏视图之锁屏通知布局

1.前言 在9.0的系统rom定制化开发中,对于系统原生systemui的锁屏界面的功能也是非常重要的,所以在锁屏页面布局中,也是有通知栏布局的,所以接下来对于息屏亮屏 通知栏布局的相关流程分析,看下亮屏后锁屏页面做了哪些功能 2.原生系统SystemUI下拉状态栏和通知栏视图之锁…...

音视频八股文(10)-- mp4结构

介绍 mp4⽂件格式⼜被称为MPEG-4 Part 14&#xff0c;出⾃MPEG-4标准第14部分 。它是⼀种多媒体格式容器&#xff0c;⼴泛⽤于包装视频和⾳频数据流、海报、字幕和元数据等。&#xff08;顺便⼀提&#xff0c;⽬前流⾏的视频编码格式AVC/H264 定义在MPEG-4 Part 10&#xff09…...

python算法中的深度学习算法之深度信念网络(详解)

目录 学习目标: 学习内容: 深度信念网络 Ⅰ. 预训练 Ⅱ. 微调 学习目标: 一分钟掌握 python算法中的深度学习算法之深度信念网络 入门知识...

SPSS如何绘制常用统计图之案例实训?

文章目录 0.引言1.绘制简单条形图2.绘制分类条形图3.绘制分段条形图4.绘制简单线图5.绘制多重线图6.绘制垂直线图7.绘制简单面积图8.绘制堆积面积图9.绘制饼图10.绘制直方图11.绘制简单散点图12.绘制重叠散点图13.绘制矩阵散点图14.绘制三维散点图15.绘制简单箱图16.绘制分类箱…...

打动人心的故事 | 如何利用文案在Facebook上塑造品牌形象

在当今的数字营销时代&#xff0c;文案已经成为各大平台上不可或缺的元素之一。在Facebook上&#xff0c;一个好的文案能够为品牌带来巨大的曝光率和用户黏性&#xff0c;甚至可以改变用户对品牌的看法。那么&#xff0c;如何利用文案在Facebook上打动人心&#xff0c;塑造品牌…...

什么是模糊控制?

模糊控制设计原理 1、传统控制系统和模糊控制系统 传统控制系统结构&#xff1a; 控制目的&#xff1a;通过控制器调节控制信号u&#xff0c;使输出信号y达到要求 模糊控制系统结构&#xff1a; 与传统控制系统的差异&#xff1a;用模糊控制器FC&#xff08;Fuzzy Controller&…...

网络营销与策划实训/长沙网站优化推广方案

结果为: [2,3] 和 [2] array.splice(start[, deleteCount[, item1[, item2[, …]]]]) splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。 start: 指定修改的开始位置&#xff08;从0计数&#xff09; i…...

汕头市网站建设/seo技术论坛

MVC中怎么设置默认页&#xff0c;在webform中 只要右键设置起始页就可以&#xff0c;但MVC中却没有这个功能&#xff0c;其实MVC更简单 如下&#xff1a;  Login是控制器&#xff0c;Index 是动作 在全局Global.asax中改动下即可 这个是针对area的默认页 namespaces&#xff1…...

wordpress远程缩略图/win7最好的优化软件

相信很多同学即便没有接触过富文本编辑领域&#xff0c;也一定听说过【富文本编辑是天坑&#xff0c;千万不要碰】的说法——是的&#xff0c;富文本编辑是天坑&#xff0c;但 Slate 能很好地帮助你。下面会介绍富文本编辑的复杂度所在&#xff0c;以及 Slate 的解决方式。 背景…...

中国企业500强门槛/超级优化大师下载

关于获取本地磁盘盘符有四个基本的函数&#xff1a;GetLogicalDrives, GetLogicalDriveStrings, GetDriveType 和 GetVolumeInformation。第五个是 SetVolumeLabel&#xff0c;如果你愿意&#xff0c;可以用它设置卷标。第一个函数&#xff0c;GetLogicalDrives&#xff0c;返…...

怎样做网站用dwcs6/免费有效的推广网站

很高兴为您服务&#xff01;我可以提供一些有关如何使用Vue来编写一个时间搜索框的指导。首先&#xff0c;您需要在您的HTML文件中创建一个元素&#xff0c;并将其类型设置为“date”。然后&#xff0c;您需要使用Vue的v-model指令将输入值绑定到一个Vue实例变量中。最后&#…...

做酒业网站的要求/河南关键词优化搜索

4月18日&#xff0c;“屏价不凡”2019酷开网络大屏价值优选推介活动在北京举行。会上&#xff0c;酷开网络分享了大屏价值的用户思维&#xff0c;大屏价值可养成的生态体系&#xff0c;大屏价值的创新营销模式等&#xff0c;带领OTT营销走向新的技术流、数据化阶段。 本次会议…...