【前端面试3+1】16 TCP与UDP的区别、如何清除浮动、哪些原因造成阻塞页面渲染、【相同的树】

一、TCP与UDP的区别

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的网络传输协议,它们有以下几点区别:

1、连接性:

  • TCP是面向连接的协议,通信双方在传输数据之前需要建立连接,数据传输完毕后需要断开连接。
  • UDP是无连接的协议,通信双方之间在传输数据时不需要建立连接,数据包之间相互独立。

2、可靠性:

  • TCP提供可靠的数据传输,它通过序列号、确认应答、重传机制等来确保数据的完整性和可靠性。
  • UDP不提供数据传输的可靠性保证,数据包可能会丢失或乱序,应用程序需要自行处理数据的丢失或重传。

3、传输效率:

  • TCP的可靠性和连接管理会带来一定的开销,因此在传输效率上通常比UDP略低
  • UDP没有连接管理和可靠性保证,传输效率较高,适用于实时性要求较高的应用场景。

4、应用场景:

  • TCP适用于需要可靠数据传输和顺序传输的应用,如文件传输、网页访问等。
  • UDP适用于实时性要求较高、数据量较小、允许数据丢失的应用,如音视频传输、在线游戏等。

二、如何清除浮动?

清除浮动是为了解决父元素包含浮动子元素时可能导致的高度塌陷或布局错乱的问题。

1、使用clearfix技巧:

        在父元素上应用 clearfix 类,可以通过以下方式实现:

.clearfix::after {content: "";display: table;clear: both;
}

2、使用overflow属性:

        在父元素上添加 overflow: hidden; 或 overflow: auto; 属性,可以触发 BFC(块级格式化上下文),从而清除浮动。

3、使用伪元素清除浮动:

        在父元素上使用伪元素清除浮动,如下所示:

.parent::after {content: "";display: table;clear: both;
}

4、使用clear属性:

        在父元素之后添加一个空元素,并为其应用 clear: both; 属性,也可以清除浮动。

5、使用父元素设置高度:

        如果知道子元素的高度,可以在父元素上设置一个固定高度,也可以清除浮动。

三、哪些原因会造成阻塞页面的渲染?

以下是一些常见的原因:

1、CSS和JavaScript资源的加载:

        当浏览器解析HTML文档时,遇到外部CSS和JavaScript资源的引用时,会停止解析并开始下载这些资源。如果这些资源加载速度较慢或者有大量资源需要下载,会导致页面渲染被阻塞。

2、JavaScript的执行:

        JavaScript的执行会阻塞页面的渲染。特别是在页面底部加载的JavaScript文件,如果JavaScript代码执行时间过长,会延迟页面的呈现。

3、CSS和JavaScript的解析:

        如果CSS和JavaScript文件较大或者包含复杂的代码,会增加解析时间,从而影响页面的加载速度

4、DOM的构建:

        当浏览器构建DOM树时,如果遇到复杂的DOM结构或者大量的DOM元素,会导致页面渲染被阻塞。

5、渲染树的构建

        浏览器在构建渲染树时会合并DOM树和CSSOM树,生成最终的渲染树。如果CSSOM树的构建时间较长,会延迟页面的显示

6、字体加载:

        如果页面中使用了自定义字体或者远程字体,浏览器需要下载并解析这些字体文件,会阻塞页面的渲染。

7、图片加载:

        如果页面中有大量的图片需要加载,或者图片文件较大,会影响页面的加载速度。

8、重排和重绘:

        当页面中的元素样式发生改变时,浏览器会进行重排(reflow)和重绘(repaint),这也会影响页面的渲染速度。

四、【算法】相同的树

1、题目:

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {}

2、解题:

这道题可以通过递归的方式来解决。具体的解题思路如下:

  1. 首先判断两棵树是否都为空,如果是,则认为它们相同,返回true
  2. 然后判断其中一棵树为空的情况,如果有一棵树为空一棵树非空,则认为它们不同,返回false
  3. 接着比较两棵树的根节点值是否相同,如果不同,则认为它们不同,返回false
  4. 最后递归比较两棵树的左子树和右子树,如果左右子树都相同,则返回true,否则返回false
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (p == NULL && q == NULL) {return true; // 两棵树都为空,认为相同}if (p == NULL || q == NULL) {return false; // 一棵树为空,一棵树非空,认为不同}if (p->val != q->val) {return false; // 根节点值不同,认为不同}// 递归比较左右子树return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区间相关

判断两区间是否有交集? 线段元素有序(比如按照x1排序:a ,b): a x 2 > b x 1 ax2 > bx1 ax2>bx1 无序: m i n ( a x 2 , b x 2 ) > m a x ( a x 1 , b x 1 ) min(ax2, bx2) > max(ax1, bx1) min(ax2,…

excel里如何的科学计数法的数字转换成数值?

比如下图,要想把它们转换成3250跟1780,有什么快捷的办法吗? 科学计数法在excel里的格式,与我们常规在数学上写的有差异。这个转换可以这样做: 1.转换后的效果: 2.问题分析 题目中所附截图,单元…

Python学习笔记24 - 学生信息管理系统

1. 需求分析 2. 系统设计 3. 系统开发必备 4. 主函数设计 5. 学生信息维护模块设计 a. 录入学生信息 b. 删除学生信息 c. 修改学生信息 d. 查询学生信息 e. 统计学生总人数 f. 显示所有学生信息 g. 排序模块设计 6. 项目打包

【Leetcode】1702. 修改后的最大二进制字符串

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 给你一个二进制字符串 b i n a r y binary binary ,它仅有 0 0 0 或者 1 1 1 组成。你可以使用下面的操作任意次对它进行修改: 操作 1 :如果…

解决vue3更新chunk包后,点击页面报错

出现错误 解决思路 试了好多方法,跳了很多坑,router版本对不上,解决方案不实用。最后我直接捕获异常,刷新页面,解决最快最有效。 // vue-rotuer版本 "vue-router": "^4.0.3"解决方案 在router/…

Linux 文件页反向映射

0. 引言 操作系统中与匿名页相对的是文件页,文件页的反向映射对比匿名页的反向映射更为简单。如果还不清楚匿名页反向映射逻辑的,请移步 匿名页反向映射 1. 文件页反向映射数据结构 struct file: 用户进程每open()一次文件,则会生…

前端三件套学习笔记(持更)

目录 1、HTML,CSS,JS区别 2、HTML结构 1、HTML,CSS,JS区别 结构写到 HTML 文件中&#xff0c; 表现写到 CSS 文件中&#xff0c; 行为写到 JavaScript文件中。 2、HTML结构 <!DOCTYPE html> <html><head><title>我的第一个页面</title><…

【系统分析师】需求工程☆

文章目录 0、需求工程概述1、需求的分类2、需求获取3、需求分析3.1 结构化需求分析-SA3.1.1DFD- 数据流图3.1.2 STD-状态转换图3.1.3 ER图-实体联系图 3.2 面向对象需求分析-OOA3.2.1 工具-UML图3.2.2 UML分类3.2.3 用例图 ☆3.2.4 类图 / 对象图 ☆3.2.5 顺序图3.2.6 活动图3.…

科研学习|科研软件——如何使用SmartPLS软件进行结构方程建模

SmartPLS是一种用于结构方程建模&#xff08;SEM&#xff09;的软件&#xff0c;它可以用于定量研究&#xff0c;尤其是在商业和社会科学领域中&#xff0c;如市场研究、管理研究、心理学研究等。 一、准备数据 在使用SmartPLS之前&#xff0c;您需要准备一个符合要求的数据集。…

windows 系统下全新下载安装 mysql8.0 数据库(详细)

windows 系统下全新下载安装 mysql8.0 数据库&#xff08;详细&#xff09; 段子手168 1、登录官方网站下载&#xff1a; https://dev.mysql.com/downloads/windows/installer/ 2、下载最新版本&#xff0c;一般可能需要注册登录&#xff0c;下载其他历史版本&#xff0c;请…

transformer在生物基因DNA的应用:DNABERT、DNABERT-2

参考&#xff1a; https://www.youtube.com/watch?vmk-Se29QPBA&t1388s 写明这些训练模型可以最终训练好可以进行DNA特征向量的提取&#xff0c;应用与后续1、DNABERT https://github.com/jerryji1993/DNABERT 主要思路就是把DNA序列当成连续文本数据&#xff0c;直接用…

20240414,类的嵌套,分文件实现

笑死&#xff0c;和宝哥同时生病了 一&#xff0c;封装-案例 1.0 立方体类 #include<iostream>//分别用全局函数和成员函数判定立方体是否相等 using namespace std;class Cube { public:int m_area;int m_vol;int geth(){return m_h;}int getl() { return m_l; }int…