![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
千题千解·Java面试宝典
文章平均质量分 92
Spring Boot篇
时光の尘
这个作者很懒,什么都没留下…
展开
-
互联网Java工程师面试题·RabbitMQ篇
采用 AMQP 高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦。原创 2023-12-08 05:00:00 · 1781 阅读 · 0 评论 -
互联网Java工程师面试题·Spring Cloud篇
Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。Hystrix 是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的故障时,停止级联故障并在复杂的分布式系统中实现弹性。通常对于使用微服务架构开发的系统,涉及到许多微服务。这些微服务彼此协作。思考以下微服务。原创 2023-12-07 07:00:00 · 953 阅读 · 2 评论 -
互联网Java工程师面试题·Spring Boot篇·第二弹
YAML 是一种人类可读的数据序列化语言。它通常用于配置文件。与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML 文件就更加结构化,而且更少混淆。可以看出 YAML 具有分层配置数据。Swagger 广泛用于可视化 API,使用 Swagger UI 为前端开发人员提供在线沙箱。Swagger 是用于生成 RESTful Web 服务的可视化表示的工具,规范和完整框架实现。它使文档能够以与服务器相同的速度更新。原创 2023-12-05 07:00:00 · 920 阅读 · 4 评论 -
互联网Java工程师面试题·Spring Boot篇·第一弹
多年来,随着新功能的增加,spring 变得越来越复杂。只需访问https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot 是解决这个问题的方法。原创 2023-12-05 05:00:00 · 988 阅读 · 0 评论 -
互联网Java工程师面试题·微服务篇·第三弹
端到端测试验证了工作流中的每个流程都正常运行。这可确保系统作为一个整体协同工作并满足所有要求。通俗地说,你可以说端到端测试是一种测试,在特定时期后测试所有东西。图 14:测试层次 – 微服务面试问题DRY 代表不要重复自己。它基本上促进了重用代码的概念。这导致开发和共享库,这反过来导致紧密耦合。这基本上是用于开发微服务的模式,以便它们可以被外部系统使用。当我们处理微服务时,有一个特定的提供者构建它,并且有一个或多个使用微服务的消费者。通常,提供程序在 XML 文档中指定接口。原创 2023-11-14 07:00:00 · 453 阅读 · 0 评论 -
互联网Java工程师面试题·微服务篇·第二弹
Spring Boot 执行程序提供了 restful Web 服务,以访问生产环境中运行应用程序的当前状态。在执行器的帮助下,您可以检查各种指标并监控您的应用程序。根据 Spring Cloud 的官方网站,Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,领导选举,分布式会话,集群状态)。在使用微服务时,由于有多个微服务协同工作,测试变得非常复杂。因此,测试分为不同的级别。在底层,我们有面向技术的测试,如单元测试和性能测试。原创 2023-11-14 04:00:00 · 463 阅读 · 0 评论 -
互联网Java工程师面试题·微服务篇·第一弹
图 8: DDD 原理 – 微服务面试问题如果您必须定义泛在语言(UL),那么它是特定域的开发人员和用户使用的通用语言,通过该语言可以轻松解释域。无处不在的语言必须非常清晰,以便它将所有团队成员放在同一页面上,并以机器可以理解的方式进行翻译。模块内部元素所属的程度被认为是凝聚力。组件之间依赖关系强度的度量被认为是耦合。一个好的设计总是被认为具有高内聚力和低耦合性。原创 2023-11-13 18:00:00 · 693 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第七弹
基于 Java 的配置,允许你在少量的 Java 注解的帮助下,进行你的大部分 Spring配置而非通过 XML 文件。以Configuration 注解为例,它用来标记类可以当做一个 bean 的定义,被Spring IOC 容器使用。另一个例子是@Bean 注解,它表示此方法将要返回一个对象,作为一个 bean 注册进 Spring 应用上下文。相对于 XML 文件,注解型的配置依赖于通过字节码元数据装配组件,而非尖括号的声明。原创 2023-11-08 05:00:00 · 555 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第六弹
Spring beans 是那些形成 Spring 应用的主干的 java 对象。它们被 Spring IOC容器初始化,装配,和管理。这些 beans 通过容器中配置的元数据创建。比如,以 XML 文件中 的形式定义。Spring 框架定义的 beans 都是单件 beans。在 bean tag 中有个属性”singleton”,如果它被赋为 TRUE,bean 就是单件,否则就是一个 prototype bean。默认是 TRUE,所以所有在 Spring 框架中的 beans 缺省都是单件。原创 2023-11-08 04:00:00 · 308 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第五弹
Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期。依赖注入,是 IOC 的一个方面,是个通常的概念,它有多种解释。这概念是说你不用创建对象,而只需要描述它如何被创建。原创 2023-10-26 03:00:00 · 338 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第四弹
AOP(Aspect-Oriented Programming), 即 面向切面编程, 它与OOP( Object-Oriented Programming, 面向对象编程) 相辅相成, 提供了与OOP 不同的抽象软件结构的视角. 在 OOP 中, 我们以类(class)作为我们的基本单元, 而 AOP 中的基本单元是 Aspect(切面)原创 2023-10-25 06:00:00 · 517 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第三弹
不使用 XML 来描述 bean 装配,开发人员通过在相关的类,方法或字段声明上使用注解将配置移动到组件类本身。它可以作为 XML 设置的替代方案。例如:Spring 的 Java 配置是通过使用 Bean 和 Configuration 来实现。Bean 注解扮演与 元素相同的角色。Configuration 类允许通过简单地调用同一个类中的其他 Bean 方法来定义 bean 间依赖关系。@Bean。原创 2023-10-25 04:00:00 · 451 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第二弹
(1)它们是构成用户应用程序主干的对象。(2)Bean 由 Spring IoC 容器管理。(3)它们由 Spring IoC 容器实例化,配置,装配和管理。(4)Bean 是基于用户提供给容器的配置元数据创建。只有将 bean 用作另一个 bean 的属性时,才能将 bean 声明为内部 bean。为了定义 bean,Spring 的基于 XML 的配置元数据在 或 中提供了 元素的使用。原创 2023-10-24 05:00:00 · 564 阅读 · 0 评论 -
互联网Java工程师面试题·Spring篇·第一弹
Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。Spring 配置文件是 XML 文件。该文件主要包含类信息。它描述了这些类是如何配置以及相互引入的。但是,XML 配置文件冗长且更加干净。如果没有正确规划和编写,那么在大项目中管理变得非常困难。原创 2023-10-24 04:00:00 · 327 阅读 · 0 评论 -
互联网Java工程师面试题·Java 面试篇·第五弹
模板方法提供算法的框架,你可以自己去配置或定义步骤。例如,你可以将排序算法看做是一个模板。它定义了排序的步骤,但是具体的比较,可以使用Comparable 或者其语言中类似东西,具体策略由你去配置。列出算法概要的方法就是众所周知的模板方法。原创 2023-10-23 05:00:00 · 417 阅读 · 0 评论 -
互联网Java工程师面试题·Java 面试篇·第四弹
控制反转(IOC)是 Spring 框架的核心思想,用我自己的话说,就是你要做一件事,别自己可劲 new 了,你就说你要干啥,然后外包出去就好~依赖注入(DI) 在我浅薄的想法中,就是通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~原创 2023-10-23 03:00:00 · 450 阅读 · 0 评论 -
互联网Java工程师面试题·Java 面试篇·第三弹
这种方式存在的一个问题是你使用了一个内部的或第三方库中的公有编译时常量,但是这个值后面被其他人改变了,但是你的客户端仍然在使用老的值,甚至你已经部署了一个新的 jar。如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,所以通常需要重写该方法来提供逻辑一致性的比较。例如,String 类重写 equals() 方法,所以可以用于两个不同对象,但是包含的字母相同的比较。原创 2023-10-22 05:00:00 · 350 阅读 · 0 评论 -
互联网Java工程师面试题·Java 面试篇·第二弹
不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如 String、Integer 及其它包装类。详情参见答案,一步一步指导你在 Java中创建一个不可变的类。原创 2023-10-22 03:00:00 · 265 阅读 · 0 评论 -
互联网Java工程师面试题·Java 面试篇·第一弹
伪共享是多线程系统(每个处理器有自己的局部缓存)中一个众所周知的性能问题。伪共享发生在不同处理器的上的线程对变量的修改依赖于相同的缓存行,伪共享问题很难被发现,因为线程可能访问完全不同的全局变量,内存中却碰巧在很相近的位置上。如其他诸多的并发问题,避免伪共享的最基本方式是仔细审查代码,根据缓存行来调整你的数据结构。Busy spin 是一种在不释放 CPU 的基础上等待事件的技术。它经常用于避免丢失 CPU 缓存中的数据(如果线程先暂停,之后在其他 CPU 上运行就会丢失)。原创 2023-10-21 06:00:00 · 1353 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第十一弹
UML 是统一建模语言(Unified Modeling Language)的缩写,它发表于 1997年,综合了当时已经存在的面向对象的建模语言、方法和过程,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。使用 UML 可以帮助沟通与交流,辅助应用设计和文档的生成,还能够阐释系统的结构和行为。原创 2023-10-21 04:00:00 · 526 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第十弹
一个类只做它该做的事情。另一个是模块化,好的自行车是组装车,从减震叉、刹车到变速器,所有的部件都是可以拆卸和重新组装的,好的乒乓球拍也不是成品拍,一定是底板和胶皮可以拆分和自行组装的,一个好的软件系统,它里面的每个功能模块也应该是可以轻易的拿到其他系统中使用的,这样才能实现软件复用的目标。说明:计算机诞生初期处理的信息几乎都是数值,但是时过境迁,今天我们使用计算机处理的信息更多的时候不是数值而是字符串,正则表达式就是在进行字符串匹配和处理的时候最为强大的工具,绝大多数语言都提供了对正则表达式的支持。原创 2023-10-20 06:00:00 · 422 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第九弹
DAO(Data Access Object)顾名思义是一个为数据库或其他持久化机制提供了抽象接口的对象,在不暴露底层持久化方案实现细节的前提下提供了各种数据访问操作。在实际的开发中,应该将所有对数据源的访问操作进行抽象化后封装在一个公共 API 中。用程序设计语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口,在逻辑上该类对应一个特定的数据存储。原创 2023-10-20 05:00:00 · 514 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第八弹
XML 文档定义分为 DTD 和 Schema 两种形式,二者都是对 XML 语法的约束,其本质区别在于 Schema 本身也是一个 XML 文件,可以被 XML 解析器解析,而且可以为 XML 承载的数据定义类型,约束能力较之 DTD 更强大。原创 2023-10-19 05:00:00 · 830 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第七弹
要实现序列化,需要让一个类实现 Serializable 接口,该接口是一个标识性接口,标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过 writeObject(Object)方法就可以将实现对象写出(即保存其状态);序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆(可以参考第 29 题)。序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。原创 2023-10-19 04:00:00 · 943 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第六弹
在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在 Java 中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这就是”池化资源”技术产生的原因。线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。原创 2023-10-18 07:00:00 · 325 阅读 · 1 评论 -
互联网Java工程师面试题·Java 总结篇·第五弹
Vector 属于遗留容器(Java 早期的版本中提供的容器,除此之外,Hashtable、Dictionary、BitSet、Stack、Properties都是遗留容器),已经不推荐使用,但是由于 ArrayList 和 LinkedListed 都是非线程安全的,如果遇到多个线程操作同一个容器的场景,则可以通过工具类Collections 中的 synchronizedList 方法将其转换成线程安全的容器后再使用(这是对装潢模式的应用,将已有对象传入另一个类的构造器中创建新的对象来增强实现)。原创 2023-10-18 06:45:00 · 262 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第四弹
补充:上面列出的四点是网上流传的所谓的标准答案。而 JavaScript 是 Netscape 公司的产品,为了扩展 Netscape 浏览器的功能而开发的一种可以嵌入 Web 页面中运行的基于对象和事件驱动的解释性语言。补充:Java 的时间日期 API 一直以来都是被诟病的东西,为了解决这一问题,Java8 中引入了新的时间日期 API,其中包括 LocalDate、LocalTime、LocalDateTime、Clock、Instant 等类,这些的类的设计都使用了不变模式,因此是线程安全的设计。原创 2023-10-17 08:00:00 · 289 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第三弹
抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是 private、默认、protected、public 的,而接口中的成员全都是 public 的。抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。原创 2023-10-17 07:00:00 · 462 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第二弹
说明:Java 中没有传引用实在是非常的不方便,这一点在 Java 8 中仍然没有得到改进,正是如此在 Java 编写的代码中才会出现大量的 Wrapper 类(将需要通过方法调用修改的引用置于一个 Wrapper 类中,再将 Wrapper 对象传入方法),这样的做法只会让代码变得臃肿,尤其是让从 C 和 C++转型为 Java 程序员的开发者无法容忍。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的属性可以在被调用过程中被改变,但对对象引用的改变是不会影响到调用者的。原创 2023-10-16 14:27:12 · 195 阅读 · 0 评论 -
互联网Java工程师面试题·Java 总结篇·第一弹
如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当 A 系统访问 B 系统提供的服务时,B系统有多种提供服务的方式,但一切对 A 系统来说都是透明的(就像电动剃须刀是 A 系统,它的供电系统是 B 系统,B 系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A 系统只会通过 B 类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。Java 中,外部类的修饰符只能是 public 或默认,类的成员(包括内部类)的修饰符可以是以上四种。原创 2023-10-16 07:00:00 · 495 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第八弹
多线程的上下文切换是指 CPU 控制权由一个已经正在运行的线程切换到另外一个就绪并等待获取 CPU 执行权的线程的过程。线程调度器是一个操作系统服务,它负责为 Runnable 状态的线程分配 CPU 时间。一旦我们创建一个线程并启动它,它的执行便依赖于线程调度器的实现。时间分片是指将可用的 CPU 时间分配给可用的 Runnable 线程的过程。分配 CPU 时间可以基于线程优先级或者线程等待的时间。原创 2023-10-15 07:15:00 · 156 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第七弹
在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承 thread 类还是实现 runnable 接口,都无法保证获取到之前的执行结果。通过实现 Callback 接口,并用 Future 可以来接收多线程的执行结果。Future 表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback 以便在任务执行成功或失败后作出相应的操作。原创 2023-10-15 07:00:00 · 308 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第六弹
线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁的创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。java 提供了一个 java.util.concurrent.Executor 接口的实现用于创建线程池。CAS 是 compare and swap 的缩写,即我们所说的比较交换。cas 是一种基于锁的操作,而且是乐观锁。在 java 中锁分为乐观锁和悲观锁。原创 2023-10-14 07:15:00 · 75 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第五弹
创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从JDK1.5 开始,Java API 提供了 Executor 框架让你可以创建不同的线程池。阻塞式方法是指程序会一直等待该方法完成期间不做其他事情,ServerSocket 的accept()方法就是一直等待客户端连接。这里的阻塞是指调用结果返回之前,当前线程会被挂起,直到得到结果之后才会返回。原创 2023-10-14 07:00:00 · 1453 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第四弹
ThreadLocal 是 Java 里一种特殊的变量。每个线程都有一个 ThreadLocal 就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了。它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用 ThreadLocal 让SimpleDateFormat 变成线程安全的,因为那个类创建代价高昂且每次调用都需要创建不同的实例所以不值得在局部范围使用它,如果为每个线程提供一个自己独有的变量拷贝,将大大提高效率。首先,通过复用减少了代价高昂的对象的创建个数。原创 2023-10-13 16:04:05 · 314 阅读 · 1 评论 -
互联网Java工程师面试题·Java 并发编程篇·第三弹
26、什么是线程组,为什么在Java中不推荐使用?线程组和线程池是两个不同的概念,他们的作用完全不同,前者是为了方便线程的管理,后者是为了管理线程的生命周期,复用线程,减少创建销毁线程的开销。27、为什么使用Executor框架比使用应用创建和管理线程好?27.1 为什么要使用Executor线程池框架1、每次执行任务创建线程比较消耗性能,创建一个线程是比较耗时、耗资源的。2、调用。原创 2023-10-13 20:15:00 · 512 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第二弹
线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。虚拟机采用抢占式调度模型,是指优先让可运行池中优先级高的线程占用CPU,如果可运行池中的线程优先级相同,那么就随机选择一个线程,使其占用CPU。其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。原创 2023-10-10 06:45:00 · 69 阅读 · 0 评论 -
互联网Java工程师面试题·Java 并发编程篇·第一弹
1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User任何线程都可以设置为守护线程和用户线程,通过方法true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在 Thread.start()之前调用,否则运行时会抛出异常。两者的区别:唯一的区别是判断虚拟机(JVM)何时离开,Daemon是为其他线程提供服务,如果全部的 User Thread已经撤离,Daemon。原创 2023-10-10 07:00:00 · 81 阅读 · 0 评论 -
互联网Java工程师面试题·MySQL 篇·第二弹
要同时修改数据库中两个不同表时,如果它们不是一个事务的话,当第一个表修改完,可能第二个表修改过程中出现了异常而没能修改,此时就只有第二个表依旧是未修改之前的状态,而第一个表已经被修改完毕。左外连接:也称左连接,左表为主表,左表中的所有记录都会出现在结果集中, 对于那些在右表中并没有匹配的记录,仍然要显示,右边对应的那些字段值以 NULL 来填充。事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤销。原创 2023-10-09 07:00:00 · 84 阅读 · 0 评论 -
互联网Java工程师面试题·MySQL 篇·第一弹
1、MySQL中有哪几种锁?1表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。2行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。3页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。2MySQL中有哪些不同的表格?共有5种类型的表格:1MyISAM2Heap3Merge4INNODB5ISAM3、简述在MySQL数据库中。原创 2023-10-08 07:15:00 · 127 阅读 · 0 评论