有关MYSQL的22年最新部分面试题汇总

2021年MySQL面试题55道 文章目录前言面试题系列文章传送门MySQL面试题内容1. 简述在MySQL数据库中引擎MyISAM和InnoDB的区别?2. MySQL中有哪几种锁?3. 什么是通用SQL函数?4. MySQL中有哪些不同的表格?5. CHAR和VARCHAR的区别?6. MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?7. myisamchk是用来做什么的?8. 主键和候选键有什么区别?9. 如果一个表有一列定义为TIMESTAMP,将发生什么?10. 列设置为AUTO INCREMENT时,如 阅读详情

数据库的三范式是什么?

  1. 第一范式:列不可再分 。

  2. 第二范式:行可以唯一区分,主键约束 。

  3. 第三范式:表的非主属性不能依赖与 其他表的非主属性 外键约束 。

且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式 建立第一第二范式上。

MYISAM、Innodb的区别有哪些?

  1. InnoDB支持事务,MyISAM不支持。

  2. InnoDB支持外键,而MyISAM不支持。

  3. InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。而MyISAM是非聚集索引,数据文件是分离的, 索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

  4. InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用 一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快。

  5. Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高。

什么是事务?

多条sql语句,要么全部成功,要么全部失败。

事务的特性(ACID)?

  1. 原子性:组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有操作都成功, 整个事务才会提交。任何一个操作失败,已经执行的任何操作都必须撤销,让数据库返回初始 状态。

  2. 一致性:事务操作成功后,数据库所处的状态和它的业务规则是一致的。即数据不会被破坏。 如A转账100元给B,不管操作是否成功,A和B的账户总额是不变的。

  3. 隔离性:在并发数据操作时,不同的事务拥有各自的数据空间,它们的操作不会对彼此产生干扰 .

  4. 持久性:一旦事务提交成功,事务中的所有操作都必须持久化到数据库中。

索引是什么?

索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书 前面的目录,能加快数据库的查询速度。

常见的索引有哪些?

  1. 普通索引:主要以B+树和哈希索引为主,任务是加快对数据的访问速度,常用于查询和排序的条件,值可以为空并没有唯一性的限制。

  2. 唯一性索引:与普通索引类似,不同的是唯一性索引,索引列的值必须是唯一的,但可以为空。

  3. 主键索引:主键索引是一种特殊的唯一性索引,在定义主键是自动创建,是创建在主键上的索引,所有属性列唯一而且不能为空。

  4. 全文索引:MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。

InnoDB中常见的索引?

  1. B+树索引

  2. 聚簇索引

  3. 非聚簇索引

  4. 联合索引

  5. 全文索引

  6. 哈希索引

索引有什么优缺点?

优点:

  1. 提高查询数据的速度,降低数据库的IO成本。

  2. 降低数据排序的成本,降低CPU的消耗,索引已经将数据排序好

缺点:

  1. 占用多余存储空间

  2. 降低数据更新时候的速度,更新数据也需要去更新索引的数据

什么是聚簇索引?

叶子节点存放的是该行完整的行记录,这个特性决定了索引组织表中数据也是索引的一部分,每张表只能拥有一个聚簇索引。

优点:

  • 数据访问更快,因为聚簇索引将索引和数据保存在同一个B+树中,因此从聚簇索引中获取数据比非聚簇索引更快。

  • 聚簇索引对于主键的排序查找和范围查找速度非常快。

缺点:

  • 插入速度严重依赖于插入顺序,按照主键的顺序插入是最快的方式,否则将会出现页分裂,严重影响性能。

  • 更新主键的代价很高,因为将会导致被更新的行移动。因此,对于InnoDB表,我们一般定义主键为不可更新。

  • 二级索引访问需要两次索引查找,第一次找到主键值,第二次根据主键值找到行数据。

什么是非聚簇索引?

叶子节点上存放的只有索引列和主键数据,查询的列不在索引列中需要回表进行查询。

什么是前缀索引?

语法:index(field(10)),使用字段值的前10个字符建立索引,默认是使用字段的全部内容建立索引。

前提:前缀的标识度高。比如密码就适合建立前缀索引,因为密码几乎各不相同。

索引原则?

  1. 索引不是越多越好。

  2. 不要对经常变动的数据加索引。

  3. 小数据量的表不需要加索引。

  4. 索引一般加在常用来查询的字段上。

为什么索引是使用B+树?

  1. 在innodb存储引擎中一个b+树的节点是 一页(16k),而b+树是把数据都存放在叶子节点中的,那么在固定大小的容量中 B+树的非叶子节点中就可以存放更多的索引列数据,也就意味着B+树的非叶子节点存储的数据的范围就会更大,那么树的层次就会更少,IO次数也就会更少;

  2. b+树的叶子节点维护了一个双向链表,它更有利于范围查询

  3. b+树中的叶子节点和非叶子节点的数据都是分开存储的,那么进行全表扫描的时候,就可以不用再扫描非叶子节点的数据了,并且这是一个顺序读取数据的过程(顺序读比随机读的速度要快很多很多),扫描的速度也会大大提高;

为什么InnoDB的表一定要建一个主键?

InnoDB的表默认使用B+树来维护整张表的数据的,如果没有建立,Mysql会自己去找表中所有的列,看有没有一列是所有数据不重复的。有则按照这一列来维护一颗B+树来做索引,没有则Mysql自己维护一个隐藏的自增的列来做索引列从而维护B+树。所以如果不建立主键的话会增加MySQL的工作量,性能会有所下降。

为什么推荐使用自增整形主键作为索引?

一般工作中使用的存储引擎都为innodb,而innodb底层的数据结构为B+树,B+树是存放的数据是有序的

  1. 如果是自增的话,每次添加只需要添加到末尾即可,不是递增的话,可能会涉及到页分裂的情况

  2. 使用字符串的话,每次插入还需要先去计算字符串的大小,而且整形的的大小比较比字符串要高

B+树和B树的区别?

  1. B+树的非叶子节点不存放数据,而B树的所有节点上都有数据,但每个节点的大小是固定的16KB,所以B+树的非叶子节点可以存放更多的索引元素,从而降低整个树的高度,减少查询时的IO次数

  2. B+树的叶子节点维护了一个双向指针,能提高范围查询的速度,因为不需要每一次都从根节点开始查询

什么叫做最左前缀原则?

当我们用联合索引查询的时候,必须遵循最左前缀原则才会走索引,因为联合索引在维护B+树的时候,首先会比较第一个字段,如果第一个字段不相同,就直接按照第一个字段排序,如果相同,则按照下一个字段来进行比较,以此来维护B+树,所以在查询的时候不能跳过第一个索引来进行查询,跳过第一个字段之后第二个字段不是有序的,所以会不会走索引,这个就叫最左前缀原则。

MySQL索引失效的几种情况?

  1. like查询以%开头,因为会导致查询出来的结果无序。

  2. 类型转换,列计算也会可能会让索引失效,因为结果可能是无序的,也可能是有序的。

  3. 在一些查询的语句中,MySQL认为走全表扫描比索引更加快也会导致索引失效。

  4. 如果条件中有or并且or连接的字段中有列没有索引,那么即使其中有条件带索引也不会使用索引。

  5. 复合索引不满足最左原则就不能使用全部索引。

常见的索引优化手段有哪些?

  1. 尽可能的使用联合索引而不是索引的组合;

  2. 创建索引尽量让辅助索引进行索引覆盖 而不是回表;

  3. 在可以使用主键id的表中,尽量使用自增主键id,这样可以避免页分裂;

  4. 查询的时候尽量不要使用select * ,这样可以避免大量的回表;

  5. 尽量少使用子查询,能使用外连接就使用外连接,这样可以避免产生笛卡尔集;

  6. 能使用短索引就是用短索引,这样可以在非叶子节点存储更多的索引列降低树的层高,并且减少空间的开销;

drop、delete与truncate的区别

  1. delete和truncate只删除表的数据不删除表的结构 速度,一般来说: drop> truncate >delete

  2. delete 语句是dml,这个操作会放到rollback segement中,事务提交之后才生效; 如果有相应的trigger,执行 的时候将被触发.

  3. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.

什么是视图?

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是 有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易, 相比多表查询。

什么是内联接、左外联接、右外联接?

  • 内联接(Inner Join):匹配2张表中相关联的记录。

  • 左外联接(Left Outer Join):除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记 录,右表中未匹配到的字段用NULL表示。

  • 右外联接(Right Outer Join):除了匹配2张表中相关联的记录外,还会匹配右表中剩余的记 录,左表中未匹配到的字段用NULL表示。在判定左表和右表时,要根据表名出现在Outer Join 的左右位置关系。

MySQL的隔离级别有哪些,分别有什么问题?

  • 读未提交:脏读(第一个事务读到了另外的事务没有提交的数据)

  • 读已提交:不可重复读(在第一个事务中的两次读数据之间,由于第二个事务 的修改导致第一个事务两次读取的数据可能不太一样)

  • 可重复读:幻读(它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。在随后的查询中,第一个事务(T1)就会 发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读。)

  • 序列化:效率低

大表如何优化?

  1. 限定数据的范围 务必禁止不带任何限制数据范围条件的查询语句。

  2. 读/写分离

  3. 垂直分区:指数据表列的拆分,把一张列比较多的表拆分为多张表

  4. 垂直拆分的优点: 可以使得列数据变小,在查询时减少读取的Block数,减少I/O次数。此外, 垂直分区可以简化表的结构,易于维护。

  5. 垂直拆分的缺点: 主键会出现冗余,需要管理冗余列,并会引起Join操作,可以通过在应用层 进行Join来解决。此外,垂直分区会让事务变得更加复杂。

  6. 保持数据表结构不变,通过某种策略存储数据分片。这样每一片数据分散到不同的表或者库中,达 到了分布式的目的。 水平拆分可以支撑非常大的数据量。

数据库分片的两种常见方案?

  1. 客户端代理: 分片逻辑在应用端,封装在jar包中,通过修改或者封装JDBC层来实现。 当当网 的 Sharding-JDBC 、阿里的TDDL是两种比较常用的实现。

  2. 中间件代理: 在应用和数据中间加了一个代理层。分片逻辑统一维护在中间件服务中。 我们现 在谈的 Mycat 、360的Atlas、网易的DDB等等都是这种架构的实现。

分库分表之后,id 主键如何处理?

  1. UUID:不适合作为主键,因为太长了,并且无序不可读,查询效率低。比较适合用于生成唯 一的名字的标示比如文件的名字。

  2. 数据库自增 id : 两台数据库分别设置不同步长,生成不重复ID的策略来实现高可用。这种方式 生成的 id 有序,但是需要独立部署数据库实例,成本高,还会有性能瓶颈。

  3. 利用 redis 生成 id : 性能比较好,灵活方便,不依赖于数据库。但是,引入了新的组件造成系 统更加复杂,可用性降低,编码更加复杂,增加了系统成本。

  4. Twitter的雪花算法

  5. 美团的Leaf分布式ID生成系统

说说在 MySQL 中一条查询 SQL 是如何执行的?

  1. 获取连接:获取MySQL 中的连接器。

  2. 查询缓存:key为SQL语句,value 为查询结果,如果查到就直接返回。不建议使用次缓存, 在 MySQL 8.0 版本已经将查询缓存删除,也就是说 MySQL 8.0 版本后不存在此功能。

  3. 分析器:分为词法分析和语法分析。此阶段只是做一些 SQL 解析,语法校验。所以一般语法错误在此阶段。

  4. 优化器:索引选择或者是表的连接顺序。

  5. 执行器:使用这个引擎提供的接口,获取这个表的第一行,判断 id 是都 等于 1。如果是,直接返回;如果不是继续调用引擎接口去下一行,重复相同的判断,直到取 到这个表的最后一行,最后返回。

MySQL 中 varchar 与 char 的区别?

  1. varchar 与 char 的区别,char 是一种固定长度的类型,varchar 则是一种可变长度的类型。

  2. 对效率要求高用 char,对空间使用要求高用 varchar。

varchar(30) 中的 30 代表的涵义?

varchar(30) 中 30 的涵义最多存放 30 个字符。varchar(30) 和 (130) 存储 hello 所占空间一 样,但后者在排序时会消耗更多内存,因为 ORDER BY col 采用 fixed_length 计算 col 长度 (memory 引擎也一样)。

count(*)、count(主键id)、count(字段)和count(1)那种效率更高?

  • count(主键id):InnoDB引擎会遍历整张表,把每一行的id值都取出来,返回给server层。server层拿到id后,判断是不可能为空的,就按行累加。

  • count(1):InnoDB引擎遍历整张表,但不取值。server层对于返回的每一行,放一个数字“1”进去,判断是不可能为空的,按行累加。

  • 单看这两个用法的差别的话,你能对比出来,count(1)执行得要比count(主键id)快。因为从引擎返回id会涉及到解析数据行,以及拷贝字段值的操作。

  • count(字段):

  • 如果这个“字段”是定义为not null的话,一行行地从记录里面读出这个字段,判断不能为null,按行累加;

  • 如果这个“字段”定义允许为null,那么执行的时候,判断到有可能是null,还要把值取出来再判断一下,不是null才累加。

  • 也就是前面的第一条原则,server层要什么字段,InnoDB就返回什么字段。

  • count():并不会把全部字段取出来,而是专门做了优化,不取值。count()肯定不是null,按行累加。

所以结论是:按照效率排序的话,count(字段)<count(主键id)<count(1)≈count(),所以我建议你,尽量使用count()。

什么是 MVCC?

MVCC即多版本并发控制,指的就是在使用读已提交,可重复读的隔离级别中的事务在执行普通的SEELCT操作时访问记录的版本链的过程,这样子可以使不同事务的读-写,写-读操作并发执行,从而提高系统性能。

详细地址:www.cnblogs.com/nevererror/…

数据库并发场景有哪些问题?

  • 读-读:不存在任何问题,也不需要并发控制

  • 读-写:有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读,不可重复读

  • 写-写:有线程安全问题,可能会存在更新丢失问题,比如第一类更新丢失,第二类更新丢失

MVCC 可以为数据库解决什么问题?

在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,提高了数 据库并发读写的性能。同时还可以解决脏读、幻读、不可重复读等事务隔离问题,但不能解决更新丢失问题。

MVCC的实现原理?

通过InnoDB表中的影藏字段、undoLog,版本链,ReadView来实现的,而MVCC+锁则实现了事务的隔离性,一致性则由redolog和undolog保证

MySQL 数据库的锁?

  1. 共享锁:不堵塞,多个用户可以同一时刻读取同一个资源,相互之间没有影响。

  2. 排它锁:一个写操作阻塞其他的读锁和写锁,这样可以只允许一个用户进行写入,防止其他用 户读取正在写入的资源。

  3. 表锁:系统开销最小,会锁定整张表,MyISAM 使用表锁。

  4. 行锁:容易出现死锁,发生冲突概率低,并发高,InnoDB 支持行锁(必须有索引才能实现, 否则会自动锁全表,那么就不是行锁了)。

说什么是锁升级?

  1. MySQL 行锁只能加在索引上,如果操作不走索引,就会升级为表锁。

  2. 当非唯一索引上记录数超过一定数量时,行锁也会升级为表锁。

MySQL中InnoDB引擎的行锁是怎么实现的?

InnoDB是基于索引来完成行锁

例: select * from tab_with_index where id = 1 for update; for update 可以根据条件来完成行锁锁定,并且 id 是有索引键的列,如果 id不是索引键那么InnoDB将 完成表锁

什么是间隙锁?

间隙锁是在索引记录之间的间隙上的锁,或者在查询的第一条索引记录之前或最后一条索引记录之后的间隙上的锁。间隙锁通过锁住一个范围,如果其他事务想要在这个范围内插入该范围不存在的数据时就会被阻塞。

详细地址:blog.youkuaiyun.com/fofcn/artic…

binlog和redolog 的区别?

  1. BinLog 是 MySQL 本身就拥有的,不管使用何种存储引擎,BinLog 都存在,而Redo Log 是 InnoDB 存储引擎特有的,只有 InnoDB 存储引擎才会输出Redo Log。

  2. Bin Log 是一种逻辑日志,记录的是对数据库的所有修改操作,而 Redo Log 是一种物理日志, 记录的是每个数据页的修改。

  3. BinLog 是追加写入,写完一个日志文件再写下一个日志文件,不会覆盖使用,而Redo Log 是循环写入,日志空间的大小是固定的,会覆盖使用。

  4. Bin Log 一般用于主从复制和数据恢复,并且不具备崩溃自动恢复的能力,而 Redo Log 是在服务器发生故障后重启 MySQL,用于恢复事务已提交但未写入数据表的数据。

为什么需要两阶段提交?

如果没有两阶段提交,那么 binlog 和 redolog 的提交,无非就是两种形式:

  1. 先写 binlog 再写 redolog。

  2. 假设我们要向表中插入一条记录 R,如果是先写 binlog 再写 redolog,那么假设 binlog 写完后崩溃了,此时 redolog 还没写。那么重启恢复的时候就会出问题:binlog 中已经有 R 的记录了,当从机从主机同步数据的时候或者我们使用 binlog 恢复数据的时候,就会同步到 R 这条记录;但是 redolog 中没有关于 R 的记录,所以崩溃恢复之后,插入 R 记录的这个事务是无效的,即数据库中没有该行记录,这就造成了数据不一致。

  3. 先写 redolog 再写 binlog。

  4. 相反,假设我们要向表中插入一条记录 R,如果是先写 redolog 再写 binlog,那么假设 redolog 写完后崩溃了,此时 binlog 还没写。那么重启恢复的时候也会出问题:redolog 中已经有 R 的记录了,所以崩溃恢复之后,插入 R 记录的这个事务是有效的,通过该记录将数据恢复到数据库中;但是 binlog 中还没有关于 R 的记录,所以当从机从主机同步数据的时候或者我们使用 binlog 恢复数据的时候,就不会同步到 R 这条记录,这就造成了数据不一致。

那么按照前面说的两阶段提交就能解决问题吗?

我们来看如下三种情况:

情况一: 一阶段提交之后崩溃了,即写入 redo log,处于 prepare 状态 的时候崩溃了,此时:

由于 binlog 还没写,redo log 处于 prepare 状态还没提交,所以崩溃恢复的时候,这个事务会回滚,此时 binlog 还没写,所以也不会传到备库。

情况二: 假设写完 binlog 之后崩溃了,此时:

redolog 中的日志是不完整的,处于 prepare 状态,还没有提交,那么恢复的时候,首先检查 binlog 中的事务是否存在并且完整,如果存在且完整,则直接提交事务,如果不存在或者不完整,则回滚事务。

情况三: 假设 redolog 处于 commit 状态的时候崩溃了,那么重启后的处理方案同情况二。

由此可见,两阶段提交能够确保数据的一致性。

mysql中in和exists区别

mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop 循环,每次loop循环再对内表进行查询。

一直大家都认为exists比in语句的效率要高,这种说法其实是不 准确的。这个是要区分环境的。

  1. 如果查询的两个表大小相当,那么用in和exists差别不大。

  2. 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in

  3. not in 和not exists:如果查询语句使用了not in,那么内外表都进行全表扫描,没有用到索引;而 not extsts的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。

int(20)中20的涵义

是指显示字符的长度。20表示 大显示宽度为20,但仍占4字节存储,存储范围不变; 不影响内部存储,只是影响带 zerofill 定义的 int 时,前面补多少个 0,易于报表展示。

MySQL的复制原理以及流程

原理:将主数据库中的DDL和DML操作通过二进制日志(BINLOG)传输到从数据库上,然后将这 些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。

流程:

  1. master在每个事务更新数据完成之前,将该操作记录串行地写入到 binlog文件中。

  2. salve开启一个I/O Thread,该线程在master打开一个普通连接,主要工作是binlog dump process。如果读取的进度已经跟上了master,就进入睡眠状态并等待master产生新的事件。I/O线程 终的目的是将这些事件写入到中继日志中。

  3. SQL Thread会读取中继日志,并顺序执行该日志中的SQL事件,从而与主数据库中的数据保持 一致。

Mysql深度分页问题怎么解决

  1. 从产品角度来说,不允许用户随机跳页,并且把上一页的主键ID带过来作为分页参数

  2. SELECT * FROM cps_user_order_detail d WHERE d.id > #{maxId} AND d.order_time>'2020-8-5 00:00:00' ORDER BY d.order_time LIMIT 6; 复制代码

  3. 子查询使用ID去IN查询

  4. select * from table where id in (select id from table limit 5); 复制代码

  5. Elastic Search搜索引擎优化(基于倒排索引,ES深度分页问题使用游标scroll解决)

SQL优化手段有哪些?

  1. 查询语句中不要使用select *

  2. 尽量减少子查询,使用关联查询(left join,right join,inner join)替代

  3. 减少使用IN或者NOT IN ,使用exists,not exists或者关联查询语句替代

  4. or 的查询尽量用 union或者union all 代替(在确认没有重复数据或者不用剔除重复数据时, union all会更好)

  5. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

  6. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表 扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有 null值,然后这样查询: select id from t where num=0

2020最新Java面试题(java,JavaWeb,数据库,框架),常见面试题及答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和 JVM... 阅读详情

相关推荐

java面试题及答案2020 大汇总

java面试题及答案2020 java面试题大汇总 百度第一篇 java面试题及答案2020 先点赞后收藏,以后更新及时看 文末后续更新答案,持续更新 一面 2018/9/11 来自于牛客网 1、手写ArrayList 2、手写进制转换算法,求出一个数的二进制数 1 的个数 3、JAVA 基础,equals 和== 4、多线程方式、threadlocal,各种锁,synchronized 和 lock 5、设计模式、spring 类加载方式、实例保存在哪、aop ioc、反射机制6、类加载器,双亲委派模

月已满西楼的博客 2万+

Mysql常用查询

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 近7天 SELECT * ...

cigua7479的博客 1986

【金三银四】MySQL优化面试题(2021最新版)

【金三银四】Java中间件面试题(2021最新版) MySQL调优+索引+数据结构面试题(2021最新版) 【金三银四】Java微服务面试题(2021最新版) 【金三银四】Java并发编程面试题(2021最新版) 【金三银四】Java基础知识面试题(2021最新版) 【金三银四】Redis面试题(2021最新版) 【金三银四】Spring Boot面试题(2021最新版) 【金三银四】spring mvc面试题(2021最新版) 【金三银四】spring cloud面试题(202...

SQY0809的博客 1万+

2025年最全JAVA面试题汇总

大家好,给大家汇总了2025年最新的JAVA面经汇总。

m0_73735578的博客 1884

2024年全栈工程师最新面试题汇总及答案

27. **ACID属性**:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。9. **Promise和async/await**:Promise是异步编程的一种解决方案,async/await是基于Promise的更简洁的语法。21. **RESTful API**:一种设计风格,用于创建可维护、可扩展、可缓存的API。3. **CSS选择器**:元素选择器、类选择器、ID选择器、属性选择器、伪类和伪元素等。

guo162308的博客 2262

ArduSub程序学习(1)——ardupilot框架整理

AP_HAL层(硬件抽象层)是我们制作 ArduPilot 的方式可移植到许多不同的平台。有一个顶级AP_HAL libraries/AP_HAL,用于定义代码其余部分的接口 有针对具体的板子特性,然后就有了AP_HAL_XXX 子目录,例如,AP_HAL_AVR 用于基于 AVR 的 开发板,AP_HAL_PX4用于 Pixhawk 开发板和 AP_HAL_Linux 基于 Linux 开发板。工具目录tools directories工具目录是杂项支持目录。

weixin_49839886的博客 2816

最新Java面试题,常见面试题及答案汇总

154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?165.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?29.在 Queue 中 poll()和 remove()有什么区别?46.线程池中 submit()和 execute()方法有什么区别?

m0_74825718的博客 1159

在 Kubernetes 上部署 Label Studio

Label Studio 是一款开源的数据标注工具,支持多种标注任务,如文本标注、图像标注、音频标注等。

啥都会一点 671

架构面试题汇总:40道题吃透mysql(2024版)

MySQL面试题涵盖了索引优化、事务管理、并发控制以及存储格式等核心领域,旨在评估应聘者对数据库性能优化和数据一致性的理解。掌握索引类型、事务隔离级别以及MVCC等机制,是提升数据库查询效率和保证并发数据完整性的关键。同时,合理选择行格式对节省存储空间和提高访问速度至关重要。通过深入掌握这些MySQL核心概念,应聘者能够设计出更高效、更稳定的数据库系统。

码到三十五 3万+

51单片机自学笔记(六)数码管动态扫描与消影实战

本文详细解析了51单片机数码管动态扫描原理与视觉暂留效应,通过硬件电路分析和C语言代码实战,重点介绍了三种数码管消影技术(段选清零法、位选屏蔽法、硬件消影法),解决了显示重影问题,并提供了常见问题调试技巧与定时器中断优化方案,帮助开发者掌握稳定的多位数码管显示技术。

y9z0a1b的博客 1105

Qt实战:用QTreeView+QStandardItemModel实现多级多列文件浏览器(附完整代码)

本文深入探讨了使用Qt的QTreeView与QStandardItemModel构建多级多列文件浏览器的完整实践。通过分析模型/视图框架的优势,详细演示了从基础框架搭建、模拟数据填充,到对接真实文件系统实现懒加载的全过程。文章还涵盖了自定义委托、多列排序、右键菜单等高级定制技巧,并提供了性能优化建议和完整的代码示例,帮助开发者打造功能强大且高效的工业级文件管理界面。

weixin_29021291的博客 424

2026年最全Java面试题,及答案汇总!

123.在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?118.在 hibernate 中使用 Integer 和 int 做映射有什么区别?29.在 Queue 中 poll()和 remove()有什么区别?46.线程池中 submit()和 execute()方法有什么区别?53.synchronized 和 volatile 的区别是什么?25.ArrayList 和 LinkedList 的区别是什么?

2401_89221867的博客 1万+

【MCU开发规范】:车载MCU开发规范

车载MCU开发规范

1052

金三银四必备:2025 最新 Java 面试题附答案汇总

时间不等人,春招这就已经拉开序幕~马上又是春招的高峰“金三银四,估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之路了吧,机会来临,好好把握,争取一举上岸!从 2 月份开始小编就在整理“Java 一线大厂高岗面试题”,一题一题的抠,整出了这份。

m0_46995061的博客 1338

面积二次矩second moment of area 极惯性矩polar moment of area 转动惯量moment of inertia面积一次矩first moment of area

看论文记录一下力学的名词专业术语,后面可以查看。

subtitle_的博客 5371

DeerFlow 系列教程 第十二篇 | Tools 工具体系——从内置工具到 MCP 扩展

文件此工具允许 Agent 在运行时创建新的自定义 Agent。@toolsoul: str, # SOUL.md 的完整内容description: str, # Agent 的一行描述创建流程从获取agent_name写入配置文件(包含 name 和 description)写入灵魂文件SOUL.md(定义 Agent 的人格和行为)更新中的错误回滚MCP(Model Context Protocol)是一种标准协议,允许 AI Agent 连接外部工具服务器。DeerFlow 通过。

weixin_43674738的博客 181

精选2025年最新97道Java面试题:spring+Redis+JVM+mysql全在这里了

包含但不限于(分布式架构、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等知识点解析)也有各大互联网公司人才,可以交流讨论共同进步。2、一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?7、mysql 的内连接、左连接、右连接有什么区别?

x1ao_fe1的博客 3029

弱网、高热、只有 32MB 内存:恶劣环境下嵌入式 SoC 音视频开发的“不死”法则

永远不要假设。你申请一个 1920 宽的图像,硬件为了对齐(比如 16 字节对齐或 256 字节对齐),实际分配的一行可能有 1936 甚至是 2048 字节。那个多出来的部分叫Padding。如果你写代码时用来计算数据量,或者用Width来做指针偏移:恭喜你,你的画面会像被风吹歪的百叶窗一样,产生斜切畸变。永远使用VB_CONF结构体里返回的u32Stride字段。这是区分新手和老手的试金石。第六章 ISP 调优(Tuning)实战:为什么你调出的画面像个“鬼片”?

大模型大数据攻城狮的专栏 1771

MySQL部分最新特性快速预览

最后说下总体感受,这次的新版本并没啥特别吸睛的地方,给我的感受和前几次差不多,估计Oracle仍忙着创收,暂时无暇顾及MySQL社区版吧,我个人表示这个事能理解,哈哈哈。2、在MGR中,当某个节点意外退出且一直未重新加入,此时若有新的节点加入时,可能会反复尝试连接此前已意外退出的节点,这么做可能会导致严重的网络延迟问题。在新版本中,这个尝试连接意外退出的旧节点只会最多持续5分钟,如果还无法连接则放弃,避免造成更多影响。今天先到这里,更多新特性和变化,以及9.4.0新版本的体验感受等以后再慢慢分享吧。

老叶茶馆 1199

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

什么!?金三银四,2024年阿里最新面试题惨遭泄露?,阿里后端面经

虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料。

2401_84002482的博客 763

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

面试被问:Java面试题附答案汇总

春招即将进入“金三银四”高峰期,程序员们正积极备战。为助力求职者,本文整理了Java一线大厂高岗面试题,涵盖Java基础、中级、高级、开源框架(SSM)、性能调优(JVM、MySQL、Tomcat)、分布式(限流、缓存、通讯)、微服务(SpringBoot、SpringCloud、Dubbo)及其他(并发编程、设计模式、数据结构与算法、网络)六大模块。每部分均附详细解析,帮助求职者系统复习,提升面试通过率。

2401_89221445的博客 1294

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

精选2024年最新97道Java面试题:spring+Redis+JVM+mysql全在这里了

您的支持是我不断前行的动力,我将更加勤勉地分享高质量内容。如果您喜欢我的分享,欢迎关注,期待与您共同进步。祝愿每位同仁都能在面试中脱颖而出,顺利斩获心仪的offer!

x1ao_fe1的博客 1601

2019最新Java面试题,常见面试题及答案汇总

Java最新常见面试题 + 答案汇总 原文地址:https://blog.youkuaiyun.com/fangchao2011/article/details/89203535 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、H...

mengtianqq的博客 353
上一篇: MySQL数据库的索引是什么
下一篇: 浅谈单线程的Redis快的原因是什么
Java_LingFeng
博客等级 码龄4年 505粉丝 259原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值