35道HTML高频题整理(附答案背诵版)
1、简述 HTML5 新特性 ?
HTML5 是 HTML 的最新版本,它引入了很多新的特性和元素,以提供更丰富的网页内容和更好的用户体验。以下是一些主要的新特性:
-
语义元素:HTML5 引入了新的语义元素,像
<article>
,<section>
,<nav>
,<header>
,<footer>
,<aside>
等。这些元素可以帮助更好地描述网页的结构和内容。例如,
<nav>
元素可以用于包含页面的主导航链接,而<footer>
元素可以用于包含页面的底部信息,如作者信息、版权信息等。 -
图形和多媒体元素:HTML5 引入了
<canvas>
元素用于在网页上绘制图形,以及<audio>
和<video>
元素用于在网页上嵌入音频和视频内容。例如,
<video>
元素可以用于在网页上嵌入一个视频播放器,而<canvas>
元素可以用于在网页上绘制动态图形,如游戏图像。 -
表单控件:HTML5 增加了新的表单控件,如日期和时间选择,电子邮件和网址输入等,这使得网页表单的创建变得更加方便。
例如,
<input type="date">
元素可以用于在表单中创建一个日期选择器。 -
Web 存储:HTML5 引入了本地存储(localStorage)和会话存储(sessionStorage),用于在用户的浏览器上存储数据。
例如,localStorage 可以用于在用户关闭浏览器后仍然保持用户的登录状态或购物车信息。
-
地理位置:HTML5 的地理位置 API 允许网站获取用户的地理位置信息。
例如,一些天气网站可以使用地理位置 API 来自动显示用户当前位置的天气。
-
WebSocket:HTML5 的 WebSocket API 提供了在网页和服务器之间建立实时通信的能力。
例如,聊天应用或实时数据更新的应用可以使用 WebSocket 来实现。
以上只是 HTML5 的一部分新特性,还有更多的新特性等待开发者去发现和利用。
2、HTML5 为什么只需要写 !DOCTYPE HTML?
在 HTML4 和 XHTML 中,我们需要写出完整的 DOCTYPE,包括 DTD(文档类型定义)的 URL,这是因为这些版本的 HTML 与 SGML(标准通用标记语言)有关联,需要引用 DTD 来解析文档。例如,HTML 4.01 严格模式的 DOCTYPE 会是这样:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
然而,HTML5 不再基于 SGML,因此不需要引用 DTD,所以 DOCTYPE 的声明变得简单了,只需要写 <!DOCTYPE html>
。这告诉浏览器该文档是 HTML5 文档,应该使用 HTML5 的规则来解析。
这种简化的 DOCTYPE 同时也有助于提升网页的兼容性,因为所有现代浏览器都能正确地理解 <!DOCTYPE html>
,并以标准模式渲染网页,而不是怪异模式。
3、HTML5 有哪些新特性、移除了那些元素?
HTML5 引入了许多新的特性和元素,同时也移除了一些过时或不常用的元素。这些变化主要是为了提高 HTML 的语义性,以及增强用户体验和交互性。
HTML5 的新特性和元素主要包括:
-
语义元素:如
<article>
,<section>
,<nav>
,<header>
,<footer>
,<figure>
,<figcaption>
,<aside>
等。 -
表单元素和属性:如新的输入类型
<input type="email">
,<input type="tel">
,<input type="number">
,<input type="range">
等,以及 form 属性如placeholder
,required
,autocomplete
,autofocus
等。 -
多媒体元素:
<audio>
和<video>
用于嵌入音频和视频。 -
图形元素:
<canvas>
用于在页面上绘制图形。 -
新的 API:如地理位置(Geolocation)、本地存储(LocalStorage 和 SessionStorage)、应用缓存(Application Cache)、Web Workers、WebSocket 等。
HTML5 移除的元素主要包括:
-
纯表现性元素:如
<font>
,<center>
,<big>
,<small>
,<strike>
,<tt>
等。这些元素的功能可以通过 CSS 来实现,因此被移除。 -
过时的元素:如
<frame>
,<frameset>
,<noframes>
。这些元素用于创建框架页面,但现在已经被 CSS 的布局功能取代。 -
冗余的元素:如
<acronym>
。这个元素的功能已经被<abbr>
元素覆盖。
以上只是部分变化,还有更多的新特性和移除的元素。这些变化都是为了让 HTML 更加语义化,更加适应现代的网页设计和开发需求。
4、如果把HTML5看做一个开放的平台,那么它构建的模块有哪些?
如果我们将 HTML5 视为一个开放的平台,那么它主要由以下几个模块组成:
-
语义化标签:HTML5 引入了许多新的语义化标签,如
<nav>
、<article>
、<section>
、<header>
、<footer>
等,这些标签帮助开发者更好地组织和理解网页结构。 -
多媒体支持:HTML5 提供了
<audio>
和<video>
标签,使得在网页中嵌入音频和视频变得更加简单。同时,HTML5 还提供了对于字幕、章节、音轨等更加丰富的支持。 -
图形和动画:HTML5 引入了
<canvas>
标签,它是一个强大的图形容器,可以用于绘制图形、制作动画,甚至开发游戏。此外,HTML5 还支持 SVG 和 WebGL。 -
离线和存储:HTML5 提供了本地存储(localStorage)和会话存储(sessionStorage),这使得网页可以在浏览器端存储用户信息。此外,HTML5 的应用缓存(Application Cache)技术可以使得网页在离线时仍然可用。
-
设备访问:HTML5 提供了一系列 API,使得网页可以访问设备的功能,如地理位置(Geolocation API)、设备方向(Orientation API)、摄像头和麦克风访问(getUserMedia API)等。
-
连接:HTML5 提供了 WebSocket API,使得浏览器和服务器可以进行全双工通信。此外,HTML5 还支持 Server-Sent Events,服务器可以主动向客户端发送更新。
-
性能和集成:HTML5 提供了 Web Workers 技术,使得网页可以在后台线程中运行任务,不会阻塞用户界面。此外,HTML5 还提供了对于拖放(Drag and Drop API)的原生支持。
-
CSS3:虽然不是 HTML5 的一部分,但 CSS3 是与 HTML5 同时发展的,它提供了对于颜色、字体、布局、动画等更加丰富的控制。
-
JavaScript:HTML5 平台的核心部分,用于实现网页的交互功能。
以上模块共同构建了 HTML5 这个强大的开放平台,使得开发者可以创建更加丰富、交互式的网页和 Web 应用。
5、简述HTML5的离线储存?
HTML5的离线存储主要指的是两种技术:Web Storage(包括 LocalStorage 和 SessionStorage)和 Application Cache。
-
Web Storage:Web Storage 提供了两种在客户端存储数据的方式。
-
LocalStorage:数据存储在浏览器的本地,没有过期时间,即使关闭浏览器或电脑,数据也会一直存在,除非用户主动删除或者通过代码进行删除。这可以用来存储一些持久的数据,比如用户的个性化设置等。
-
SessionStorage:数据存储在浏览器的会话中,当会话结束(比如关闭浏览器或者关闭浏览器的某个标签页)时,数据会被清除。这可以用来存储一些临时的数据,比如用户在一个网页表单中填写的信息。
这两种方式都提供了5-10MB的存储空间(具体取决于浏览器),并且提供了一些简单的 API 来存储和读取数据。
-
-
Application Cache:Application Cache(应用缓存)是一种可以让网页在没有网络连接的情况下也能访问的技术。通过在网页的头部添加一个 manifest 文件,可以指定需要缓存的资源(比如 HTML 文件、图片、CSS 文件、JavaScript 文件等)。当用户首次访问这个网页时,这些资源会被下载并存储在浏览器的本地。然后,无论是否有网络连接,浏览器都会从缓存中加载这些资源,而不是从网络上下载。
这个技术可以用来开发离线应用,或者提高网页的加载性能。不过,由于 Service Worker 的出现,Application Cache 在 HTML5 的最新标准中已经被废弃,建议使用 Service Worker 和 Cache API 来实现类似的功能。
以上就是 HTML5 离线存储的简单介绍,这些技术可以帮助开发者创建更加快速、稳定和响应式的网页和 Web 应用。
6、如何处理HTML5新标签的浏览器兼容问题?
HTML5 提供了许多新的标签,但不幸的是,一些旧的浏览器(如 IE8 及以下版本)并不支持这些新标签。为了在这些浏览器中使用 HTML5 新标签,我们可以采取以下几种方法:
-
HTML5 Shiv:HTML5 Shiv 是一个 JavaScript 库,它使得旧的浏览器能够识别并正确处理 HTML5 新标签。你可以通过在 HTML 文档的
<head>
中添加以下代码来使用它:<!--[if lt IE 9]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script> <![endif]-->
这段代码使用了条件注释,只有在 IE9 以下版本的浏览器中才会加载这个 JavaScript 文件。
-
创建元素:你也可以直接使用 JavaScript 来创建 HTML5 新标签,这样旧的浏览器就能识别这些标签了。例如:
document.createElement("section");
这种方式的问题是,你需要为每一个你想使用的 HTML5 新标签都写一行这样的代码。
-
使用框架或库:许多现代的 JavaScript 框架或库,如 jQuery、Angular、React 等,都提供了一些方法来解决 HTML5 的浏览器兼容性问题。
-
CSS 重置:旧的浏览器可能不会为 HTML5 新标签应用任何样式,所以你可能需要在 CSS 中为这些标签添加一些默认样式。例如,你可以将这些标签的
display
属性设置为block
:article, aside, figure, footer, header, nav, section {display: block; }
以上就是处理 HTML5 新标签的浏览器兼容问题的一些方法。请注意,虽然这些方法可以解决一部分问题,但并不能保证 HTML5 的所有特性在所有浏览器中都能正常工作。因此,在使用 HTML5 新特性时,最好还是要做好充分的测试和兼容性处理。
7、如何区别HTML和HTML5?
HTML 和 HTML5 都是用于创建网页和 Web 应用的标记语言,但 HTML5 提供了更多的特性和功能。以下是一些区别 HTML 和 HTML5 的主要方式:
-
语义标签:HTML5 引入了一系列新的语义标签,如
<header>
,<footer>
,<nav>
,<section>
,<article>
,<aside>
等。这些标签使得开发者可以更清晰地描述网页内容的结构和含义。而在 HTML 中,我们通常使用<div>
和<span>
等非语义标签来组织和样式化内容。 -
多媒体和图形支持:HTML5 提供了
<audio>
和<video>
标签用于在网页中嵌入音频和视频,而在 HTML 中,我们通常需要使用 Flash 或其他插件来播放多媒体内容。此外,HTML5 还引入了<canvas>
标签,用于在网页上绘制图形和动画。 -
表单控件和验证:HTML5 增加了许多新的表单输入类型,如
email
,tel
,number
,date
等,以及表单验证属性,如required
,pattern
等。这些新特性使得创建和验证表单变得更加方便。 -
新的 API:HTML5 提供了一系列新的 JavaScript API,如地理位置(Geolocation)、本地存储(Web Storage)、离线应用缓存(Application Cache)、Web Workers、WebSocket 等。这些 API 使得网页和 Web 应用可以提供更丰富的功能和更好的用户体验。
-
DOCTYPE 声明:HTML5 的 DOCTYPE 声明更加简单,只需要写
<!DOCTYPE html>
。而在 HTML 4.01 中,DOCTYPE 声明要复杂得多,需要包含对 DTD(文档类型定义)的引用。
以上就是 HTML 和 HTML5 的一些主要区别。请注意,虽然 HTML5 提供了更多的特性和功能,但并不是所有的浏览器都完全支持 HTML5,所以在使用 HTML5 新特性时,需要考虑到浏览器的兼容性问题。
8、新的HTML5文档类型和字符集是什么?
HTML5 的文档类型(doctype)和字符集(charset)定义更加简洁。
-
文档类型:HTML5 的文档类型只需写
<!DOCTYPE html>
,它告诉浏览器这是一个 HTML5 文档。这与 HTML 4.01 和 XHTML 1.0 的文档类型相比,更加简洁。<!DOCTYPE html>
-
字符集:HTML5 推荐使用 UTF-8 字符集,它可以表示任何字符在世界上的任何语言。字符集的定义也变得更加简洁。
<meta charset="UTF-8">
这两个定义通常位于 HTML 文档的 <head>
部分的开始位置。例如:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><!-- 其他元数据... -->
</head>
<body><!-- 页面内容... -->
</body>
</html>
这种简化的文档类型和字符集定义使 HTML5 更易于理解和使用,同时也提高了网页的兼容性,因为所有现代浏览器都能正确地理解这些定义。
9、简述HTML5新增了哪些功能API?
HTML5 引入了许多新的 API,以实现更丰富的网页功能和更好的用户体验。以下是一些主要的新 API:
-
Canvas API:用于在网页上绘制图形,如线条、形状、图片等。这个 API 还支持动画,因此可以用来开发网页游戏。
-
Video 和 Audio API:用于在网页上嵌入和控制视频和音频内容。
-
Geolocation API:用于获取和使用用户的地理位置信息。例如,可以用来显示用户当前位置的地图或天气。
-
Drag and Drop API:用于实现拖放功能。例如,可以用来创建可以拖动的网页元素,或者实现文件上传的拖放功能。
-
LocalStorage 和 SessionStorage API:用于在用户的浏览器上存储数据。例如,可以用来保存用户的登录状态,或者保存用户在表单中输入的数据。
-
Web Workers API:用于在后台线程中运行 JavaScript 代码,以避免阻塞用户界面。例如,可以用来执行耗时的计算任务,或者加载和处理大量的数据。
-
WebSocket API:用于在网页和服务器之间建立实时通信连接。例如,可以用来实现聊天应用,或者实时更新网页的数据。
-
History API:用于操作浏览器的历史记录。例如,可以用来实现单页应用(SPA)的路由功能。
以上只是 HTML5 的一部分新 API,还有更多的新 API 等待开发者去发现和利用。
10、HTML5的form如何关闭自动补全功能?
在HTML5中,如果我们想要关闭表单的自动补全(auto-complete)功能,我们可以使用autocomplete
属性,并将其值设置为off
。这样,浏览器就不会自动补全用户的输入。
例如,如果我们有一个登录表单,我们可能不希望浏览器自动补全用户的用户名和密码。在这种情况下,我们可以这样做:
<form autocomplete="off"><label for="username">用户名:</label><br><input type="text" id="username" name="username"><br><label for="pwd">密码:</label><br><input type="password" id="pwd" name="pwd"><input type="submit" value="提交">
</form>
在这个例子中,autocomplete="off"
告诉浏览器不要自动补全这个表单中的任何输入字段。然而,需要注意的是,虽然大部分现代浏览器都支持这个属性,但并非所有浏览器都会尊重这个设置。一些浏览器可能仍然会尝试自动补全输入,尤其是在处理用户名和密码字段时。
11、如何在HTML5页面中嵌入音频?
在HTML5中,我们可以使用<audio>
标签来嵌入音频。这是一个基本的例子:
<audio controls><source src="audio.mp3" type="audio/mpeg">您的浏览器不支持 audio 元素。
</audio>
在这个例子中,<audio>
标签创建了一个音频播放器,controls
属性添加了播放、暂停和音量等控制功能。
<source>
标签用于指定音频文件的来源,src
属性定义了音频文件的URL,type
属性定义了音频文件的格式。
如果用户的浏览器不支持<audio>
标签,那么它会显示标签内部的内容,即"您的浏览器不支持 audio 元素。"
需要注意的是,不同的浏览器可能支持不同的音频格式,因此可能需要提供多种格式的音频文件,以确保在所有浏览器中都可以播放。例如:
<audio controls><source src="audio.mp3" type="audio/mpeg"><source src="audio.ogg" type="audio/ogg">您的浏览器不支持 audio 元素。
</audio>
在这个例子中,如果浏览器不支持MP3格式,它会尝试加载OGG格式的音频文件。
12、如何在HTML5页面中嵌入视频?
在HTML5中,我们可以使用<video>
标签来嵌入视频。这是一个基本的例子:
<video width="320" height="240" controls><source src="movie.mp4" type="video/mp4"><source src="movie.ogg" type="video/ogg">您的浏览器不支持 video 标签。
</video>
在这个例子中,<video>
标签创建了一个视频播放器,controls
属性添加了播放、暂停、音量等控制功能。
width
和height
属性用于设置视频播放器的尺寸。
<source>
标签用于指定视频文件的来源,src
属性定义了视频文件的URL,type
属性定义了视频文件的格式。
如果用户的浏览器不支持<video>
标签,那么它会显示标签内部的内容,即"您的浏览器不支持 video 标签。"
需要注意的是,不同的浏览器可能支持不同的视频格式,因此可能需要提供多种格式的视频文件,以确保在所有浏览器中都可以播放。例如,如果浏览器不支持MP4格式,它会尝试加载OGG格式的视频文件。
13、HTML5引入了哪些新的表单属性?
HTML5引入了一些新的表单属性,这些属性提供了更好的输入控制和验证。以下是一些重要的新属性:
- placeholder - 在用户输入之前,可以在输入字段中显示提示信息。例如:
<input type="text" name="name" placeholder="请输入您的名字">
- required - 这个属性要求输入字段必须填写。如果在提交表单时该字段为空,则浏览器会显示错误信息。例如:
<input type="text" name="email" required>
- pattern - 这个属性允许你定义输入字段的正则表达式模式。这在需要限制输入格式(如电话号码或邮件地址)时非常有用。例如:
<input type="text" name="phone" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}">
- autofocus - 这个属性让页面加载时自动将焦点设置到特定的输入字段上。例如:
<input type="text" name="username" autofocus>
- autocomplete - 这个属性允许浏览器自动完成或预填充输入字段。例如:
<input type="text" name="email" autocomplete="on">
- multiple - 这个属性允许用户在文件输入字段中选择多个文件。例如:
<input type="file" name="files" multiple>
除了这些新的属性,HTML5还引入了一些新的输入类型(如email
、date
、number
、range
、color
等),以提供更好的输入控制。
14、HTML5应用缓存和常规的HTML浏览器缓存有什么差别?
HTML5的应用缓存(Application Cache)与传统的浏览器缓存(Browser Cache)在许多方面有所不同,主要区别在于他们的目标和控制方式:
-
目标:传统的浏览器缓存主要是为了提高网页的加载速度,通过保存用户最近请求过的文件(如图片、脚本等)来减少网络请求。而HTML5的应用缓存的目标则更为广泛,它不仅可以提高加载速度,还可以使得应用在离线状态下仍然可用。
-
控制:传统的浏览器缓存主要由浏览器自动管理,网站开发者对其控制能力有限。而HTML5的应用缓存则可以由开发者精细控制,开发者可以通过创建一个缓存清单(manifest文件),来明确指定哪些文件应该被缓存,哪些文件需要从网络加载,哪些文件在无网络连接时有备用资源等。
-
更新:在传统的浏览器缓存中,当文件的过期时间到达或者缓存空间不足时,文件会被自动删除。而在HTML5的应用缓存中,只有当manifest文件发生改变时,浏览器才会重新下载所有的文件。
需要注意的是,尽管应用缓存可以在离线时提供一些很好的功能,但是它也有一些复杂性和困扰性,因此现在很多开发者已经开始采用Service Worker和Cache API来实现离线功能和资源的精细控制。
由于内容太多,更多内容以链接形势给大家,点击进去就是答案了
15. 为什么HTML5里面不需要DTD ?
16. 哪些浏览器支持HTML5?
17. H5本地存储和会话(事务)存储之间的区别是什么?
18. 简述HTML5中的应用缓存 ?
19. 如果把HTML5看成一个开放平台,它的构建模块有哪些?
20. HTML5为什么只需要写<!doctype htm>?
21. HTML5应用程序缓存为应用带来什么优势?
22. 简述Web Worker和 WebSocket的作用?
23. 如何让 Websocket兼容低版本浏览器?
24. HTML5为浏览器提供了哪些数据存储方案?
25. 简述 sessionStorage和 localStorage的区别?
26. 简述localStorage和 cookie的区别 ?
27. 简述什么是SVG ?
28. 如何使用 Canvas和HTML5中的SVG画一个矩形?
29. 简述Canvas和SVG的区别 ?
30. 如何刷新浏览器的应用缓存?
31. 简述应用缓存中的回退是什么?
32. 简述应用缓存中网络命令的作用?
33. 简述HTML5如何实现跨域?
34. 如何解决移动端HTML5音频标签audio的 autoplay属性失效问题?
35. 解释在ie低版本下的怪异盒模型和c3的怪异盒模型 和 弹性盒模型 ?
相关文章:
35道HTML高频题整理(附答案背诵版)
1、简述 HTML5 新特性 ? HTML5 是 HTML 的最新版本,它引入了很多新的特性和元素,以提供更丰富的网页内容和更好的用户体验。以下是一些主要的新特性: 语义元素:HTML5 引入了新的语义元素,像 <article&g…...
【powershell】Windows环境powershell 运维之历史文件压缩清理
🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…...
【Linux】Linux线程概念和线程控制
文章目录 一、Linux线程概念1.什么是线程2.线程的优缺点3.线程异常4.线程用途5.Linux进程VS线程 二、线程控制1.线程创建2.线程终止3.线程等待4.线程分离 一、Linux线程概念 1.什么是线程 线程是进程内的一个执行流。 我们知道,一个进程会有对应的PCB,…...
Flink cdc3.0同步实例(动态变更表结构、分库分表同步)
文章目录 前言准备flink环境docker构建mysql、doris环境数据准备 通过 FlinkCDC cli 提交任务整库同步同步变更路由变更路由表结构不一致无法同步 结尾 前言 最近Flink CDC 3.0发布, 不仅提供基础的数据同步能力。schema 变更自动同步、整库同步、分库分表等增强功…...
国产Apple Find My认证芯片哪里找,伦茨科技ST17H6x芯片可以帮到您
深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…...
肺癌相关知识
写在前面 大概想了解下肺癌相关的知识,开此贴做记录,看看后续有没有相关的生信文章思路。 综述 文章名期刊影响因子Lung cancer immunotherapy: progress, pitfalls, and promisesMol Cancer37.3 常见治疗手段有surgery, radiation therapy, chemoth…...
ChimeraX使用教程-安装及基本操作
ChimeraX使用教程-安装及基本操作 1、访问https://www.cgl.ucsf.edu/chimerax/download.html进行下载,然后安装 安装完成后,显示界面 2、基本操作 1、点击file,导入 .PDB 文件。 (注:在 alphafold在线预测蛋白》点…...
【小黑嵌入式系统第十一课】μC/OS-III程序设计基础(一)——任务设计、任务管理(创建基本状态内部任务)、任务调度、系统函数
上一课: 【小黑嵌入式系统第十课】μC/OS-III概况——实时操作系统的特点、基本概念(内核&任务&中断)、与硬件的关系&实现 文章目录 一、任务设计1.1 任务概述1.2 任务的类型1.2.1 单次执行类任务(运行至完成型&#…...
Redis一些常用的技术
文章目录 第1关:Redis 事务与锁机制第2关:流水线第3关:发布订阅第4关:超时命令第5关:使用Lua语言 第1关:Redis 事务与锁机制 编程要求 根据提示,在右侧编辑器Begin-End补充代码,根据…...
基于QPainter 绘图图片绕绘制设备中心旋转
项目地址:https://gitcode.com/m0_45463480/QPainter/tree/main 获取途径:进入CSDN->GitCode直接下载或者通过git拉取仓库内容。 QPainter是Qt框架中的一个类,用于在QWidget或QPixmap等设备上进行绘图操作。它提供了丰富的绘图功能,可以用于绘制线条、图形、文本等。Q…...
计算机网络(4):网络层
网络层提供的两种服务 虚电路服务(Virtual Circuit Service)和数据报服务(Datagram Service)是在网络层(第三层)提供的两种不同的通信服务。它们主要区别在于建立连接的方式和数据传输的方式。 虚电路服务…...
动态内存分配(malloc和free、calloc和realloc)
目录 一、为什么要有动态内存分配 二、C/C中程序内存区域划分 三、malloc和free 2.1、malloc 2.2、free 四、calloc和realloc 3.1、calloc 3.2、realloc 3.3realloc在调整内存空间的是存在两种情况: 3.4realloc有malloc的功能 五、常见的动…...
C语言---井字棋(三子棋)
Tic-Tac-Toe 1 游戏介绍和随机数1.1 游戏介绍1.2 随机数的生成1.3 棋盘大小和符号 2 设计游戏2.1 初始化棋盘2.2 打印棋盘2.3 玩家下棋2.4 电脑下棋2.5 判断输赢2.6 game()函数2.7 main()函数 3 完整三子棋代码3.1 Tic_Tac_Toe.h3.2 Tic_Tac_Toe.c3.3 Test.c 4 游戏代码的缺陷 …...
[Kubernetes]3. k8s集群Service详解
在上一节讲解了k8s 的pod,deployment,以及借助pod,deployment来部署项目,但会存在问题: 每次只能访问一个 pod,没有负载均衡自动转发到不同 pod访问还需要端口转发Pod重创后IP变了,名字也变了针对上面的问题,可以借助Service来解决,下面就来看看Service怎么使用 一.Service详…...
C++ 指定范围内递增初始化一个vector<int> | Python: list(range(31, 90))
通过lambda表达式 std::iota()实现: template <typename Tp> inline void print_vec(const std::vector<Tp>& vec) {fmt::print("[{}]\n", fmt::join(vec, ", ")); }// 相当于Python的lst list(range(31, 90))const std::ve…...
【Java之数据结构与算法】
选择排序 package Code01;public class Code01_SelectionSort {public static void selectionSort(int[] arr) {if(arrnull||arr.length<2) {return;}for(int i0;i<arr.length;i) {int minIndex i;for(int ji1;j<arr.length;j) {minIndex arr[minIndex] > arr[j…...
爬虫scrapy中间件的使用
爬虫scrapy中间件的使用 学习目标: 应用 scrapy中使用间件使用随机UA的方法应用 scrapy中使用代理ip的的方法应用 scrapy与selenium配合使用 1. scrapy中间件的分类和作用 1.1 scrapy中间件的分类 根据scrapy运行流程中所在位置不同分为: 下载中间件…...
普冉(PUYA)单片机开发笔记 [完结篇]:使用体会
失败的移植:FreeRTOS 当使用了 PY32F003 的各种接口和功能后,手痒痒想把 FreeRTOS 也搬到这个 MCU 上,参考 STM32 和 GD32 对 FreeRTOS 的移植步骤,把 FreeRTOS v202212.00 版本的源码搬到了 Keil 工程中,编译倒是通过…...
Elasticsearch:生成 AI 中的微调与 RAG
在自然语言处理 (NLP) 领域,出现了两种卓越的技术,每种技术都有其独特的功能:微调大型语言模型 (LLM) 和 RAG(检索增强生成)。 这些方法极大地影响了我们利用语言模型的方式,使它们更加通用和有效。 在本文…...
ip静态好还是dhcp好?
选择使用静态 IP 还是 DHCP(动态主机配置协议)取决于您的网络需求和环境。下面是它们的一些特点和适用场景: 静态 IP: 固定的 IP 地址:静态 IP 是手动配置在设备上的固定 IP 地址,不会随时间或网络变化而改…...
PolarDB-X、OceanBase、CockroachDB、TiDB二级索引写入性能测评
为什么要做这个测试 二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的,因此索引的写入需要与主键的写入放在一个事务当中,事务的性能是二级索引性能的基础。 目前市面上的分布式数据库中,从使用体验的角度看…...
Convolutional Neural Network(CNN)——卷积神经网络
1.NN的局限性 拓展性差 NN的计算量大性能差,不利于在不同规模的数据集上有效运行若输入维度发生变化,需要修改并重新训练网络容易过拟合 全连接导致参数量特别多,容易过拟合如果增加更多层,参数量会翻倍无法有效利用局部特征 输入…...
鸿蒙开发基本概念
1、开发准备 1.1、UI框架 HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必需的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等。 方舟开发框架针对不同目的和技术…...
Open CV 图像处理基础:(二)从基本概念到实践操作
Open CV 图像处理基础:从基本概念到实践操作 一、引言 图像处理是计算机视觉领域的一个重要分支,它涉及对图像的各种操作和处理。了解图像的基本概念、读取和显示方法以及基本操作是图像处理的基础。本文将通过示例文章的形式,帮助初学者逐…...
【MAC】M2 安装docker 与 mysql
一、docker下载地址 下载地址 二、安装docker完成 罗列一下docker常用命令 # 查看docker版本 docker --version# 拉取镜像 docker pull 镜像名# 查看当前所有镜像 docker images# 查看运行中的容器 docker ps -a docker ps grep| 镜像名#镜像启动操作: sudo dock…...
轻量级web开发框架Flask本地部署及无公网ip远程访问界面
文章目录 前言1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 前言 本篇文章讲解如何在本地安装Flask,以及如何将其web界面发布到公网上并进行远程访问。 Flask是目前十分流行的web框架,采用P…...
用最通俗的语言讲解 TCP “三次握手,四次挥手”
目录 一. 前言 二. TCP 报文的头部结构 三. 三次握手 3.1. 三次握手过程 3.2. 为什么要三次握手 四. 四次挥手 4.1. 四次挥手过程 4.2. 为什么要四次挥手 五. 大白话说 5.1. 大白话说三次握手 5.2. 大白话说四次挥手 六. 总结 一. 前言 TCP 是一种面向连接的、可靠…...
使用RedisCacheWriter#clean在线异步地批量扫描匹配删除缓存数据-spring-data-redis
1.背景 生产环境,某云的某个业务Redis实例,触发内存使用率,连续 3 次 平均值 > 85 %告警。 运维同学告知,看看需要怎么优化或者升级配置?分享了其实例RDB的内存剖析链接。 通过内存剖析详情发现,存在某…...
机器视觉:AI赋能缺陷检测,铸就芯片产品的大算力与高能效
导言:近年来,国内芯片行业快速发展,市场对芯片需求的不断增大,芯片的缺陷检测压力也越来越大。芯片产品在生产制造过程中,需要经历数道工序,每个生产环节的材料、环境、工艺参数等都有可能造成产品缺陷。不…...
(9)Linux Git的介绍以及缓冲区
💭 前言 本章我们先对缓冲区的概念进行一个详细的探究,之后会带着大家一步步去编写一个简陋的 "进度条" 小程序。最后我们来介绍一下 Git,着重讲解一下 Git 三板斧,一般只要掌握三板斧就基本够用了。 缓冲区ÿ…...
游戏运营备案官方网站/云盘搜
赋值语句的是内存地址引用,不是拷贝拷贝是导入copy包,分copy和deepcopy两种,即浅拷贝和深拷贝对于非嵌套数据 copy.copy 和 copy.deepcopy 没有区别 都会开辟新空间 存储数据有嵌套的数据 copy.copy没有办法保证数据的独立性,拷贝第一层的数据…...
域名不用了需要注销吗/企业网站排名优化
为了使reids配置更优,在使用redis的时候需要注意一些规范,首先要注意,redis和任何cache都不适合写操作比较多的场景,只时候读多写少的场景。 定义key的时候,加上前缀,防止不同业务的key冲突 trade:order:…...
网站建设 网站运营/山西seo谷歌关键词优化工具
1.new的实现 让我们先看看new做了什么事情 (1).创建了一个对象 (2).使新建的对象的__proto__指向了构造函数的原型对象prototype (3).使构造函数中的内部属性指向新建的对象 (4).返回一个对象 知道new做了哪些事情后就好办了function myNew(fn,...arg){// 创建一个新对象 var …...
独山县哪里有做网站的/百度收录api怎么提交
思路:题意抽象出来就是,找到一个最小边权值为d,删除大于d的边,使得剩下的联通块的个数不大于k个。这个题我们可以发现d越大连通块越少,d与连通块个数成单调函数。 那么可以二分d,然后dfs/bfs求联通块个数判…...
武汉地区做网站/搜索引擎大全排行
实现类似Android风云直播手机端注册登录页,当手势向下滑动的时候,关闭页面的效果。使用GestureDetector来实现这个效果,当手势在屏幕上面滑动的时候 ,会掉用onFling方法,所以,在这个方法里面做判断和操作即…...
nginx wordpress 404/网络营销课程实训总结
我们已经学习了字符串和数字基础的处理方法和逻辑,大家有没有觉得使用起来很方便,编程的过程中也是很给力的呀!其实Python还有更多字符串处理的方法,大家今天就一起来体验一下吧小朋友们可以先复习一下前一节课的知识哈࿰…...