MySQL常见面试题自测

文章目录

  • MySQL基础架构
    • 一、说说 MySQL 的架构?
    • 二、一条 SQL语句在MySQL中的执行过程
  • MySQL存储引擎
    • 一、MySQL 提供了哪些存储引擎?
    • 二、MySQL 存储引擎架构了解吗?
    • 三、MyISAM 和 InnoDB 的区别?
  • MySQL 事务
    • 一、何谓事务?
    • 二、何谓数据库事务?
    • 三、ACID 特性指的是什么?
    • 四、并发事务带来了哪些问题?
    • 五、不可重复读和幻读区别?
    • 六、SQL 标准定义了哪些事务隔离级别?
    • 七、MySQL 的默认隔离级别是什么?能解决幻读问题么?
    • 八、什么是 MVCC?有什么用?原理了解么?
    • 九、InnoDB 事务隔离级别实现原理?
  • MySQL 锁
    • 一、表级锁和行级锁了解吗?有什么区别?
    • 二、行级锁的使用有什么注意事项?
    • 三、共享锁和排他锁呢?
    • 四、意向锁有什么作用?
    • 五、InnoDB 有哪几类行锁?
  • MySQL索引
    • 一、何为索引?有什么作用?
    • 二、索引的优缺点?
    • 三、索引的底层数据结构?
    • 四、MySQL 的索引结构为什么使用B+树?
    • 五、主键索引和二级索引?
    • 六、聚集索引与⾮聚集索引?
    • 七、覆盖索引?
    • 八、联合索引?
    • 九、最左前缀匹配原则?
    • 十、创建索引的注意事项有哪些?
  • MySQL日志
    • 一、MySQL 中常见的日志有哪些?
    • 二、慢查询日志有什么用?
    • 三、binlog 主要记录了什么?有什么用?
    • 四、redo log 如何保证事务的持久性?
    • 五、页修改之后为什么不直接刷盘呢?
    • 六、binlog 和 redolog 有什么区别?
    • 七、undo log 如何保证事务的原子性?
  • 性能优化
    • 一、SQL 优化?
    • 二、慢查询问题排查?


MySQL基础架构

一、说说 MySQL 的架构?

⾯试官⼀般不会直接问你 MySQL 基础架构,通常会由“⼀个 SQL 语句在 MySQL 中的执⾏流程”类似的问题引出。

在这里插入图片描述


二、一条 SQL语句在MySQL中的执行过程

提示:结合 MySQL 的基础架构来回答这个问题。

首先SQL语句进行执行的时候,先要进行数据库连接,连接完成后首先查询缓存,如果命中缓存,则直接返回。之后对SQL进行解析,解析的过程包括词法分析、语法分析后构建语法树。之后再执行SQL语句,有三个阶段分别是预处理器阶段,优化阶段和执行阶段。预处理阶段先检查字段是否存在,将select的*扩展成所有的列,在经过优化器选择合适的索引,最后执行器里执行操作,返回结果。


MySQL存储引擎

一、MySQL 提供了哪些存储引擎?

提示:可以通过 show engines; 命令查看 MySQL 提供的所有存储引擎。
MySQL支持多种存储引擎,MySQL默认使用InnoDB存储引擎。


二、MySQL 存储引擎架构了解吗?

提示:MySQL 存储引擎采⽤的是插件式架构,⽀持多种存储引擎,我们甚⾄可以为不同的数据库表设置不同的存储引擎以适应不同场景的需要。存储引擎是基于表的,⽽不是数据库。

MySQL 存储引擎采用的是 插件式架构 ,支持多种存储引擎,我们甚至可以为不同的数据库表设置不同的存储引擎以适应不同场景的需要。存储引擎是基于表的,而不是数据库。


三、MyISAM 和 InnoDB 的区别?

提示:从是否⽀持⾏级锁、事务、外键、数据库异常崩溃后的安全恢复、MVCC 等⽅⾯回答。
首先在MyISAM数据库不支持行级锁,而InnoDB支持。MyISAM数据库不支持事务,而InnoDB支持。MyISAM数据库不支持外键,而InnoDB支持。MyISAM数据库不支持数据库异常崩溃后的安全恢复,而InnoDB支持。MyISAM数据库不支持MVCC,而InnoDB支持。


MySQL 事务

一、何谓事务?

提示:转账的案例。

事务就是逻辑上的一组操作,要么都执行,要么都不执行。


二、何谓数据库事务?

提示:数据库事务可以保证多个对数据库的操作(也就是 SQL 语句)构成⼀个逻辑上的整体。构成这个逻辑上的整体的这些数据库操作遵循:要么全部执⾏成功,要么全部不执⾏ 。关系型数据库(例如: MySQL 、 SQL Server 、 Oracle 等)事务都有 ACID 特性。

多个数据库操作构成一个逻辑上的整体。这些数据库操作遵循要么全部执行成功,要么全部不执行。关系型数据库事务都有ACID特性。


三、ACID 特性指的是什么?

提示:ACID 特性⼤家都知道,但是,这⾥有⼀个绝⼤部分⼈可能会理解错误的地⽅:只有保证了事务的持久性、原⼦性、隔离性之后,⼀致性才能得到保障。也就是说 A、I、D 是⼿段,C 是⽬的!

ACID分别指代原子性、一致性、隔离性和持久性。只有保证了事务的持久性、原⼦性、隔离性之后,⼀致性才能得到保障。也就是说 A、I、D 是⼿段,C 是⽬的!


四、并发事务带来了哪些问题?

提示:脏读(Dirty read)、丢失修改(Lost to modify)、不可重复读(Unrepeatable read)、幻读(Phantom read)。
并发事务就是同一时间内发生多个事务,多个事务同时操作数据会导致脏读、丢失修改、不可重复度、幻读。


五、不可重复读和幻读区别?

不可重复读的重点是内容修改或者记录减少⽐如多次读取⼀条记录发现其中某些记录的值被修改;幻读的重点在于记录新增⽐如多次执⾏同⼀条查询语句(DQL)时,发现查到的记录增加了。

不可重复读的重点是内容修改或者记录减少⽐如多次读取⼀条记录发现其中某些记录的值被修改;

幻读的重点在于记录新增⽐如多次执⾏同⼀条查询语句(DQL)时,发现查到的记录增加了。


六、SQL 标准定义了哪些事务隔离级别?

提示:READ-UNCOMMITTED(读取未提交)、READ-COMMITTED(读取已提交)、REPEATABLE-READ(可重复读)、SERIALIZABLE(可串⾏化)。
定义了四种事务隔离级别,分别是 读取未提交读取提交可重复读可串行化


七、MySQL 的默认隔离级别是什么?能解决幻读问题么?

提示:默认隔离级别是 REPEATABLE-READ(可重读),可以解决幻读问题(两种情况,快照读和当前读)。
默认的隔离级别是可重复读,可以解决幻读问题。(快照读和当前读)。

快照读是普通的select语句是通过 MVCC 方式解决了幻读。因为可重复读隔离级别下,事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,即使中途有其他事务插入了一条数据,是查询不出来这条数据的,所以就很好了避免幻读问题。

当前读是select … for update 等语句。是通过 next-key lock(记录锁+间隙锁)方式解决了幻读,因为当执行 select … for update 语句的时候,会加上 next-key lock,如果有其他事务在 next-key lock 锁范围内插入了一条记录,那么这个插入语句就会被阻塞,无法成功插入,所以就很好了避免幻读问题。


八、什么是 MVCC?有什么用?原理了解么?

提示:RC(Read Committed,读提交)和 RR(Repeatable Read,可重复读)这两个隔离级别的实现都离不开 MVCC。
MVCC就是多版本并发控制,用于实现数据库并发控制的技术。它通过维护数据的多个版本来实现高效的并发访问,避免了传统锁机制带来的性能瓶颈。

作用:
提高并发性能:通过避免长时间锁定数据,MVCC 提高了数据库的并发性能。
实现一致性读:通过维护数据的多个版本,MVCC 能够实现一致性读操作,即在读操作期间,其他事务的修改不会影响当前事务的读取结果。
减少锁争用:MVCC 通过版本控制减少了事务之间的锁争用,从而提高了系统的整体性能。

MVCC 的核心思想是为每行数据维护多个版本,通过版本号来区分不同的事务视图。以下是 MVCC 的工作原理:

  • 版本链:每行数据都有一个版本链,链中的每个版本代表数据在某个时间点的状态。版本链通过指针连接,最新版本在链头,旧版本在链尾。
  • 隐藏列:InnoDB 在每行数据中维护了两个隐藏列:
    • 事务ID(transaction ID):表示创建或修改该版本的事务ID。
    • 回滚指针(rollback pointer):指向前一个版本的数据。
    • 快照读:在快照读操作中,事务会根据其事务ID选择合适的版本进行读取。具体来说,事务会忽略那些在事务开始之后创建的版本,以及在事务开始之前删除的版本。
  • 当前读:在当前读操作中,事务会读取最新的版本,并加锁以确保数据的一致性。

九、InnoDB 事务隔离级别实现原理?

提示:这个问题研究的⽐较深⼊,⼀般的⾯试不会问,难度有点⼤,需要结合 MySQL 锁和 MVCC 来回答。学有余⼒的朋友,可以通过下⾯这两篇⽂章来准备这个问题:
结合 MySQL 锁和 MVCC 来回答


MySQL 锁

一、表级锁和行级锁了解吗?有什么区别?

提示:表级锁(table-level locking)⼀锁就锁整张表。⾏级锁的粒度更⼩,仅对相关的记录上锁即可(对⼀⾏或者多⾏记录加锁)

表级锁,一锁就锁住整张表。而行级锁粒度更小是针对相关记录上锁即可。


二、行级锁的使用有什么注意事项?

提示:InnoDB 的⾏锁是针对索引字段加的锁,表级锁是针对⾮索引字段加的锁。当我们执⾏ UPDATE 、 DELETE 语句时,如果 WHERE 条件中字段没有命中索引或者索引失效的话,就会导致扫描全表对表中的所有记录进⾏加锁。

InnoDB 的⾏锁是针对索引字段加的锁,表级锁是针对⾮索引字段加的锁。当我们执⾏ UPDATE 、 DELETE 语句时,如果 WHERE 条件中字段没有命中索引或者索引失效的话,就会导致扫描全表对表中的所有记录进⾏加锁。


三、共享锁和排他锁呢?

提示:不论是表级锁还是⾏级锁,都存在共享锁(Share Lock,S 锁)和排他锁(Exclusive Lock,X 锁)这两类

共享锁(S锁):又称读锁,事务在读取记录的时候获取共享锁,允许多个事务同时获取。
排他锁(X锁):又称写锁,事务在修改记录的时候获取排他锁,不允许多个事务同时获取。当一个记录已经被加了排他锁后,那其他事物就不能对这条事物加任何的锁了。


四、意向锁有什么作用?

提示:快速判断是否可以对某个表使⽤表锁。意向锁是表级锁,共有两种。并且,意向锁之间是互相兼容的。
快速判断是否可以对某个表使⽤表锁。
意向锁共有两种:

  • 意向共享锁:事务有意向对表中的某些记录加共享锁,加共享锁前必须先取得该表的意向共享锁。
  • 意向排他锁:事务有意向向表中的某些记录加排他锁,加排他锁之前必须先取得该表的意向排他锁。

五、InnoDB 有哪几类行锁?

提示:表级锁(table-level locking)⼀锁就锁整张表。⾏级锁的粒度更⼩,仅对相关的记录上锁即可(对⼀⾏或者多⾏记录加锁)

InnoDB 行锁是通过对索引数据页上的记录加锁实现的,MySQL InnoDB 支持三种行锁定方式:

  • 记录锁(Record Lock):也被称为记录锁,属于单个行记录上的锁。
  • 间隙锁(Gap Lock):锁定一个范围,不包括记录本身。
  • 临键锁(Next-Key Lock):Record Lock+Gap Lock,锁定一个范围,包含记录本身,主要目的是为了解决幻读问题(MySQL 事务部分提到过)。记录锁只能锁住已经存在的记录,为了避免插入新记录,需要依赖间隙锁。

MySQL索引

一、何为索引?有什么作用?

提示:索引的作⽤就相当于书的⽬录。

索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。索引的作用就相当于书的目录。打个比方: 我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那一页就行了。


二、索引的优缺点?

提示:索引并不都是好的,创建索引和维护索引也需要耗费资源和时间
优点:

  • 使用索引可以大大加快数据的检索速度(大大减少检索的数据量), 减少 IO 次数,这也是创建索引的最主要的原因。
  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
    缺点:
  • 创建索引和维护索引需要耗费许多时间。当对表中的数据进行增删改的时候,如果数据有索引,那么索引也需要动态的修改,会降低 SQL 执行效率。
  • 索引需要使用物理文件存储,也会耗费一定空间。

三、索引的底层数据结构?

提示:表级锁(table-level locking)⼀锁就锁整张表。⾏级锁的粒度更⼩,仅对相关的记录上锁即可(对⼀⾏或者多⾏记录加锁)

B+树


四、MySQL 的索引结构为什么使用B+树?

提示:结合⼆叉查找树、平衡⼆叉树、红⿊树、B 树存在的缺陷来回答这个问题。

B+树与 B 树相比,具备更少的 IO 次数、更稳定的查询效率和更适于范围查询这些优势。


五、主键索引和二级索引?

提示:数据表的主键列使⽤的就是主键索引。⼆级索引⼜称为辅助索引,是因为⼆级索引的叶⼦节点存储的数据是主键。也就是说,通过⼆级索引,可以定位主键的位置。唯⼀索引,普通索引,前缀索引等索引属于⼆级索引。

数据表的主键列使⽤的就是主键索引。⼆级索引⼜称为辅助索引,是因为⼆级索引的叶⼦节点存储的数据是主键。也就是说,通过⼆级索引,可以定位主键的位置。唯⼀索引,普通索引,前缀索引等索引属于⼆级索引。


六、聚集索引与⾮聚集索引?

提示:聚集索引即索引结构和数据⼀起存放的索引。主键索引属于聚集索引。⾮聚集索引即索引结构和数据分开存放的索引

聚集索引即索引结构和数据⼀起存放的索引。主键索引属于聚集索引。⾮聚集索引即索引结构和数据分开存放的索引


七、覆盖索引?

提示:覆盖索引即需要查询的字段正好是索引的字段,那么直接根据该索引,就可以查到数据了,

覆盖索引即需要查询的字段正好是索引的字段,那么直接根据该索引,就可以查到数据了


八、联合索引?

提示:MySQL 中的索引可以以⼀定顺序引⽤多列。

使用表中的多个字段创建索引,就是 联合索引,也叫 组合索引 或 复合索引。


九、最左前缀匹配原则?

提示:在 MySQL 建⽴联合索引时会遵守最左前缀匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。
最左前缀匹配原则指的是在使用联合索引时,MySQL 会根据索引中的字段顺序,从左到右依次匹配查询条件中的字段。如果查询条件与索引中的最左侧字段相匹配,那么 MySQL 就会使用索引来过滤数据,这样可以提高查询效率。


十、创建索引的注意事项有哪些?

提示:选择合适的字段创建索引、尽可能的考虑建⽴联合索引⽽不是单列索引......。

  • 不为 NULL 的字段:索引字段的数据应该尽量不为 NULL,因为对于数据为 NULL 的字段,数据库较难优化。如果字段频繁被查询,但又避免不了为 NULL,建议使用 0,1,true,false 这样语义较为清晰的短值或短字符作为替代。
  • 被频繁查询的字段:我们创建索引的字段应该是查询操作非常频繁的字段。
  • 被作为条件查询的字段:被作为 WHERE 条件查询的字段,应该被考虑建立索引。
  • 频繁需要排序的字段:索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。
  • 被经常频繁用于连接的字段:经常用于连接的字段可能是一些外键列,对于外键列并不一定要建立外键,只是说该列涉及到表与表的关系。对于频繁被连接查询的字段,可以考虑建立索引,提高多表连接查询的效率。

MySQL日志

一、MySQL 中常见的日志有哪些?

提示:错误⽇志(error log)、⼆进制⽇志(binary log)、⼀般查询⽇志(general query log)、慢查询⽇志(slow query log) 、事务⽇志(redo log 和undo log) ......。
undolog 、 redolog 、binlog。


二、慢查询日志有什么用?

提示:慢查询⽇志记录了执⾏时间超过 long_query_time (默认是 10s) 的所有查询,在我们解决 SQL 慢查询(SQL 执⾏时间过⻓)问题的时候经常会⽤ 到。


三、binlog 主要记录了什么?有什么用?

提示:MySQL binlog(binary log 即⼆进制⽇志⽂件) 主要记录了 MySQL 数据库中数据的所有变化(数据库执⾏的所有 DDL 和 DML 语句)。

MySQL binlog(binary log 即⼆进制⽇志⽂件) 主要记录了 MySQL 数据库中数据的所有变化(数据库执⾏的所有 DDL 和DML 语句)。


四、redo log 如何保证事务的持久性?

提示:redo log 主要做的事情就是记录⻚的修改,⽐如某个⻚⾯某个偏移量处修改了⼏个字节的值以及具体被修改的内容是什么。在事务提交时,我们会将redo log 按照刷盘策略刷到磁盘上去,这样即使 MySQL 宕机了,重启之后也能恢复未能写⼊磁盘的数据,从⽽保证事务的持久性。

redo log 主要做的事情就是记录⻚的修改,⽐如某个⻚⾯某个偏移量处修改了⼏个字节的值以及具体被修改的内容是什么。在事务提交时,我们会将redo log 按照刷盘策略刷到磁盘上去,这样即使 MySQL 宕机了,重启之后也能恢复未能写⼊磁盘的数据,从⽽保证事务的持久性。


五、页修改之后为什么不直接刷盘呢?

提示:性能⾮常差!InnoDB ⻚的⼤⼩⼀般为 16KB,⽽⻚⼜是磁盘和内存交互的基本单位。这就导致即使我们只修改了⻚中的⼏个字节数据,⼀次刷盘操作也需要将 16KB ⼤⼩的⻚整个都刷新到磁盘中。⽽且,这些修改的⻚可能并不相邻,也就是说这还是随机 IO。

性能⾮常差!InnoDB ⻚的⼤⼩⼀般为 16KB,⽽⻚⼜是磁盘和内存交互的基本单位。这就导致即使我们只修改了⻚中的⼏个字节数据,⼀次刷盘操作也需要将 16KB ⼤⼩的⻚整个都刷新到磁盘中。⽽且,这些修改的⻚可能并不相邻,也就是说这还是随机 IO。


六、binlog 和 redolog 有什么区别?

提示:可以从⽤途、写⼊⽅式、是否是 InnoDB 引擎特有的这⼏个⽅⾯来回答。

  • binlog 主要⽤于数据库还原,属于数据级别的数据恢复,主从复制是binlog 最常⻅的⼀个应⽤场景。redolog 主要⽤于保证事务的持久性,属于事务级别的数据恢复。
  • redolog 属于 InnoDB 引擎特有的,binlog 属于所有存储引擎共有的,因为 binlog 是 MySQL 的 Server 层实现的。
  • redolog 属于物理⽇志,主要记录的是某个⻚的修改。binlog 属于逻辑⽇志,主要记录的是数据库执⾏的所有DDL 和 DML 语句。
  • binlog 通过追加的⽅式进⾏写⼊,⼤⼩没有限制。
  • redo log 采⽤循环写的⽅式进⾏写⼊,⼤⼩固定,当写到结尾时,会回到开头循环写⽇志。

七、undo log 如何保证事务的原子性?

提示:每⼀个事务对数据的修改都会被记录到 undo log ,当执⾏事务过程中出现错误或者需要执⾏回滚操作的话,MySQL 可以利⽤ undo log 将数据恢复到事务开始之前的状态。

每⼀个事务对数据的修改都会被记录到undo log ,当执⾏事务过程中出现错误或者需要执⾏回滚操作的话,MySQL 可以利⽤ undo log 将数据恢复到事务开始之前的状态。

undo log 属于逻辑⽇志,记录的是 SQL语句,⽐如说事务执⾏⼀条 DELETE 语句,那 undo log 就会记录⼀条相对应的INSERT 语句。


性能优化

一、SQL 优化?

提示:SQL 优化涵盖的内容⾮常多,像正确使⽤索引、数据结构、数据库函数等等都属于 SQL 优化的范畴。另外,问到 SQL 优化的时候⼀定离不开Explain 命令的使⽤!你可以参考下⾯这两篇⽂章来准备这个问题:


二、慢查询问题排查?

提示:记⼏个导致慢查询的常⻅原因,知道遇到慢查询问题了如何排查。具体做法可以参考这篇那些年我们⼀起优化的 SQL这篇⽂章。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从老花眼开始

三年前,博主的的火眼金睛开始老花了,表现就是看近处看不清了。人眼对可视距离的标准可以定义为:看手机为近距离,看电脑为中距离,看电视为中距离,看红绿灯为远距离。老花眼就是戴近视眼镜直接看手机看不清了…

苍穹外卖---导入接口文档

一、前后端分离开发流程 第一步:定义接口,确定接口的路径、请求方式、传入参数、返回参数。 第二步:前端开发人员和后端开发人员并行开发,同时,也可自测。 第三步:前后端人员进行连调测试。 第四步&…

嵌入式中间件_3.嵌入式中间件的一般架构

根据嵌入式中间件的不同类型和其应用对象的不同,其架构也有所不同,通常嵌入式中间件没有统一的架构,这里仅仅列举两种中间件架构。 1.消息中间件 1.1消息中间件原理架构 消息中间件是消息传输过程中保存消息的一种容器。它将消息从它的源中…

一文学会消息中间件的基础知识

什么是消息队列 队列数据结构 我们都学习过数据结构与算法相关的内容,消息队列从数据结构来看,就是一个由链表或是数组构成的一个先进先出的数据容器。由链表实现还是数组实现都没关系,它只要满足数据项是先进先出的特点,那么就可以认为它是一个队列结构。队列是只允许在…

使用Notes客户机高效工作

大家好,才是真的好。 年纪越大,发现每天时间越不够用。突然想到一个好办法,找相关书看,学习一下高效工作和生活管理。 刚好,就看到一本《每天节省2小时》,2013年出版,作者是肯尼斯齐格勒。其中…

JupyterLab使用指南(四):JupyterLab的Magic 命令

1. 什么是 Magic 命令 Magic 命令是 JupyterLab 中的一类特殊命令,用于简化和增强代码的执行。它们以 % 或 %% 开头,可以进行各种操作,如时间测量、环境设置、文件操作等。Magic 命令分为行 Magic 命令和单元 Magic 命令两种。 行 Magic 命…

Hi3861 OpenHarmony嵌入式应用入门--中断按键

本篇讲解gpio的中断使用方式。 硬件原理图如下,与上一篇一样的电路 GPIO API API名称 说明 hi_u32 hi_gpio_init(hi_void); GPIO模块初始化 hi_u32 hi_io_set_pull(hi_io_name id, hi_io_pull val); 设置某个IO上下拉功能。 hi_u32 hi_gpio_set_dir(hi_gpio_…

QT day4(对话框 事件机制)

1:思维导图 2: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->setupUi(this);//去除头部this->setWindowFlag(Qt::Frameles…

找单身狗2

找单身狗2 之前遇到类似的题目的思路: 首先写出这些数的二进制形式: 核心原理 接下来的问题是怎么把5和6分开来? 这里是最后一位进行比较,按位异或是相同为0,相异为1,最后一位从上图看出是1,说…

go 语言爬虫库goQuery 的详细使用(知乎日报详情页解析示例)

上一篇《uniapp小程序开发 | 从零实现一款影视类app 》实现了影视小程序的前端和后台接口,虽然包含了大多数小程序应有的知识,但基本还只是涉及网络接口和vue页面的设计。这里介绍下零一个有趣的练手项目,知乎日报。涉及详情页面的html解析&a…

python是TIOBE编程语言排名第一的编程语言,它有什么优点?它的使用场景有哪些?用python打印数字1--100,用python打印九九乘法表怎么写?

Python是TIOBE编程语言排行榜排名第一的编程语言 。 python是一种解释性、交互式、面向对象的跨平台的语言。 python设计者及名称由来 Guido van Rossum 荷兰人---吉多范罗苏姆,是 Python 编程语言的最初设计者,在 Python 社区一直担当终身仁慈独裁者&…

据阿谱尔APO Research调研显示,2023年全球水凝胶市场销售额约为14.2亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球水凝胶市场销售额约为14.2亿美元,预计在2024-2030年预测期内将以超过5.0%的CAGR(年复合增长率)增长。 水凝胶有多种应用,包括个人护理、制药、农业及其他…

JavaFX 分页

分页控件用于浏览多个页面。 我们典型地使用对网页的分页控制,例如博客。 在博客页面的底部,我们可以看到一个矩形区域,作为一个数字列表来指示页面索引,以及一个下一个/上一个按钮来链接到下一个/上一个页面。 创建分页控件 分…

保姆级小白就业人工智能(视频+源码+笔记)

🍅我是小宋, Java学习AI,记录学习之旅。关注我,带你轻松过面试。提升简历亮点(14个demo) 🍅我的java面试合集已有12W 浏览量。🌏号:tutou123com。拉你进专属群。 ⭐⭐你的…

vcs覆盖率相关

查看覆盖率是由哪几个tc覆盖的 选择要查看的覆盖率点,右键选择 show xxx tests; 覆盖率的合并

ARM32开发——中断

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 中断概念中断分类中断触发条件 中断概念 中断是计算机系统中的一种机制,用于响应外部事件或内部事件,它可以使单片机暂…

四川赤橙宏海商务信息咨询有限公司正规吗?

在数字化浪潮席卷全球的今天,电商行业正以前所未有的速度蓬勃发展。作为这一潮流的佼佼者,抖音电商以其独特的短视频直播模式,吸引了大量消费者和商家的目光。在这一背景下,四川赤橙宏海商务信息咨询有限公司应运而生,…

属于PCIe 7.0的那道光来了~

随着数据洪流的持续涌动与计算密集型应用的爆发式增长,传统的电子互连技术在应对高带宽、低延迟、节能等多维度需求时日益显现其局限性。在这个背景下,光学互连技术以其独特的性能优势,逐渐成为业界瞩目的焦点,被视为未来数据中心…

Android开发系列(三)Jetpack Compose 之TextField

TextField 是一个用于接收用户输入的UI组件。它是Jetpack Compose中的一部分,可以方便地实现用户文本输入的功能。 TextField 允许用户输入一个或多个文本行,可以用于接收用户的文本输入、搜索等操作。它提供了一些常用的功能,如输入验证、键…

[Qt] Qt Creator 编译输出乱码,问题页中的报错、警告内容,编译输出乱码

确保文件编码为"UTF-8","如果编码是UTF-8则添加",如下图: 设置IDE环境语言跟随系统语言,Text codec for tools: "System" 瑞斯拜