> 文章列表 > 面试题30天打卡-day09

面试题30天打卡-day09

面试题30天打卡-day09

1、一条 SQL 语句在 MySQL 中的执行过程是怎样的?

面试题30天打卡-day09

  1. client 根据SQL语法,定义好SQL语句,向MySQL建立连接
  2. 连接器:client 首先要与 MySQL 建立连接,这就需要一个连接器,负责与 client 建立连接、权限验证、管理连接。
  3. 分析器:client 和 server 连接完成了,向 server 发送 sql 请求,连接器不会直接处理,会转给分析器,对这条 sql 进行词法分析,例如识别出来“select”关键字,知道这是一个查询语句,识别出表明、字段名等,词法分析之后就是语法分析,判断是否满足 mysql 语法。
  4. 优化器:经过了分析器,MySQL就知道该怎么做,执行怎么样的sql操作(CRUD)。
  5. 执行器:通过前面的分析器、优化器,MySQL在执行器这里就知道该怎么具体的执行SQL。
    • 基本逻辑:调用存储引擎“取满足条件的第一行”这个接口,然后循环取“满足条件的下一行”这个接口,将所有满足条件的行组成结果集返还给客户端。

2、什么是 IOC,简单讲一下 Spring IOC 的实现机制

IOC(Inversion of Control,控制反转)是一种编程思想,它的核心思想是将对象的创建和依赖关系的管理交给容器来完成,从而实现解耦合和灵活性。它通过配置文件或注解的方式,将对象之间的依赖关系描述出来,并由容器负责对象的创建、管理和调用。

Spring IOC 的实现机制主要包括以下几个步骤:

  1. 配置文件加载(定义Bean):Spring IOC 首先从配置文件中读取对象的定义和依赖关系,通常使用 XML 或者注解的方式进行配置。
  2. 创建Bean工厂
  3. 对象实例化(创建Bean实例):Spring IOC 根据配置文件中的定义,通过反射机制创建对象的实例,并将其保存在容器中。
  4. 依赖注入:Spring IOC 根据配置文件中的依赖关系,将对象之间的依赖关系进行注入。具体的方式包括构造器注入、Setter 方法注入和字段注入等。
  5. 提供bean

Spring IOC 实现了对象的解耦合和依赖关系的管理,通过容器的方式实现了对象的统一管理和调用,提高了应用程序的灵活性和可维护性。同时,Spring IOC 还支持 AOP 等高级特性,使得应用程序的开发更加方便和高效。

3、并发和并行有什么区别?同步和异步有什么区别?

并发(Concurrency)是指多个任务交替执行,以达到快速响应用户请求的目的。在一个单 CPU 系统中,任务并不是真正同时执行的,而是通过操作系统的时间片分配机制交替执行的。在一个多 CPU 或者分布式系统中,可以通过真正的同时执行来提高系统的并发处理能力。

并行(Parallelism)是指同时执行多个任务,不同于并发的是,它是在多个处理器上进行的真正并行执行。在并行计算中,多个任务可以同时执行,相互独立,各自处理自己的数据。

同步(Synchronous)是指在发起一个操作后,必须等待操作的结果才能进行下一步操作。在同步模式下,发送请求的一方会一直等待对方的响应,直到收到响应后才能进行下一步操作。

异步(Asynchronous)是指在发起一个操作后,不需要等待操作的结果就可以进行下一步操作。在异步模式下,发送请求的一方不会阻塞等待响应,而是继续执行下一步操作,当响应返回后再进行相应的处理。

在编程中,同步和异步通常涉及到多线程或者多进程的并发处理。同步模式通常使用阻塞机制实现,而异步模式通常使用回调函数或者事件驱动机制实现。

。同步模式通常使用阻塞机制实现,而异步模式通常使用回调函数或者事件驱动机制实现。