HTML

1. DOCTYPE 的作用是什么?

  • IE5.5 引入了文档模式的概念,而这个概念是通过使用文档类型(DOCTYPE)切换实现的
  • 告知浏览器的 解析器用什么文档标准解析这个文档。
  • DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。
  • 指定了之后会以标准模式来 进行文档解析,否则就以兼容模式进行解析。在标准模式下,浏览器的解析规则都是按 照最新的标准进行解析的。而在兼容模式下,浏 览器会以向后兼容的方式来模拟老式浏览器的行为,以保证一些老的网站的正确访问
  • 在 html5 之后不再需要指定 DTD 文档,因为 html5 以前的 html 文档都是基于 SGML 的,所以需要通过指定 DTD 来定义文 档中允许的属性以及一些规则。而 html5 不再基于 SGML 了,所以不再需要使用 DTD。

2. 标准模式与兼容模式各有什么区别?

  • 标准模式的渲染方式和 JS 引擎的解析方式都是以该浏览器支持的最高标准运行。
  • 在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作

3. HTML5 为什么只需要写 ,而不需要引入 DTD?

  • HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 DOCTYPE 来规范浏览 器的行为(让浏览器按照它们应该的方式来运行)
  • HTML4.01 基于 SGML ,所以需要对DTD 进行引用,才能告知浏览器文档所使用的文档类型。

4. SGML 、 HTML 、XML 和 XHTML 的区别?

  • SGML 是标准通用标记语言,是一种定义电子文档结构和描述其内容的国际标准语言, 是所有电子文档标记语言的起源
  • HTML 是超文本标记语言,主要是用于规定怎么显示网页。
  • XML 是可扩展标记语言是未来网页语言的发展方向,XML 和 HTML 的最大区别就在于 XML 的标签是可以自己创建的,数量无限多,而 HTML 的标签都是固定的而且数量有限。
  • XHTML 也是现在基本上所有网页都在用的标记语言,他其实和 HTML 没什么本质的区 别,标签都一样,用法也都一样,就是比 HTML 更严格,比如标签必须都用小写,标签都 必须有闭合标签等。

5. DTD 介绍

  • DTD( Document Type Definition 文档类型定义)是一组机器可读的规则,它们定义 XML 或 HTML 的特定版本中所有允许元素及它们的属性和层次关系的定义。在解析网页时,浏 览器将使用这些规则检查页面的有效性并且采取相应的措施。
  • DTD 是对 HTML 文档的声明,还会影响浏览器的渲染模式(工作模式)

6. 行内元素定义

  • HTML4 中,元素被分成两大类: inline (内联元素)与 block(块级元素)。一个行内元 素只占据它对应标签的边框所包含的空间。
  • 常见的行内元素有 a b span img strong sub sup button input label select textarea

7. 块级元素定义

  • 块级元素占据其父元素(容器)的整个宽度,因此创建了一个“块”。
  • 常见的块级元素有 div ul ol li dl dt dd h1 h2 h3 h4 h5 h6 p

8. 行内元素与块级元素的区别?

  • HTML4 中,元素被分成两大类:inline (内联元素)与 block (块级元素)。
  • (1) 格式上,默认情况下,行内元素不会以新行开始,而块级元素会新起一行。
  • (2) 内容上,默认情况下,行内元素只能包含文本和其他行内元素。而块级元素可以 包含行内元素和其他块级元素。
  • (3) 行内元素与块级元素属性的不同,主要是盒模型属性上:行内元素设置 width 无 效,height 无效(可以设置 line-height),设置 margin 和 padding 的上下不会对其他元素 产生影响。

9. HTML5 元素的分类

  • HTML4 中,元素被分成两大类: inline(内联元素)与 block(块级元素)。
  • 但在实际的开发过程中,因为页面表现的需要,前端工程师经常把 inline 元素的 display 值设定为 block (比如 a 标签),也经常把 block 元素的 display 值设定为 inline 之后更是出现了 inline-block 这一对外呈现 inline 对内呈现 block 的属性。
  • 因此,简单地把 HTML 元素划分 为 inline 与 block 已经不再符合实际需求。 HTML5 中,元素主要分为 7 类:Metadata Flow Sectioning Heading Phrasing Embedded Interactive

10. 空元素定义

  • 标签内没有内容的 HTML 标签被称为空元素。空元素是在开始标签中关闭的。
  • 常见的空元素有:br hr img input link meta

11. link 标签定义

  • link 标签定义文档与外部资源的关系。
  • link 元素是空元素,它仅包含属性。
  • 此元素只能存在于 head 部分,不过它可出现任何次数。
  • link 标签中的 rel 属性定义了当前文档与被链接文档之间的关系。常见的 stylesheet 指的是定义一个外部加载的样式表

12. 页面导入样式时,使用 link 和 @import 有什么区别?

  • (1)从属关系区别。 @import 是 CSS 提供的语法规则,只有导入样式表的作用;link 是 HTML 提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性、引入网 站图标等。
  • (2)加载顺序区别。加载页面时,link 标签引入的 CSS 被同时加载;@import 引入 的 CSS 将在页面加载完毕后被加载。
  • (3)兼容性区别。@import 是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;link 标 签作为 HTML 元素,不存在兼容性问题。
  • (4)DOM 可控性区别。可以通过 JS 操作 DOM ,插入 link 标签来改变样式;由于 DOM 方法是基于文档的,无法使用 @import 的方式插入样式。

13. 你对浏览器的理解?

  • 浏览器的主要功能是将用户选择的 web 资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是 HTML,也包括 PDF、image 及其他格式。用户用 URI(Uniform Resource Identifier 统一资源标识符)来指定所请求资源的位置。
  • HTML 和 CSS 规范中规定了浏览器解释 html 文档的方式,由 W3C 组织对这些规范 进行维护,W3C 是负责制定 web 标准的组织。
  • 但是浏览器厂商纷纷开发自己的扩展,对规范的遵循并不完善,这为 web 开发者带来 了严重的兼容性问题。
  • 简单来说浏览器可以分为两部分,shell 和 内核。其中 shell 的种类 相对比较多,内核则比较少。shell 是指浏览器的外壳:例如菜单,工具栏等。主要是提供 给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。 内核是基于标记语言显示内容的程序或模块。
  • 一些浏览器并不区分外壳和内核。从Mozilla 将 Gecko 独立出来后,才有了外壳和内核的明确划分。

14. 介绍一下你对浏览器内核的理解?

  • 主要分成两部分:渲染引擎和 JS 引擎。
  • 渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示 html、xml 文档及图片,它也可以借助插件(一种浏览器扩展)显示其他类型 数据,例如使用 PDF 阅读器插件,可以显示 PDF 格式。
  • JS 引擎:解析和执行 javascript 来实现网页的动态效果。最开始渲染引擎和 JS 引擎并 没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。

15. 常见的浏览器内核比较

  • Trident:这种浏览器内核是 IE 浏览器用的内核,因为在早期 IE 占有大量的市场份额, 所以这种内核比较流行,以前有很多网页也是根据这个内核的标准来编写的,但是实际上这 个内核对真正的网页标准支持不是很好。但是由于 IE 的高市场占有率,微软也很长时间没 有更新 Trident 内核,就导致了 Trident 内核和 W3C 标准脱节。还有就是 Trident 内核的 大量 Bug 等安全问题没有得到解决,加上一些专家学者公开自己认为 IE 浏览器不安全的 观点,使很多用户开始转向其他浏览器。
  • Gecko:这是 Firefox 和 Flock 所采用的内核,这个内核的优点就是功能强大、丰富, 可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资 源,比如内存。
  • Presto:Opera 曾经采用的就是 Presto 内核,Presto 内核被称为公认的浏览网页速度 最快的内核,这得益于它在开发时的天生优势,在处理 JS 脚本等脚本语言时,会比其他的 内核快 3 倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。
  • Webkit:Webkit 是 Safari 采用的内核,它的优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。WebKit 前身是 KDE 小组 的 KHTML 引擎,可以说 WebKit 是 KHTML 的一个开源的分支。
  • Blink:谷歌在 Chromium Blog 上发表博客,称将与苹果的开源浏览器核心 Webkit 分道扬镳,在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览 器之中。其实 Blink 引擎就是 Webkit 的一个分支,就像 webkit 是 KHTML 的分支一样。 Blink 引擎现在是谷歌公司与 Opera Software 共同研发,上面提到过的,Opera 弃用了自己 的 Presto 内核,加入 Google 阵营,跟随谷歌一起研发 Blink

16. 常见浏览器所用内核

  • (1) IE 浏览器内核:Trident 内核,也是俗称的 IE 内核;
  • (2) Chrome 浏览器内核:统称为 Chromium 内核或 Chrome 内核,以前是 Webkit 内核,现在是 Blink 内核;
  • (3) Firefox 浏览器内核:Gecko 内核,俗称 Firefox 内核;
  • (4) Safari 浏览器内核:Webkit 内核;
  • (5) Opera 浏览器内核:最初是自己的 Presto 内核,后来加入谷歌大军,从 Webkit 又到了 Blink 内核;
  • (6) 360 浏览器、猎豹浏览器内核:IE + Chrome 双内核;
  • (7) 搜狗、遨游、QQ 浏览器内核:Trident(兼容模式)+ Webkit(高速模式);
  • (8) 百度浏览器、世界之窗内核:IE 内核;
  • (9) 2345 浏览器内核:好像以前是 IE 内核,现在也是 IE + Chrome 双内核了;
  • (10)UC 浏览器内核:这个众口不一,UC 说是他们自己研发的 U3 内核,但好像还 是基于 Webkit 和 Trident ,还有说是基于火狐内核。

17. 浏览器的渲染原理

  • (1)首先解析收到的文档,根据文档定义构建一棵 DOM 树,DOM 树是由 DOM 元 素及属性节点组成的。
  • (2)然后对 CSS 进行解析,生成 CSSOM 规则树。
  • (3)根据 DOM 树和 CSSOM 规则树构建渲染树。渲染树的节点被称为渲染对象, 渲染对象是一个包含有颜色和大小等属性的矩形,渲染对象和 DOM 元素相对应,但这种 对应关系不是一对一的,不可见的 DOM 元素不会被插入渲染树。还有一些 DOM 元素对应 几个可见对象,它们一般是一些具有复杂结构的元素,无法用一个矩形来描述。
  • (4)当渲染对象被创建并添加到树中,它们并没有位置和大小,所以当浏览器生成渲 染树以后,就会根据渲染树来进行布局(也可以叫做回流)。这一阶段浏览器要做的事情是 要弄清楚各个节点在页面中的确切位置和大小。通常这一行为也被称为“自动重排”。
  • (5)布局阶段结束后是绘制阶段,遍历渲染树并调用渲染对象的 paint 方法将它们 的内容显示在屏幕上,绘制使用 UI 基础组件。值得注意的是,这个过程是逐步完成的,为 了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的 html 都解析完成之后再去构建和布局 render 树。它是解析完一部分内容就显示一部分内容,同 时,可能还在通过网络下载其余内容

18. 渲染过程中遇到 JS 文件怎么处理?(浏览器解析过程)

  • JavaScript 的加载、解析与执行会阻塞文档的解析,也就是说,在构建 DOM 时,HTML 解析器若遇到了 JavaScript,那么它会暂停文档的解析,将控制权移交给 JavaScript 引擎, 等 JavaScript 引擎运行完毕,浏览器再从中断的地方恢复继续解析文档。
  • 也就是说,如果你想首屏渲染的越快,就越不应该在首屏就加载 JS 文件,这也是都 建议将 script 标签放在 body 标签底部的原因。当然在当下,并不是说 script 标签必须放 在底部,因为你可以给 script 标签添加 defer 或者 async 属性。

19. async 和 defer 的作用是什么?有什么区别?(浏览器解析过程)

  • (1)脚本没有 defer 或 async,浏览器会立即加载并执行指定的脚本,也就是说不等 待后续载入的文档元素,读到就加载并执行。
  • (2)defer 属性表示延迟执行引入的 JavaScript,即这段 JavaScript 加载时 HTML 并 未停止解析,这两个过程是并行的。
    当整个 document 解析完毕后再执行脚本文件,在 DOMContentLoaded 事件触发之前 完成。多个脚本按顺序执行。
  • (3)async 属性表示异步执行引入的 JavaScript,与 defer 的区别在于,如果已经加 载好,就会开始执行,也就是说它的执行仍然会阻塞文档的解析,只是它的加载过程不会阻 塞。多个脚本的执行顺序无法保证。

20. 什么是文档的预解析?(浏览器解析过程)

  • Webkit 和 Firefox 都做了这个优化,当执行 JavaScript 脚本时,另一个线程解析剩下的文档,并加载后面需要通过网络加载的资源。
  • 这种方式可以使资源并行加载从而使整体速度更快。需要注意的是,预解析并不改变 DOM 树,它将这个工作留给主解析过程,自己只解析外部资源的引用,比如外部脚本、样式表及图片。

21. CSS 如何阻塞文档解析?(浏览器解析过程)

  • 理论上,既然样式表不改变 DOM 树,也就没有必要停下文档的解析等待它们,然而, 存在一个问题,JavaScript 脚本执行时可能在文档的解析过程中请求样式信息,如果样式还没有加载和解析,脚本将得到错误的值,显然这将会导致很多问题。
  • 如果浏览器尚未完成 CSSOM 的下载和构建,而我们却想在此时运行脚本,那么浏览器将延迟 JavaScript 脚本执行和文档的解析,直至其完成 CSSOM 的下载和构建。
  • 在这种情况下,浏览器会先下载和构建 CSSOM,然后再执行 JavaScript,最后再继续文档的解析。

22. 渲染页面时常见哪些不良现象?(浏览器渲染过程)

  • FOUC:主要指的是样式闪烁的问题,由于浏览器渲染机制(比如 firefox),在 CSS 加 载之前,先呈现了 HTML,就会导致展示出无样式内容,然后样式突然呈现的现象。会出现 这个问题的原因主要是 css 加载时间过长,或者 css 被放在了文档底部。
  • 白屏:有些浏览器渲染机制(比如 chrome)要先构建 DOM 树和 CSSOM 树,构建完 成后再进行渲染,如果 CSS 部分放在 HTML 尾部,由于 CSS 未加载完成,浏览器迟迟未渲 染,从而导致白屏;也可能是把 js 文件放在头部,脚本的加载会阻塞后面文档内容的解析, 从而页面迟迟未渲染出来,出现白屏问题

23. 如何优化关键渲染路径?(浏览器渲染过程)

  • 为尽快完成首次渲染,我们需要最大限度减小以下三种可变因素:
  • (1)关键资源的数量。

关键资源是可能阻止网页首次渲染的资源。这些资源越少,浏览器的工作量就越小, 对 CPU 以及其他资源的占用也就越少。

  • (2)关键路径长度。

关键路径长度受所有关键资源与其字节大小之间依赖关系图的影响:某些资源只能在上一资源处理完毕之后才能开始下载,并且资源越大,下载所需的往返次数就越多

  • (3)关键字节的数量。

最后,浏览器需要下载的关键字节越少,处理内容并让其出现在屏幕上的速度就越快。要减少字节数,我们可以减少资源数(将它们删除或设为非关键资源),此外还要压缩和优化各 项资源,确保最大限度减小传送大小

  • 优化关键渲染路径的常规步骤如下:
  • (1)对关键路径进行分析和特性描述:资源数、字节数、长度。
  • (2)最大限度减少关键资源的数量:删除它们,延迟它们的下载,将它们标记为异步等。
  • (3)优化关键字节数以缩短下载时间(往返次数)。
  • (4)优化其余关键资源的加载顺序:需要尽早下载所有关键资产,以缩短关键路径长度

24. 什么是重绘和回流?(浏览器绘制过程)

  • 重绘: 当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观、风格,而 不会影响布局的操作,比如 background color,我们将这样的操作称为重绘。
  • 回流:当渲染树中的一部分(或全部)因为元素的规模尺寸、布局、隐藏等改变而需要重 新构建的操作,会影响到布局的操作,这样的操作我们称为回流。
  • 常见引起回流属性和方法:

任何会改变元素几何信息(元素的位置和尺寸大小)的操作,都会触发回流。
(1)添加或者删除可见的 DOM 元素;
(2)元素尺寸改变——边距、填充、边框、宽度和高度
(3)内容变化,比如用户在 input 框中输入文字
(4)浏览器窗口尺寸改变——resize 事件发生时
(5)计算 offsetWidth 和 offsetHeight 属性
(6)设置 style 属性的值
(7)当你修改网页的默认字体时。

重绘与回流的关系

  • 回流必定会发生重绘,重绘不一定会引发回流。
  • 回流所需的成本比重绘高的多,改变父节点里的子节点很可能会导致父节点的一系列回流。

25. 如何减少回流?(浏览器绘制过程)

  • (1)使用 transform 替代 top
  • (2)不要把节点的属性值放在一个循环里当成循环里的变量
  • (3)不要使用 table 布局,可能很小的一个小改动会造成整个 table 的重新布局
  • (4)把 DOM 离线后修改。如:使用 documentFragment 对象在内存里操作 DOM
  • (5)不要一条一条地修改 DOM 的样式。与其这样,还不如预先定义好 css 的 class, 然后修改 DOM 的 className。

26. 为什么操作 DOM 慢?(浏览器绘制过程)

一些 DOM 的操作或者属性访问可能会引起页面的回流和重绘,从而引起性能上的消耗。

27. DOMContentLoaded 事件和 Load 事件的区别?

  • 当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发, 而无需等待样式表、图像和子框架的加载完成。
  • Load 事件是当所有资源加载完成后触发的。

28. HTML5 有哪些新特性、移除了那些元素?

  • HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。

新增的有:
绘画 canvas;
用于媒介回放的 video 和 audio 元素;
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
sessionStorage 的数据在浏览器关闭后自动删除;
语意化更好的内容元素,比如 article、footer、header、nav、section; 表单控件,calendar、date、time、email、url、search;
新的技术 webworker, websocket;
新的文档属性 document.visibilityState
移除的元素有: 纯表现的元素:basefont,big,center,font, s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;

29. 如何处理 HTML5 新标签的浏览器兼容问题?

  • (1) IE8/IE7/IE6 支持通过 document.createElement 方法产生的标签,可以利用这一 特性让这些浏览器支持 HTML5 新标签,浏览器支持新标签后,还需要添加标签默认的样式。
  • (2)当然也可以直接使用成熟的框架,比如 html5shim <!--[if lt IE 9]> <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script> <![endif]--> [if lte IE 9]……[endif] 判断 IE 的版本,限定只有 IE9 以下浏览器版本需要执行的语句。

30. 简述一下你对 HTML 语义化的理解?

  • (1) 用正确的标签做正确的事情。
  • (2) html 语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
  • (3) 即使在没有样式 CSS 情况下也以一种文档格式显示,并且是容易阅读的;
  • (4) 搜索引擎的爬虫也依赖于 HTML 标记来确定上下文和各个关键字的权重,利于 SEO ;
  • (5) 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

html 语义化主要指的是我们应该使用合适的标签来划分网页内容的结构。
html 的本质作用其实就是定义网页文档的结构, 一个语义化的文档,能够使页面的结构更加清晰,易于理解。这样不仅有利于开发者的维护和理解,同时也能够使机器对文档内容进行正确的解读。
比如说我们常用的 b 标签和 strong 标签,它们在样式上都是文字的加粗,但是 strong 标签拥有强调的语义。
对于一般显示来说,可能我们看上去没有差异,但是对于机器来说,就会有很大的不同。
如果用户使用的是屏幕阅读器来访问网页的话,使用 strong 标签就会有明显的语调上的变化,而 b 标签则没有。
如果是搜索引擎的爬虫对我们网页进行分析的话,那么它会依赖于 html 标签来确定上下文和各个关键字的权重,一个语义化的文档对爬虫来说是友好的, 是有利于爬虫对文档内容解读的,从而有利于我们网站的 SEO 。
从 html5 我们可以看出, 标准是倾向于以语义化的方式来构建网页的,比如新增了 header 、footer 这些语义标签, 删除了 big 、font 这些没有语义的标签。

31. b 与 strong 的区别和 i 与 em 的区别?

  • 从页面显示效果来看,被 <b><strong> 包围的文字将会被加粗,而被 <i><em> 包围的文字将以斜体的形式呈现。
  • <b> <i> 是自然样式标签,分别表示无意义的加粗,无意义的斜体,表现样式为 { font-weight: bolder},仅仅表示「这里应该用粗体显示」或者「这里应该用斜体显示」, HTML4.01 中不被推荐使用。
  • <em><strong> 是语义样式标签。 <em> 表示一般的强调文本,而 <strong> 表示比 <em> 语义更强的强调文本。

未完待续,持续更新

面试题汇总 (HTML与浏览器篇)相关推荐

  1. 前端面试题汇总(css基础篇)

    前端面试题汇总(css基础篇) 1 css sprite是什么,有什么优缺点 概念:将多个⼩图⽚拼接到⼀个图⽚中. 通过 background-position 和元素尺⼨调节需 要显示的背景图案. ...

  2. 前端面试题汇总(JS 基础篇)

    前端面试题汇总(JS 基础篇)** 1.javascript 的 typeof 返回哪些数据类型** object number function boolean underfind stringty ...

  3. 面试题汇总二 Java 多线程篇

    前言 题目汇总来源 史上最全各类面试题汇总,没有之一,不接受反驳 面试题汇总一 Java 语言基础篇 面试题汇总二 Java 多线程篇 面试题汇总三 Java 集合篇 面试题汇总四 JVM 篇 面试题 ...

  4. JAVA经典面试题汇总(保存这篇就够了)

    一. java基础篇 1.final 关键字的作用? 被 final 修饰的类不可以被继承. 被 final 修饰的方法不可以被重写. 被 final 修饰的变量不可以被改变,如果修饰引用,那么表示引 ...

  5. 《Java面试题汇总》

    <面试题汇总>之基础篇 一 Java基础 1 基础知识点 1.1 int和Integer的区别 int是整型,是java8中的基本数据类型之一: Integer是int对应的包装类,有一个 ...

  6. 年终盘点 | 2019年Java面试题汇总篇(附答案)

    作者 | 老王 来源 | Java中文社群「微信公众号」 在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几 ...

  7. 【吐血整理】年度盘点 | 2019年Java面试题汇总篇——附答案

    在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几乎是全年每周一篇面试文章的节奏,当然其中有不少的面试题来源 ...

  8. 第一篇 多线程笔试面试题汇总(转)

    一.概念性问答题 第一题:线程的基本概念.线程的基本状态及状态之间的关系? 线程:一个线程是进程的一个顺序执行流.同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈.线程在 ...

  9. 2021最全大数据面试题汇总---hadoop篇,附答案!

    大数据面试题来了! 本篇文章搜集了常见的大数据面试题以及答案,包含了Hadoop,Flume,Hbase,Hive,kafka,spark,zookeeper等方面的内容,助同学们收到心仪的Offer ...

最新文章

  1. LeetCode 923. 3Sum With Multiplicity
  2. 为 Visual Studio 安装数据库工具
  3. Open quote is expected for attribute {1} associated with an element type name.
  4. Unity3D ShaderLab 物体相交
  5. mysql5.6.24教程,mysql5.6.24升级5.7.27之错误汇总
  6. formcheck 自定义验证
  7. js数组的拷贝赋值复制二三事总结
  8. 技术人员如何创业《一》- 产品及想法
  9. Android开发笔记(一百七十九)避免方法数过多的问题
  10. 凯恩帝绝对坐标清零_凯恩帝100T数控车床怎么把加工数量时间清零
  11. 无人驾驶(一)---汽车can总线通信之 peak pcan驱动安装与通信
  12. selenium docker
  13. 保姆级win7下配置虚拟机-安装Ubuntu20.04
  14. python3字符串详解速查,新手流泪,老手顿悟
  15. JAVA SE 13快速安装
  16. pythonturtle画丘比特之箭,turtle的简单绘图
  17. Qt5.6.1如何使用qpf2字体
  18. 冒泡排序+快速排序+选择排序(图解)
  19. 售前工程师——PaaS
  20. python对小数的特殊处理(个人需求-小数点后有一位保留,否则十分位进1)

热门文章

  1. python生兔子问题(递归算法)_python 实现兔子生兔子示例
  2. nginx配置介绍(二)
  3. Pandas官方文档!(中文版PDF下载)
  4. 2021-2027全球与中国轧辊弯曲机市场现状及未来发展趋势
  5. 如何右键菜单添加命令提示符_在右键菜单顶部添加过滤器命令
  6. 百度地图墨卡托坐标转高德经纬度坐标(偏移小)
  7. Arm V8内存管理架构.学习笔记
  8. domino服务器库文件,Domino 服务器设置程序 涉及的文件
  9. 电力系统数字化转型历史(跨部门系统自建阶段)
  10. XR872图传声传小例程——无线传输