Java面试----MySQL面试题
1.索引有哪些优缺点?
MySQL索引作为一种提升数据库查询效率的重要机制,具有以下主要优点和缺点:
优点:
-
提高查询速度: 索引能够显著加速数据的检索过程,类似于书籍的目录,让数据库引擎能够快速定位到所需的数据行。
-
确保唯一性: 唯一索引可以确保表中每一行数据的唯一性,有助于维护数据完整性。
-
加速表间连接: 在执行表连接操作时,如果被连接的字段已经建立了索引,那么可以更快地完成连接操作。
-
减少分组和排序时间: 对于GROUP BY、ORDER BY等操作,如果涉及的列有索引,数据库可以直接使用索引来排序或分组,减少CPU的消耗。
-
覆盖查询: 如果一个查询只需要索引中的列,而不需要访问实际的表行,这被称为“覆盖查询”,可以进一步提高效率。
缺点:
-
占用存储空间: 索引需要额外的存储空间来维护其结构,随着数据量的增长,索引文件也会相应增大。
-
影响写入性能: 当插入、更新或删除数据时,索引也需要被相应地更新,这会增加写操作的负担,降低数据维护速度。
-
创建和维护成本: 特别是在数据量庞大的情况下,创建和维护索引可能会消耗较多的时间和系统资源。
-
选择性问题: 如果索引的选择性不高(即索引列的值重复度高),索引的效果可能不明显,甚至有时数据库会选择不使用索引。
-
索引设计不当: 不恰当的索引设计,如对经常变更的列或在很少用于查询条件的列上建立索引,可能会降低整体性能。
因此,在设计和使用MySQL索引时,需要根据具体的应用场景权衡其优缺点,合理规划索引策略以达到最佳的性能效果。
2.索引使用场景?
MySQL索引的使用场景主要包括但不限于以下几种情况:
-
频繁查询的列: 如果某个列经常出现在
WHERE
子句中作为查询条件,为该列创建索引可以显著加速查询过程。 -
排序和分组: 当使用
ORDER BY
或GROUP BY
子句进行排序或分组操作时,如果这些操作基于的列有索引,数据库可以利用索引来避免全表扫描,从而提高效率。 -
联接操作: 在多表联接查询中,如果联接条件涉及的列有索引,可以加快表之间的匹配速度。
-
唯一性约束: 为确保表中某列的值唯一,应创建唯一索引。这不仅用于数据完整性检查,也能加速查询过程。
-
高选择性列: 选择性高的列是指该列的值分布广泛,不同值的数量很多,这样的列上创建索引效果更好。
-
覆盖查询: 如果一个查询能够完全通过索引来满足(即查询的列都包含在索引中,无需回表查询),则称为覆盖查询,这种情况非常适合使用索引。
-
全文搜索: 对于包含大量文本数据的列,可以使用全文索引来加速全文搜索操作。
不适合创建索引的场景:
-
数据量小的表: 如果表中的数据量很小,索引带来的查询加速效果可能不明显,反而会因为维护索引增加写操作的开销。
-
频繁更新的列: 如果某列的数据经常发生变化,每次更新都需要同时更新索引,这会增加系统的写入负担。
-
低选择性列: 列的值如果高度重复(如性别列,只有“男”和“女”两个值),索引几乎不会带来查询性能的提升。
-
宽索引: 如果索引包含了很多列,特别是这些列的组合选择性不高,这样的索引可能占用过多存储空间,且在查询中用处不大。
-
很少使用的列: 对于很少在查询中作为条件的列,创建索引意义不大,因为可能无法有效利用索引来提高查询性能。
综上所述,合理选择索引的创建需基于对查询模式、数据特性和业务需求的综合分析。
3.索引有哪几种类型?
MySQL支持多种类型的索引,每种索引有其特定的用途和适用场景。以下是几种主要的索引类型:
-
主键索引(Primary Key Index):
- 用于标识表中每一条记录的唯一性。
- 一个表只能有一个主键,且主键的值必须唯一且不能为NULL。
- 在InnoDB存储引擎中,主键索引默认是聚簇索引,意味着数据行与索引是放在一起的。
-
唯一索引(Unique Index):
- 确保索引列的值是唯一的,但允许有NULL值(除非设置为NOT NULL)。
- 可以用于非主键列,用于保证数据的唯一性。
- 不是所有唯一索引都是聚簇索引。
-
普通索引(Index/Non-Unique Index):
- 基础的索引类型,没有唯一性的限制,允许有重复值和NULL值。
- 通常用于提高查询效率,适用于经常出现在查询条件中的列。
-
组合索引(Composite Index/Compound Index):
- 包含多个列的索引。
- 在查询中,只有当查询条件使用了索引中的第一个列(及后续列)时,组合索引才会生效。
- 优化多列查询的性能。
-
全文索引(Full-Text Index):
- 用于全文搜索,可以在VARCHAR或TEXT类型的列上创建。
- 提供对长文本内容的高效搜索功能。
-
聚簇索引(Clustered Index):
- 决定了表中数据行的物理存储顺序。
- 一个表只能有一个聚簇索引,通常是主键索引。
- 查询效率高,特别是范围查询和顺序读取。
-
非聚簇索引(Secondary Index/Non-Clustered Index):
- 数据行的物理顺序与索引顺序无关。
- 非聚簇索引存储的是行的指针或主键值,需要通过这个指针再找到实际的数据行。
- 包括唯一索引、普通索引等。
4.索引的基本原理?
索引的基本原理是利用一种特殊的数据结构来组织数据,使得数据库系统能够高效地查找和访问表中的特定行。以下是索引工作的一些核心概念和原理:
-
数据结构:最常见的索引数据结构是B-Tree(平衡多路搜索树)及其变体B+Tree。在MySQL的InnoDB存储引擎中,默认使用B+Tree作为索引结构。B+Tree的特点是能够保持数据有序,并且叶子节点通过指针相连,便于范围查询。这种结构能够保证在对数时间内定位到数据,大大减少了查找时间。
-
索引项:索引中的每个条目包含两部分:一部分是索引列的值或其派生值(例如,对于非聚簇索引可能是主键的值),另一部分是该值对应的行在表中的物理位置(例如,磁盘块地址或行ID)。
-
查询过程:当执行查询时,数据库首先查看索引而不是直接扫描整个表。如果查询条件匹配索引列,数据库引擎会在索引中查找对应的值,然后通过索引中的物理位置信息快速定位到实际的数据行。这个过程比逐行扫描表要高效得多。
-
索引类型:不同类型的索引(如聚簇索引、非聚簇索引、唯一索引、全文索引等)有不同的存储方式和应用场景,但基本原理相似,都是通过某种数据结构来加速数据查找。
-
维护成本:创建和维护索引需要额外的磁盘空间,并且在插入、删除和更新数据时,索引也需要同步更新,这会带来一定的性能开销。
-
选择性:索引的选择性指的是索引中不同值的数量与表中总行数的比例。选择性越高,索引的效率通常越高,因为能够更有效地缩小查询范围。
综上所述,索引通过预计算和组织数据,利用高效的数据结构,使数据库能够快速定位到满足条件的数据行,从而显著提高查询性能。然而,索引的使用需要权衡存储空间和维护成本,以及对写操作性能的影响。
5.索引设计的原则?
索引设计是数据库优化的关键环节,遵循合理的设计原则可以极大地提升数据库的查询性能。以下是一些重要的索引设计原则:
-
选择性高的列:优先为那些能够有效区分数据的列创建索引,即选择性高的列。选择性是指索引列中不同值的数量与表中总行数的比例,比例越高,索引效果越好。
-
频繁查询的列:针对经常出现在
WHERE
子句中的列创建索引,可以显著提高查询速度。 -
索引覆盖:尽量创建能够覆盖查询中所有列的索引,这样数据库可以直接从索引中获取所需数据,而无需回表查询,即所谓的“覆盖索引”。
-
考虑查询模式:根据实际的查询模式设计索引,比如是否经常进行范围查询、排序、分组等操作,选择合适的索引类型和结构。
-
避免过度索引:虽然索引能提高查询速度,但每个索引都会占用额外的存储空间,并且会影响插入、更新和删除操作的性能。因此,应该只在真正需要的列上创建索引。
-
复合索引策略:当需要在多个列上创建索引时,考虑列的组合顺序,一般将选择性高的列放在前面,且考虑应用中最常用的查询条件组合。
-
主键和唯一性索引:为表的主键自动创建索引,并考虑为唯一性要求较高的列创建唯一性索引。
-
监控和调整:定期审查数据库的查询日志,监控索引的使用情况,并根据实际情况调整索引策略。
-
了解存储引擎特性:不同的数据库存储引擎(如InnoDB、MyISAM)对索引的支持和处理方式不同,设计时需考虑存储引擎的特性。
-
考虑数据更新频率:对于频繁更新的列,创建索引需谨慎,因为每次更新都要维护索引,可能会抵消查询优化带来的好处。
遵循以上原则,可以帮助数据库管理员和开发者设计出既高效又实用的索引策略。
6.索引在什么情况下会失效?
索引失效通常指的是在应当使用索引来加速查询的情况下,数据库管理系统却没有有效利用索引,而采用全表扫描或其他低效的查询方式。以下是一些可能导致索引失效的常见情况:
-
使用函数或表达式:在查询条件中,如果对索引列应用了函数或数学运算,可能导致索引无法被使用。因为索引是针对列的原始值构建的,变换后的值不在索引中。
-
LIKE操作符的不当使用:当
LIKE
操作符的查询模式以通配符开头(如'%value'
),索引往往无法被利用,除非使用的是全文索引。 -
OR条件的使用:如果
OR
连接的查询条件中,不是所有的条件都涉及到索引列,或者索引不是复合索引覆盖所有OR
条件,可能导致索引失效。 -
类型转换问题:当比较操作涉及列和常量之间类型不匹配,导致数据库需要进行隐式类型转换时,索引可能无法应用。
-
索引列参与计算:如果在查询中对索引列进行了算术运算或其它计算,数据库可能无法直接使用索引。
-
索引选择性低:如果索引列的值高度重复,索引的选择性就很低,数据库可能会判断全表扫描比使用索引更高效。
-
复合索引未按序使用:对于复合索引(多个列组成的索引),如果查询条件没有按照索引定义的列顺序使用,后面的列可能不会被索引利用。
-
数据量过小:对于非常小的表,全表扫描可能比使用索引更快速。
-
超过索引范围的查询:对于某些类型的索引(如B-Tree),如果查询条件的范围太大,以至于几乎涵盖所有索引条目,数据库可能会放弃使用索引。
-
索引未被维护:长时间未做分析或优化,或表数据发生大量变化后未重新生成统计信息,可能导致查询优化器做出错误的执行计划选择。
理解并避免这些情况,可以有效确保索引在查询中的高效使用。使用EXPLAIN
语句分析查询计划是诊断索引是否被正确使用的有效方法。
7.B树和B+树的区别?
B树(B-tree)和B+树(B+-tree)都是自平衡的树数据结构,广泛应用于数据库和文件系统的索引中。尽管它们有共同之处,但也存在一些关键区别:
-
节点结构:
- B树:每个节点都可以存储数据(键值对),不仅叶子节点包含数据,内部节点也可以存储数据和指向子节点的指针。这意味着在B树中,查找过程中可能在非叶子节点就找到所需的数据。
- B+树:只有叶子节点才存储数据(所有实际的数据都放在叶子节点),而内部节点(非叶子节点)仅存储键和指向子节点的指针,不存放实际数据。内部节点的作用更像是一个索引,帮助快速定位到叶子节点。
-
叶子节点特性:
- B树:叶子节点并不必然相互连接,而且每个节点都可能包含数据。
- B+树:所有叶子节点通过指针相连,形成了一个有序链表,这使得范围查询和全表扫描变得非常高效,只需要顺着链表遍历即可。
-
查询性能:
- B树:查询时可能需要遍历非叶子节点和叶子节点,因为数据分散在整棵树中。
- B+树:查询时,一旦定位到正确的叶子节点,之后的操作只需沿着叶子节点遍历,对于范围查询和顺序访问特别有利。
-
空间利用率与磁盘读写性能:
- B树:由于每个节点存储数据,空间利用率相对较低,且较大的节点可能导致更多的磁盘I/O操作。
- B+树:由于数据集中存储在叶子节点,内部节点更小,使得B+树在磁盘I/O方面更高效,空间利用率也更高。
-
增删操作:
- B树:增删操作可能导致树的结构调整,维护平衡可能较为复杂。
- B+树:增删操作对树结构影响较小,尤其是叶子节点的插入和删除,通常只需局部调整,因此操作相对稳定,性能较好。
综上所述,B+树相较于B树,在很多数据库应用场景中提供了更好的查询性能,尤其是在处理大量数据和范围查询时。这也是MySQL等数据库系统选择B+树作为索引结构的原因之一。
8.数据库为什么使用B+树而不是B树?
数据库系统偏好使用B+树而非B树作为索引结构,主要原因包括以下几点:
-
更高的空间利用率:B+树的内部节点不存储实际数据,只存储键值和指向子节点的指针,这使得每个节点可以容纳更多的键值,从而减少树的高度,降低磁盘I/O操作次数。在磁盘I/O密集型的应用中,这一点尤为重要,因为每次磁盘访问的时间远大于CPU处理时间。
-
有序的叶子节点:B+树的所有数据都存储在叶子节点上,并且叶子节点通过指针相连,形成一个有序链表。这种结构对于范围查询和全表扫描非常高效,因为一旦找到查询范围的起始点,就可以快速遍历链表获取所有相关数据。
-
更好的范围查询性能:由于B+树叶子节点间有指针相连,执行范围查询时,数据库可以直接在叶子节点间顺序遍历,而不需要回到根节点重新查找,大大提高了查询效率。
-
单一的数据路径:在B+树中,所有实际数据都在叶子节点,查询路径固定,无论是查找单个键值还是进行范围查询,最终都会到达叶子节点,这简化了查询算法并提高了查询的一致性。
-
稳定性与维护成本:B+树在插入和删除数据时,对树结构的调整相对较小,特别是叶子节点的插入和删除操作,通常只需要局部调整,这使得B+树在动态数据集上更容易维护平衡状态,减少了维护索引的成本。
综上,B+树的设计特性使其在处理大量数据、提高查询效率、特别是支持高效的范围查询方面表现更优,更适合于数据库索引的应用场景。
9.什么是最左前缀原则?什么是最左匹配原则?
最左前缀原则和最左匹配原则是同一个概念的不同称呼,它描述的是数据库(尤其是MySQL)在使用联合索引时遵循的一种规则。该原则指出,当创建一个包含多个列的复合索引(即联合索引)时,查询优化器在利用此索引进行数据检索时,会优先从索引的第一列开始匹配查询条件,然后依次向右匹配后续列。具体来说,以下几点概括了这一原则:
-
从左到右匹配:查询条件中引用的索引列顺序必须与联合索引中列的定义顺序一致,从第一个索引列开始匹配,只有当第一个索引列被用作查询条件时,索引才会被考虑使用。
-
连续匹配:一旦查询中出现范围查询(如 >, <, BETWEEN, LIKE以通配符开头等),数据库将停止使用后续的列进行索引匹配,因为范围查询会使得索引的有序性无法完全利用。
-
优化查询:遵循最左前缀原则可以最大化索引的利用效率,减少查询过程中需要扫描的数据量,从而加快查询速度。
-
灵活性:即便不使用联合索引中的所有列,只要查询条件从前到后包含了索引的部分列,这部分索引仍然可以被有效利用。
例如,假设有一个联合索引(col1, col2, col3)
,以下查询将能够利用索引:
WHERE col1 = value
:仅使用col1
列。WHERE col1 = value AND col2 = value
:使用col1
和col2
列。WHERE col1 = value AND col2 > value
:使用col1
列,并对col2
进行范围查询,之后的col3
不再被索引利用。
而以下查询则可能不会充分利用索引或完全不使用索引:
WHERE col2 = value
:未使用col1
,索引不被利用。WHERE col1 = value AND col3 = value
:虽然col1
被使用,但由于跳过了col2
,索引优化可能受限。WHERE col1 LIKE '%value%'
:由于col1
列使用了以通配符开头的LIKE查询,索引可能不会被使用。
相关文章:
Java面试----MySQL面试题
1.索引有哪些优缺点? MySQL索引作为一种提升数据库查询效率的重要机制,具有以下主要优点和缺点: 优点: 提高查询速度: 索引能够显著加速数据的检索过程,类似于书籍的目录,让数据库引擎能够快速…...
python从入门到精通2:缩进
在Python中,缩进(Indentation)是一个非常重要的语法元素,它用于表示代码块的结构。与其他许多编程语言使用大括号 {} 来定义代码块不同,Python使用缩进来确定代码块的开始和结束。这种简洁的语法使得Python代码更加清晰…...
了解CDN:提升网络性能和安全性的利器
在当今的数字时代,网站性能和安全性是每一个网站管理员必须关注的核心问题。内容分发网络(CDN,Content Delivery Network)作为解决这一问题的重要工具,逐渐成为主流。本文将详细介绍CDN的定义、作用及其工作原理&#…...
ChatGPT的工作原理
ChatGPT的工作原理可以详细分为以下几个步骤,下面将结合相关信息进行清晰、详细的介绍: 数据收集: ChatGPT首先会从大量的文本数据中收集信息,这些数据可能包括网页、新闻、书籍等多样化的来源。它还会特别关注和分析网络上的热点…...
基于DPU的云原生裸金属服务快速部署及存储解决方案
1. 背景介绍 1.1. 业务背景 在云原生技术迅速发展的当下,容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择,但裸金属服务器依然有其独特的价值和应用场景,是云原生架构中不可或缺的一部分。 裸金属服务器是一种高级…...
论文学习_Large Language Models Based Fuzzing Techniques: A Survey
论文名称发表时间发表期刊期刊等级研究单位Large Language Models Based Fuzzing Techniques: A Survey 2024年arXiv-悉尼大学 0.摘要 研究背景在软件发挥举足轻重作用的现代社会,软件安全和漏洞分析对软件开发至关重要,模糊测试作为一种高效的软件测试方法,并广泛应用于各个…...
响应式德米拉数字内容交易系统素材下载站模板
★模板说明★ 该数字交易系统设计非常完美,两种响应式模式,可打开边栏模式和盒子模式;八种网站颜色,四种风格颜色可供用户自行选择,还可在网站选背景图片;完美的分成系统、充值功能、个人中心等等都以html…...
数据库开发-MySQL
前言 首先来了解一下什么是数据库。 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app…...
香港大带宽服务器高性能配置选择灵活
香港大带宽服务器是指在香港数据中心托管的,配备了高速网络连接的服务器。这些服务器通常用于需要大量数据传输和快速响应时间的应用,如视频流媒体、在线游戏、远程工作和大规模数据处理任务。具体分析如下,rak部落为您整理发布。 1. **内存配…...
Oracle中生僻汉字的解决办法
在Oracle数据库中处理生僻汉字时,主要面临的问题是某些字符集可能无法完全支持所有的汉字,特别是生僻字。以下是一些解决Oracle中生僻汉字问题的办法: 检查当前字符集: 使用SELECT USERENV(language) FROM dual;命令来查看当前数…...
在Kotlin中,`field`关键字是一个特殊的标识符,用于在属性的自定义getter和setter中访问backing field(存储属性值的实际字段)
在Kotlin中,field关键字是一个特殊的标识符,用于在属性的自定义getter和setter中访问backing field(存储属性值的实际字段)。Kotlin属性默认提供getter和setter方法,但当你需要自定义它们的行为时,可以使用…...
如何在 MySQL 中创建和使用事务?
目录 1. 环境准备 2. 创建事务 3. 事务执行 4. 事务撤消 5. 总结 事务是数据库区别于文件系统的重要特征之一,当我们有了事务就会让数据库始终保持一致,同时我们还能通过事务机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会…...
Python数据分析-对驾驶安全数据进行了预测
一、研究背景和意义 随着汽车保有量的不断增加,交通事故已成为全球范围内的重大公共安全问题。每年因交通事故造成的人员伤亡和财产损失给社会带来了巨大的负担。为了提高驾驶安全,减少交通事故的发生,许多研究致力于探索影响驾驶安全的因素…...
全志 Android 11:实现响应全局按键
一、篇头 最近实现热键想功能,简单总结了下全志平台Android 11 的响应全局热键的方法。 二、需求 实现全局热键,响应F-、AF、F三个按键,AF只用于启动调焦界面,F-和F除了可以启动调焦界面外,还用于调整镜头的焦距&…...
DVWA 靶场 Open HTTP Redirect 通关解析
前言 DVWA代表Damn Vulnerable Web Application,是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序,旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…...
Blender:渲染输出
一、渲染设置 渲染设置界面: 渲染器选择切换 Cycles渲染器 【文档】 Cycles渲染目标: Cycles是Blender用于产品级渲染,基于物理的路径跟踪器。主要关注于影视质量,更高质量的外观它旨在提供易于使用以及准确的物理渲染结果具有艺术…...
NTFS和exFAT哪个性能好 U盘格式化NTFS好还是exFAT好 mac不能读取移动硬盘怎么解决
文件系统的选择对存储设备的性能和兼容性有着重要影响。而NTFS和EXFAT作为两种常见的文件系统,它们各有特点,适用于不同的使用场景。我们将深入探讨NTFS和EXFAT的区别,帮助大家选择最适合自己需求的文件系统。 NTFS:稳定与性能的平…...
kafka的基本模型
kafka官网 线程和线程之间的数据交互 在jvm里不同的线程有自己的栈内存,但彼此之间交互可以在共享的内存中进行,即堆内存,堆内存会将这些消息放到队列中,具体实现jvm见,栈内存各自维护,堆内存大家共享 进…...
npm语义化版本和版本运算符
版本号组成 一个完整的版本号,由三部分组成:主版本号(major)、次版本号(minor)、修订版本号(patch),简称X.Y.Z,具体含义: 主版本号(major):项目(…...
孩子到了叛逆期,家长应该怎么教育孩子?
到了一定的年龄后,有些孩子会变得叛逆起来,那么对于家长来说,如何教育叛逆的孩子?孩子叛逆期教育方法有哪些呢? 叛逆期教育孩子用什么方法 一。要摒除父母对孩子居高临下的心态,放下身叚࿰…...
芋道源码 yudao-cloud 、Boot 文档,开发指南 看全部,破解[芋道快速开发平台 Boot + Cloud]
1、文档全部保存本地部署查看,真香 文档已抓取最新版本,2024.06.21。【唯一遗憾,表结构到2024.04月,已被限制放到知识星球】会员中心,支付中心,CRM,ERP,商城,公众号运行…...
工具函数-算法
1. 实现四舍五入,保留两位小数 const v 0.0635455; // 方式1,保留2位小数,返回的是number格式 const formatted Math.round(v * 100) / 100; // 方式2,保留2位小数,返回的是字符串格式 const formatted v.toFixed(…...
C# yolov8 OpenVINO 同步、异步接口视频推理
C# yolov8 OpenVINO 同步、异步接口视频推理 目录 效果 项目 代码 下载 效果 同步推理效果 异步推理效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; using System.Windows.Form…...
【STM32入门学习】定时器与PWM的LED控制
目录 一、定时器与PWM介绍 1.1定时器 1.1.1定时器分类简介 1.1.2STM32定时器分类比较表 1.1.3定时器启动操作: 1.2 PWM 1.2.1 简介: 1.2.2PWM工作原理 1.2.3使用步骤: 二、定时器计数控制LED灯亮灭 2.1HAL库 2.1.1使用HAL库创建…...
PyTorch实战:模型训练中的特征图可视化技巧
1.特征图可视化,这种方法是最简单,输入一张照片,然后把网络中间某层的输出的特征图按通道作为图片进行可视化展示即可。 2.特征图可视化代码如下: def featuremap_visual(feature, out_dirNone, # 特征图保存路径文件save_feat…...
有人@你!神工坊知识问答第二期中奖名单新鲜出炉
六月作为伟大的物理学家—麦克斯韦的诞辰月 神工坊特别推出 “ 辨 ‘麦克斯韦妖’,赢百元好礼” 夏日知识问答主题活动 活动一经推出 反响热烈 第二期中奖名单公布! 中奖的伙伴们速来兑奖! 听说还有同学没有参与? 活动最后…...
数据结构篇:旋转操作在AVL树中的实现过程
本节课在线学习视频(网盘地址,保存后即可免费观看): https://pan.quark.cn/s/06d5ed47e33b AVL树是平衡二叉搜索树的一种,它通过旋转操作来保持树的平衡。AVL树的特点是,任何节点的两个子树的高度最大差别…...
为什么Java默认使用UTF-16,Golang默认使用UTF-8呢?
Java 和 Go 语言在默认字符编码上做出了不同的选择,这是由它们的设计目标和使用场景决定的。下面是对 Java 默认使用 UTF-16 和 Go 默认使用 UTF-8 的原因进行的详细解释。 Java 默认使用 UTF-16 的原因 1. 历史背景和兼容性 Unicode 的发展: Java 诞生于 1995 年…...
JavaScript常见面试题(三)
文章目录 1.对原型、原型链的理解2.原型修改、重写3.原型链指向4.对闭包的理解5. 对作用域、作用域链的理解6.对执行上下文的理解7.对this对象的理解8. call() 和 apply() 的区别?9.异步编程的实现方式?10.setTimeout、Promise、Async/Await 的区别11.对…...
【Effective Modern C++】第1章 型别推导
【Effective Modern C】第1章 型别推导 文章目录 【Effective Modern C】第1章 型别推导条款1:理解模板型别推导基础概念模板型别推导的三种情况情景一 ParamType 是一个指针或者引用,但非通用引用情景二 ParamType是一个通过引用情景三 ParamType既不是…...
公司做网站要多长时间审核/天眼查企业查询
由于 Apollo 概念比较多,刚开始使用比较复杂,最好先过一遍概念再动手实践尝试使用。1、背景随着程序功能的日益复杂,程序的配置日益增多,各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高,配…...
长安镇仿做网站/公众号推广平台
参考:http://www.cnblogs.com/xiangpiaopiao2011/archive/2012/02/28/2371679.html 返回错误:ftp connect time out. 先判断是否登录成功,若登录成功之后FtpClient.storeFile还返回false,则参考下面代码 ftpClient.enterLocalPassiveMode();ftpClient.setControlEnc…...
哪些网站可以用gif做头像/优化关键词排名的工具
void InsertSort(int array[],int n) {int i, j,temp;for (i1;i<n;i){if (array[i]<array[i-1])//将array[i]的元素插入前面有序的子序列{temp array[i];for (j i - 1; temp < array[j]; j--)//一直将元素后移,直到当前位置的元素小于array[i]的值array[…...
西部数码网站备案/希爱力副作用太强了
转自 http://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php GBK编码范围:8140-FEFE,汉字编码范围见第二节:码位分配及顺序。 GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编…...
tcga做多因素分析的网站/企业网络推广的方法
1、客户端发送请求后经过FilterDispatcher过滤器2、FilterDispatcher把请求的处理交给ActionProxy3、ActionProxy通过配置文件找到需要调用的Action类4、ActionProxy创建一个ActionInvocation实例5、ActionInvocation调用、回调Action的execute方法6、Action执行完毕ActionInvo…...
制作微网站的费用/东方网络律师团队
最近在公司碰到一个问题。手机软编码上传,流可以正常播放。硬编就不行。tcpdump对比抓包,如下 硬编 软编码 一个字节一个字节对比。 参考几片说rtmp对视频封装的文章 点击打开链接 发现在软编中。描述数据包产度的是00 17,换算成十字就是23个字节 …...