自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 浅谈AI技术以及他的发展方向

总的来说,生成式AI的未来发展方向将在对话系统和自主代理之间找到平衡,并逐步实现这两个领域的融合与提升。:未来的生成式AI可能会将对话系统和自主代理的优势结合起来,形成更智能、更全面的服务。生成式AI的未来发展方向确实是一个值得深入探讨的问题,特别是在对话系统(Chat)和自主代理(Agent)这两个领域之间的应用和潜力。:随着技术的进步,生成式AI可能会在理解上下文、处理复杂任务、保证安全性等方面取得突破,从而提升其在实际应用中的效果和效率。

2024-07-30 11:37:39 387 1

原创 深入分析程序员面试中的“八股文”到底起到了哪几个方面你的作用 有没有真正的实际作用

八股文”这一术语在程序员面试中通常指的是那些形式化、套路化的回答或题目,这些内容可能并没有真正反映出应聘者的实际能力或解决问题的实际水平。这种现象在技术面试中较为常见,其中包括一些标准的算法题、数据结构题、设计模式题等。

2024-07-30 11:32:18 651

原创 There are test failures.

如果你的项目使用CI/CD管道,确保在提交代码时自动运行测试。:根据测试失败的具体原因,修改代码以解决问题。这可能涉及到修复逻辑错误、调整测试用例、修复依赖项或测试环境的问题等。:根据错误信息,理解测试失败的具体原因。可能的原因包括代码逻辑错误、依赖项问题、测试数据问题等。:检查你的测试代码,确保它们覆盖了正确的场景,并且没有逻辑错误。:测试失败通常会提供详细的错误信息和堆栈跟踪。:如果测试涉及到被测代码,确保被测代码的实现符合预期逻辑。:在修改后,重新运行测试以确保问题已经解决。

2024-07-03 09:23:56 318

原创 java定时器

然后再在你的那个controller加上@Scheduled(cron = "0 0 2 * *?") // 每天午夜执行。这个注解用于启用 Spring 的调度任务功能,使得。在启动类(Spring Boot 应用的主类)上,需要添加。是 Spring Boot 应用的入口点,而。注解可以按照指定的时间表执行定时任务。则启用了调度任务的支持,使得。

2024-06-25 09:58:35 347

原创 Required request body is missing: public com.ruoyi.common.core.domain.AjaxResult com.ruoyi

错误消息 “Required request body is missing” 表明您的Spring应用中,一个控制器方法期望接收请求体(JSON或XML数据),但实际请求中没有提供或者请求体为空。通过以上步骤,您应该能够解决 “Required request body is missing” 的错误,并确保您的控制器方法能够正确接收并处理请求体中的数据。双重检查控制器中的URL路径和方法映射。确保前端或其他调用方发送的请求路径和方法类型(POST)与您的控制器方法注解一致。

2024-06-25 09:54:04 2563

原创 annot convert string ‘0‘ to java.sql.Timestamp value

如果你的时间戳字符串是以"0"表示空值或缺失值,那么你需要在转换之前进行逻辑判断,并决定在这种情况下应该采取什么行动,例如使用null来表示空值。通过检查这些问题并进行相应的修正,你应该能够解决将字符串’0’转换为java.sql.Timestamp值时出现的问题。检查你的代码,确保在尝试进行转换之前,你已经对时间戳字符串进行了有效性检查,以避免将不合法的字符串传递给转换函数。确保你的代码中没有对非时间戳字符串进行误用,以避免将不符合格式要求的字符串传递给时间戳转换函数。

2024-05-08 11:54:50 674

原创 Vue_Element深入学习

前后台混合开发和前后台分离开发。前后台混合开发,顾名思义就是前台后台代码混在一起开发,如下图所示:这种开发模式有如下缺点:沟通成本高:后台人员发现前端有问题,需要找前端人员修改,前端修改成功,再交给后台人员使用分工不明确:后台开发人员需要开发后台代码,也需要开发部分前端代码。很难培养专业人才不便管理:所有的代码都在一个工程中不便维护和扩展:前端代码更新,和后台无关,但是需要整个工程包括后台一起重新打包部署。

2024-05-06 14:27:52 1081

原创 SpingBoot原理篇 :深入学习springboot原理,主要偏向于底层原理

SpringBoot的自动配置就是当Spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。比如:我们要进行事务管理、要进行AOP程序的开发,此时就不需要我们再去手动的声明这些bean对象了,我们直接使用就可以从而大大的简化程序的开发,省去了繁琐的配置操作。下面我们打开idea,一起来看下自动配置的效果:运行SpringBoot启动类。

2024-04-29 13:56:46 1173

原创 SpringCloud高级篇(超详细)

SpringCloud是目前国内使用最广泛的微服务框架。。SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。其中常见的组件包括:学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。SpringCloud基于SpringBoot在某一次的服务调用关系中,会有两个不同的角色:#必须针对某一个具体的业务(订单查询),才能谈角色服务提供者:一次业务中,被其它微服务调用的服务。

2024-04-28 12:00:13 903

原创 深入解析MyBatisPlus 一篇直接让你学会MyBatisPlus

MyBatisPlus环境搭建的步骤?BaseMapper注意:BaseMapper后边必须指定泛型User,以此来确定操作的表MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率https这个统计SQL在企业开发中,一般会使用MyBatis在xml中编写sql//统计//分组//查询总记录数在模型类属性上方,使用注解,通过==exist==属性,设置属性在数据库表字段中是否存在,默认为true。此属性无法与value合并使用。

2024-04-28 10:13:51 1023

原创 Redis高级篇详细讲解

Redis主从Redis哨兵Redis分片集群【运维】

2024-04-26 11:43:07 1358 3

原创 MQ 详细操作高级篇 让你从不懂到熟练使用

每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目启动过程中配置作用:如果消息没有到达队列,会执行回调方法@Slf4j//ApplicationContextAware: 在Spring容器(Bean工厂)创建好的时候,通知咱们@Override// 获取RabbitTemplate// 设置ReturnCallback,先用匿名内部类// 投递失败(没有到达队列),记录日志。

2024-04-26 11:21:10 2869

原创 SpringBootWeb AOP从基础到深入讲解 看完这篇让你受用整个代码人生

我们接着继续学习@Transactional注解当中的第二个属性propagation,这个属性是用来配置事务的传播行为的。什么是事务的传播行为呢?就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。例如:两个事务方法,一个A方法,一个B方法。在这两个方法上都添加了@Transactional注解,就代表这两个方法都具有事务,而在A方法当中又去调用了B方法。

2024-04-25 17:04:15 1106

原创 Maven高级篇:Maven从基础到高级 (超详细讲解)耐心 看完这篇直接从小白到深层次理解

所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆分成多个模块进行开发。1). 未分模块设计的问题如果项目不分模块,也就意味着所有的业务代码是不是都写在这一个 Java 项目当中。随着这个项目的业务扩张,项目当中的业务功能可能会越来越多。假如我们开发的是一个大型的电商项目,里面可能就包括了商品模块的功能、搜索模块的功能、购物车模块、订单模块、用户中心等等。这些所有的业务代码我们都在一个 Java 项目当中编写。

2024-04-25 10:23:35 1231

原创 Java面试必问题53:(部署必学篇)Nginx作用 && Linux的常用命令 && Jenkins自动部署原理

Jenkins 通过提供一个可定制的、持续集成和交付的自动化流程,结合不同的插件和工具,实现了 Java 项目的自动化部署。nohup java -jar myapp.jar &(在后台执行名为"myapp.jar"的Spring Boot JAR文件)tail -n 10 file.txt(显示名为"file.txt"的文件的最后10行内容):将多个请求均匀的分配到多台服务器上,减轻每台服务器的压力,提高 服务的吞吐量。cat file.txt(显示名为"file.txt"的文件的内容)

2024-04-24 08:44:21 554

原创 Java面试必问题52:(高级面试篇)MongoDB的详细解释以及他的用法以及他跟Redis的区别以及优势

最简回答:MongoDB比MySQL快的原因在于它使用内存映射技术提高数据访问速度、支持多类型索引优化查询、具备分布式存储和查询能力,并且不需要复杂的关系模型,适用于大规模数据处理和非结构化数据存储的场景。最简回答:MongoDB的使用能够带来非结构化数据存储、高可扩展性和性能、灵活的开发过程、高可用性和容错性、强大查询功能以及活跃的社区支持和生态系统,适用于许多大规模数据处理和非结构化数据存储的应用场景。相比于关系型数据库,MongoDB不需要事先定义数据结构和关系模型,可以更加灵活地存储和查询数据。

2024-04-24 08:40:50 650

原创 Java面试必问题51:Seata分布式事务框架使用(高级理解)

二阶段是提交确认/回滚阶段,TC向所有参与者发送事务提交请求,参与者根据Undo Log进行事务提交,并向TC发送提交完成通知。最后,TC根据参与者的提交完成通知,发送最终的全局提交或回滚指令,参与者执行最终操作完成事务的提交或回滚。AT模式:效率较高、回滚机制通过发送回滚请求和Undo Log实现、通过两阶段提交协议实现最终一致性,一阶段提交请求阶段收集执行结果和Undo Log,二阶段提交确认/回滚阶段执行最终操作。在二阶段,参与者根据Undo Log进行提交或回滚操作,效率较高。

2024-04-23 13:58:01 522

原创 Java面试必问题50:ElasticSearch倒排索引详解

最简回答:ElasticSearch 的倒排索引是一种将词条和文档ID之间的对应关系反转存储的结构,通过快速定位包含特定词条的文档来提高搜索效率。综上所述,Elasticsearch的倒排索引通过存储词项和文档ID的对应关系以及使用紧凑的数据结构和内存缓存,实现了高效的搜索效率。倒排索引通过将文档ID与词项的对应关系反转,实现了从词项到文档的映射,从而方便快速定位包含特定词项的文档。Elasticsearch的倒排索引是一种高效的数据结构,存储了词条(term)和文档ID之间的对应关系。

2024-04-23 13:56:49 344 1

原创 Java面试必问题49:Xxl-Job原理分析 && 详细使用步骤以及为什么不使用SpringTask

相比于springTask,xxl-job具有更强的分布式支持和可扩展性,适用于复杂的分布式系统和大规模任务管理场景,而springTask更适用于简单的任务调度和单机环境。最简回答:xxl-job集成到Spring Boot工程中的使用步骤包括:添加xxl-job的依赖到构建文件中、配置xxl-job的参数,如调度中心地址和执行器名称,创建执行器类并注册为Spring的Bean,编写定时任务类并在项目启动时初始化任务调度器。xxl-job提供了一个简洁易用的任务管理界面,可以方便地配置和监控任务。

2024-04-22 09:44:53 1001

原创 Java面试必问题48:(高级篇) RabbitMQ功能&&作用 以及他的详细使用方式

2. 消息去重:消费者应用程序在处理消息之前,可以在自己的系统中维护一个消息记录表,记录已经处理过的消息的唯一标识符。在接收到新消息时,先检查该消息是否已经处理过,如果已经处理过,则忽略重复消息。手动消息确认(Manual Message Acknowledgement):消费者在处理完消息后,发送确认回执给RabbitMQ,告知消息已被成功处理,RabbitMQ可以删除该消息。通过组合使用以上的措施,可以实现全方位的消息可靠性保证,减少消息丢失和处理错误的风险,并确保消息系统的高可用性和稳定性。

2024-04-22 09:41:08 1230 3

原创 Java面试必问题47:Gateway的路由断言工厂深入解析

在网关的路由配置里只需要在-Path中配置/user/**,那么以user开头的请求就会被网关处理,这是如何实现的呢?事实上,Gateway中有很多的路由断言工厂,当我们在配置文件中对断言进行配置后,这些配置就会被路由断言工厂进行解析并处理,而-Path配置就是由org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory来处理的。

2024-04-20 11:34:14 400 2

原创 Java面试必问题46:Gateway详解以及使用方法

最简回答:Gateway网关是一种API网关,具有路由、负载均衡、安全认证、限流熔断等特性,用于统一管理和分发请求,提高系统的可用性、安全性和可扩展性。网关可以根据请求的路由规则将请求转发到不同的服务实例,并提供过滤器机制来实现请求的加解密、鉴权、限流等功能。Gateway可以对请求进行监控和统计,记录请求的响应时间、流量等指标,方便分析系统性能和问题排查。6. 监控和统计:可以通过与监控工具集成,对Gateway的请求进行监控和统计,获取系统的性能指标。

2024-04-20 11:32:43 792

原创 Java面试必问题45:Hystrix的具体使用以及使用方法

总而言之,Hystrix的熔断机制通过监控服务请求的错误率,当错误率超过阈值时,快速切换到备用逻辑,避免了对失败服务的不必要请求,提高了系统的稳定性和可靠性。而Hystrix的熔断机制能够避免这种情况的发生,减少了对失败服务的依赖,提高了系统的稳定性。Hystrix是一个用于实现服务容错和熔断的库,在分布式系统中起到了保护系统免受服务故障的影响的作用。- 提高系统稳定性:通过熔断机制,当某个服务出现故障或不可用时,可以快速切换到备用的降级逻辑,保护整个系统免受服务故障的影响。

2024-04-19 09:07:06 379

原创 Java面试必问题44:谈谈Feign的工作原理

最简回答:Feign是一个声明式的Web服务客户端,通过定义Java接口来描述服务间的通信协议,包括URL、请求方法、请求参数等。当调用代理对象的方法时,Feign会根据方法的注解和参数生成HTTP请求,并发送给目标服务。总结起来,Feign的工作原理就是根据接口定义生成代理对象,通过代理对象发送HTTP请求给目标服务,并将响应解析为Java对象返回给调用者。当调用代理对象的方法时,Feign会根据方法的注解和参数生成HTTP请求,并发送给目标服务。目标服务处理完请求后,将响应返回给Feign客户端。

2024-04-19 09:05:32 455

原创 Java面试必问题43:Nacos作为注册中心的工作原理 && Nacos和Eureka的区别

最简回答:Nacos注册中心是一个服务注册与发现的工具,它提供了服务提供者将服务注册到注册中心,并让服务消费者从注册中心获取服务实例的能力。最简回答:Nacos和Eureka都是服务注册与发现组件,但Nacos比Eureka功能更丰富,除了服务注册与发现外,还提供了配置管理和服务治理功能。通过临时实例和心跳检查等机制,Nacos注册中心能够动态管理服务实例,自动剔除失去连接或不健康的实例,确保服务的可靠性和稳定性。注册中心根据服务名从存储的服务实例信息中找到对应的实例列表,并返回给服务调用者。

2024-04-18 10:24:28 728

原创 Java面试必问题42:Eureka工作原理

它通过服务注册,在启动时将服务实例信息注册到Eureka注册中心;通过服务发现,让消费者能够从注册中心获取可用的服务列表;总结起来,Eureka通过服务注册、心跳检测与续约、服务发现、负载均衡和容错处理等步骤来实现服务注册与发现的功能。服务消费者从Eureka注册中心获取注册的服务列表,并缓存在本地。它可以根据服务名称找到可用的服务实例。服务提供者在启动时,将自己的服务实例信息(包括名称、IP地址、端口号等)注册到Eureka注册中心。服务消费者使用负载均衡算法从本地的服务列表中选择一个服务实例进行调用。

2024-04-18 10:22:20 297

原创 Java面试必问题41:SpringCloud五大组件是哪几个 && SpringCloud 和 SpringBoot 的区别和关系

Spring Cloud 是关注全局的微服务协调整理治理框架以及一整套的落地解决方案,它 将 Spring Boot 开发的 一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理,服务发现,断路器,路由,微代理,事件总线等的集成服务。这五个组件是Spring Cloud中常用的核心组件,它们提供了一系列功能来简化构建分布式系统的工作,实现了服务注册与发现、负载均衡、服务调用、熔断和容错、网关等关键功能,极大地提高了分布式系统的可靠性和可用性。SpringCloud五大组件是哪几个。

2024-04-17 14:12:46 777

原创 Java面试必问题40:SpringBoot启动时都做了什么 && SpringBoot的核心注解是哪个?由哪些注解组成?

最简回答:Spring Boot启动时会加载配置文件(如application.properties)并扫描自动配置类(通过`spring.factories`),根据条件判断(如`@ConditionalOnClass`、`@ConditionalOnProperty`)自动配置各个组件,将它们注册到Spring容器中。最后,启动应用程序,处理请求,响应用户。根据`spring.factories`中配置的自动配置类路径,Spring Boot会扫描这些自动配置类,并将它们实例化。

2024-04-17 14:10:50 311

原创 Java面试必问题39:SpringBoot自动配置原理(必问)&& SpringBoot(优点)

它通过扫描类路径下的依赖、配置文件和注解等信息,结合Spring Boot提供的自动配置类和条件注解,根据条件判断自动配置哪些组件,然后将它们注入到Spring容器中。使用Spring Boot可以简化编码、简化配置、简化部署、简化监控、简化依赖坐标导入、简化整合其他技术,并提供强大的微服务支持,减少开发人员在搭建和配置项目上的工作量,使开发者能够更专注于业务逻辑的实现,快速构建可靠的、可扩展的应用程序。开发者可以通过自定义配置文件或者注解,覆盖或修改自动配置的行为,实现个性化的配置和扩展。

2024-04-16 08:55:38 535

原创 Java面试必问题38:SpringMVC执行流程(工作原理)(一般必问)&& SpringMVC的常用注解

View(视图):是程序呈现给用户的部分,是用户和程序交互的接口,用户会根据具体的业务需求,在 View 视图层输入自己特定的业务数据,并通过界面的事件交互,将对应的输入参数提交给后台控制器进行处理。Model(模型):是程序的主体部分,主要包含业务数据和业务逻辑。在模型层,还会涉及到用户发布的服务,在服务中会根据不同的业务需求,更新业务模型中的数据。5.处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View 是逻辑上的View。

2024-04-16 08:51:21 421

原创 Java面试必问题37: Spring的常用注解 && Resources和@Autowired 的区别

Resource默认通过byName的方式实现,如果找不到名字,则通过byType实现!@Autowired通过byType的方式实现,而且必须要求这个对象存在!@Autowired:用于有值设值方法、非设值方法、构造方法和变量。@Repository:用于注册dao层的bean。@Controller:用于注册控制层的bean。@Component:用于注册所有bean。@Service:用于注册服务层的bean。都是用来自动装配的,都可以放在属性的字段上。@Value: 简单属性的依赖注入。

2024-04-15 09:16:29 326

原创 Java面试必问题36:Bean的几种注入方式 && Spring里AOP是什么以及他的应用场景

Spring AOP是基于动态代理的,如果要代理的对象实现了某个接口,那么Spring AOP就会使 用JDK动态代理去创建代理对象;最简回答:在Spring中,AOP (Aspect-Oriented Programming,面向切面编程) 是一种编程范式,通过在不修改原有代码的情况下,将横切关注点(如事务管理、日志记录等)从核心业务逻辑中解耦出来,并在需要的地方进行统一的切面逻辑处理。构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。

2024-04-15 09:12:41 412

原创 Java面试必问题35:对于Spring里IOC深入解释如果回答 (本人理解为)

IOC容器就像是一个工厂一 样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是 如何被创建出来的。IOC 容器是Spring用来实现IOC的载体,IOC容器实际上就是一个Map(key, value),Map中存放 的是各种对象。最简回答:在Spring中,IOC (Inversion of Control,控制反转) 是一种设计模式,通过它,对象的创建和依赖关系的管理被交由容器负责,从而实现对象之间的解耦和灵活性的提升。简单说,就是由容器来控制对象的生命周期和依赖关系。

2024-04-12 15:47:41 575

原创 Java面试必问题34:ResultType 和 ResultMap 的区别 && MyBatisPlus的常用注解

如果数据库结果集中的列名和要封装实体的属性名有不一致的情况用 resultMap 属 性,通过 resultMap 手动建立对象关系映射,resultMap 要配置一下表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来。该注解可以在实体类的字段上添加,表示该字段作为乐观锁的版本字段。:用于指定实体类的字段对应的数据库表的字段名。该注解可以在实体类的字段上添加,表示该字段映射到指定的数据库表字段。该注解可以在实体类的字段上添加,表示该字段作为数据库表的主键。

2024-04-12 15:45:31 606

原创 Java面试必问题33:MyBatis里#和{}区别&&MyBatis动态SQL

最简回答:在MyBatis中,# 用于参数的替换,并会进行预编译处理,以防止SQL注入,而 {} 则直接将参数值替换进SQL语句,性能较好但需注意SQL注入问题。- `#`符号适用于动态SQL值,如动态拼接表名、列名、排序方式等,这些值可能需要进行预处理转义以确保正确形成SQL语句。- `{}`符号在替换时不会进行预编译处理,替换后的参数直接拼接到SQL语句中,潜在地存在SQL注入的风险。- `#`符号在替换时会自动进行预编译处理,可以防止SQL注入攻击,并确保查询参数的类型正确匹配。

2024-04-11 09:45:47 339

原创 Java面试必问题32:Redis篇(重点) Redisson是什么,怎么用以及Redisson的看门狗机制原理解析

一旦锁的续期失败,即续期任务运行失败或锁的标识不匹配,Redisson会立即释放该锁,以避免业务不再持有锁而导致的问题。例如,使用Redisson的分布式锁,可以注入RedissonClient对象后调用getLock方法来获取锁对象,然后使用lock方法加锁,并在需要时执行相应的操作,最后使用unlock方法释放锁。总结来说,Redisson的看门狗机制通过定时续期锁的过期时间,保证在业务执行期间锁不会被自动释放,解决了在分布式环境下使用分布式锁时锁过期的问题,提高了锁的可靠性和使用效果。

2024-04-11 09:00:57 652

原创 Java面试必问题31:Redis必问篇

分片集群由多个节点组成,根据Key经过哈希算法映射到不同的节点上,每个节点负责存储和处理一部分数据,工作原理是通过一致性哈希算法将数据按照一定规则分配到不同的节点上,实现数据的均衡存储和查询。哨兵集群由多个哨兵节点组成,工作原理是哨兵节点通过相互通信,监测主节点的健康状态,当主节点失效时,选举新的主节点,并通知其他从节点进行切换,确保系统的可用性。每个节点负责管理一部分槽和相应的数据。当主节点失效或不可用时,哨兵可以自动检测到故障,并根据预先配置的策略进行主节点切换,将一个可用的从节点提升为新的主节点。

2024-04-10 11:59:51 534

原创 Java面试必问题30:Redis篇(重点必问)

AOF是追加日志持久化方式,将每个写操作以追加的方式记录到日志文件中,确保了更高的数据完整性和持久性,但相对于RDB消耗更多的磁盘空间和写入性能,适用于数据持久化和灾难恢复,且可以通过配置实现不同的同步频率。(单线程,省去线程切换、锁竞争的开销)采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;如果你的业务场景既要兼顾性能,又注重数据完整性,那么可以采用混合持久化的方式。

2024-04-10 10:34:18 577

原创 Java面试必问题29:MySQL篇(重点必问)

最简回答:数据库事务隔离级别是指在多个并发事务同时执行时,各个事务之间的隔离程度,常见的隔离级别有读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。在B+树索引中,每个节点的大小是固定的,与磁盘页的大小相当。B+树的叶子节点之间使用链表连接,并且叶子节点的关键字是有序的,因此对于范围查询操作,可以通过顺序扫描叶子节点来获取有序的数据结果,提高查询速度。事务隔离级别越严格,数据库效率越低。

2024-04-09 09:23:52 1007

原创 Java面试必问题28:设计模式篇

Mybatis实现的核心,比如MapperProxy、ConnectionLogger,用的jdk的动态代理;还有executor.loader包使用了cglib或者javassist达到延迟加载的效果;Spring使用工厂模式通过BeanFactory和ApplicationContext创建bean对 象。Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;,例如ErrorContext和LogFactory;Spring中的bean默认都是单例的。

2024-04-09 09:10:45 641

Animal.java

Animal.java

2023-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除