- 博客(65)
- 收藏
- 关注
原创 解释一下什么是MVCC
在MVCC中,每个数据项都有多个版本。这样,不同的事务可以同时读取数据的不同版本,避免了在读取时需要加锁,从而减少了竞争和等待的时间。MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种用于数据库管理系统中的并发控制机制,它允许多个事务同时访问同一数据而不会相互干扰,从而提高系统的并发性能。:当一个事务读取数据时,系统会根据事务的时间戳或版本号,选择一个适当的版本返回给事务。:每当一个数据项被修改时,系统会生成一个新的版本,并将其与事务的时间戳或版本号关联。
2024-10-11 09:35:19 27
原创 Spring的事务传播机制
Spring的事务传播机制是指当一个方法调用另一个方法时,如何处理事务的行为。:如果当前存在事务,则在当前事务中嵌套一个事务;如果没有事务,则新建一个事务。(默认值):如果当前存在事务,则加入该事务;如果当前没有事务,则新建一个事务。:如果当前存在事务,则加入该事务;如果没有事务,则以非事务的方式执行。:如果当前存在事务,则加入该事务;:总是新建一个事务,如果当前存在事务,则将当前事务挂起。:以非事务的方式执行,如果当前存在事务,则抛出异常。:以非事务的方式执行,如果当前存在事务,则将其挂起。
2024-09-30 15:40:00 358
原创 Spring框架中的单例Bean是线程安全的么?
在Spring框架中,默认情况下,Bean的作用域是单例模式,因此框架没有对Bean进行多线程的封装处理。如果Bean 是有状态的,则需要开发人员自己确保线程安全。
2024-09-29 15:33:47 177
原创 BeanFactory和ApplicationContext有什么区别?
⑤载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层。ApplicationContext是BeanFactory的子接口。①继承MessageSource,因此支持国际化。③提供在监听器中注册bean的事件。②统一的资源文件访问方式。④同时加载多个配置文件。
2024-09-29 14:30:07 228
原创 AOP是什么
AOP(面向切面编程,Aspect-Oriented Programming)是一种编程范式,旨在通过将横切关注点(如日志记录、安全、事务管理等)从业务逻辑中分离出来,以增强程序的模块化程度。
2024-09-26 16:25:51 376
原创 Spring是什么
Spring是一个轻量级的开源的J2EE框架。它是一个容器框架,用来装javabean(java对象),中间层框架(万能胶)可以起一个连接作用,比如说把Struts和Hibernate粘合在一起运用,可以让我们的企业开发更快、更简活。
2024-09-26 13:55:04 280
原创 红黑树和B+树
红黑树适合需要频繁插入、删除和查找操作的场景,特别是在内存中运行时。B+树更适合用于大型数据库和文件系统,能够高效地处理大量数据,并且在磁盘和内存之间的I/O效率更高。
2024-09-24 16:30:22 871
原创 内存泄漏和内存溢出有什么区别
内存泄漏是指已分配的内存未被正确释放,导致可用内存逐渐减少;而内存溢出则是指程序尝试分配的内存超出了可用的内存限制。内存泄漏可能导致程序性能下降,但不一定立刻中断程序;而内存溢出通常会导致程序直接崩溃或抛出错误。
2024-09-24 16:09:58 312
原创 接口和抽象类的区别
接口的设计目的,是对类的行为进行约束(更准确的说是一种“有”约束,因为接口不能规定类不可以有 什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。而抽象类的设计目的,是代码复用。当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。在这个抽象类中实 现了B,避免让所有的子类来实现B,这就达到了代码复用的目的。而A减B的部分,留给各个子类自己 实现。
2024-09-20 11:24:32 483
原创 Redis的内存淘汰策略
Redis 作为一个内存数据库,提供了多种内存淘汰策略,以便在内存使用达到限制时管理数据的存储。内存淘汰策略决定了在 Redis 的内存达到限制时,应该清除哪些数据。
2024-09-19 14:31:11 573
原创 Array和ArrayList的区别
ArrayArray是一种固定大小的数据结构,用于存储多个相同类型的元素。创建数组时需要指定数组的大小,大小不能在创建后改变。ArrayListArrayList是 Java Collections 框架的一部分,是一个动态数组,能够自动调整其大小。在元素添加或删除时,ArrayList会自动调整其内部数组的大小。在选择使用Array还是ArrayList如果需要固定大小的存储并且性能优先,可以选择Array。如果需要灵活的大小、丰富的方法以及动态调整大小的能力,ArrayList是更好的选择。
2024-09-19 14:29:56 632
原创 Java中的Stream流
Java的Stream流是Java 8引入的一种新特性,提供了一种高效和简洁的处理集合(如List、Set等)的方法。Stream流允许我们以函数式编程的方式对数据进行操作,它可以在内存中以一种声明的方式表达数据的处理的管道。
2024-09-19 12:37:23 290
原创 如何将本地项目上传到GitHub(SSH连接)
将远程仓库文件拉取到本地,这里可以验证是否关联上,如果项目里出现了README文件,那就是关联上了。在个人GitHub中新建项目(远程仓库),添加一个README文件,方便后面验证。关联本地Git与远程仓库,这里的远程仓库地址就是刚刚复制的远程仓库的SSH地址。初始化本地仓库,同时指定默认分支为main,与远程仓库的main保持一致。记住这个默认分支,我这里是main,你的可能是master或其他。我把所有命令操作的记录放在这里,你做的时候可以对比结果是否正确。将提交的文件推送到远程仓库。
2024-09-13 14:27:26 537
原创 http连接与ssh连接的区别
HTTP连接和SSH连接是两种不同的网络协议,主要用于不同的目的。总结来说,HTTP主要用于网页浏览和数据传输,而SSH则用于安全的远程管理和文件传输。
2024-09-13 11:38:33 1022
原创 事务的四大特性
事务是一个不可分割的操作单元,要么全部执行成功,要么全部不执行。如果事务中的某个操作失败,整个事务将被回滚,数据库将恢复到事务开始之前的状态。: 事务的执行不应受到其他事务的干扰。即使多个事务并发执行,每个事务都应感觉自己是独占数据库的,事务之间的操作是相互隔离的。: 事务必须使数据库从一个一致性状态转变到另一个一致性状态。也就是说,事务的执行不能破坏数据库的完整性约束。: 一旦事务被提交,其结果是永久性的,即使系统发生故障,已提交的事务所做的更改也会被保留。
2024-09-12 11:08:23 791
原创 对比介绍Java Servlet API (javax.servlet)和Apache HttpClient这两个库
【代码】对比介绍一下Java Servlet API (javax.servlet)和Apache HttpClient这两个库。
2024-09-11 16:44:51 652
原创 @RequestMapping 基于哪个库进行通信
是 Spring Framework 中用于处理 HTTP 请求的注解,主要用于定义控制器方法的请求映射。它并不直接基于某个特定的通信库,而是依赖于 Spring MVC 框架的核心功能。
2024-09-11 16:29:15 592
原创 C/S和B/S系统使用的通信技术一般有什么区别
C/S(客户端/服务器)和B/S(浏览器/服务器)系统在通信技术上有一些显著的区别,主要体现在通信协议、数据传输方式和实时性等方面。
2024-09-11 09:53:18 701
原创 docker能用来做什么
Docker 是云原生应用的基础,支持在云平台(如 AWS、Azure、Google Cloud)上快速部署和扩展应用。:Docker 非常适合构建和管理微服务架构,允许将应用程序拆分为多个独立的服务,每个服务可以在自己的容器中运行。:开发人员可以使用 Docker 创建一致的开发环境,确保在不同机器上运行的应用程序具有相同的依赖和配置。:Docker 可以用于构建数据处理和分析的环境,方便数据科学家和分析师进行实验和开发。:Docker 可以用于创建可重复的学习环境,方便学生和培训人员进行实验和学习。
2024-09-04 11:27:19 773
原创 初识RabbitMQ
RabbitMQ是一个开源的消息代理软件,主要用于实现消息队列的功能。它允许应用程序之间通过消息进行异步通信,从而提高系统的可扩展性和可靠性。RabbitMQ支持多种消息协议,最常用的是AMQP(高级消息队列协议)。RabbitMQ广泛应用于微服务架构、分布式系统和实时数据处理等场景。
2024-09-04 11:06:53 1033
原创 OSI七层网络模型
这个模型帮助开发人员和网络工程师理解网络协议和服务的工作机制,促进了不同系统和设备之间的互操作性。OSI七层网络模型是一个理论模型,用于理解和构建计算机网络的各种协议和标准。: 确保数据完整性和顺序传输,提供端到端的通信,使用TCP和UDP协议。: 提供节点间的帧传输和错误检测,包括以太网和Wi-Fi等协议。: 负责传输原始比特流,包括电缆、设备和信号的物理传输方式。: 管理应用程序间的会话,包括建立、维护和终止通信会话。: 负责数据包的路由和转发,制定路径,例如IP协议。
2024-09-03 11:26:23 440
原创 什么是微服务
微服务是一种现代软件架构风格,通过将应用程序拆分为小的、独立的服务,能够提高灵活性、可维护性和可扩展性。尽管微服务架构带来了许多优点,但也伴随着一定的复杂性和挑战,因此在设计和实施微服务架构时需要谨慎考虑。
2024-09-03 11:18:44 600
原创 中间件是什么
中间件是软件架构中的重要组成部分,提供了应用程序之间的通信、数据管理和其他服务。它使得开发者能够更高效地构建和维护复杂的分布式系统,尤其是在微服务架构和云计算环境中。
2024-09-03 11:01:51 936
原创 Git中pull和fetch的区别
使用git fetch来安全地获取更新,而不影响你的当前工作状态。使用git pull当你想要立即将远程更改应用到你当前的分支。
2024-08-29 16:37:18 750
原创 联合唯一索引其中一个为Null,多条同样的数据为什么不会冲突
在数据库中,联合唯一索引(Composite Unique Index)是由两个或多个列组合而成的主键,用于唯一标识表中的每一行。当一个联合唯一索引的某个字段为NULL时,涉及到的关键问题在于,NULL值的唯一性是不同于其他值的。
2024-08-28 16:40:55 924
原创 Java AOT思想
AOT(Ahead-Of-Time)编译是一种编译技术,它可以在程序运行之前将源代码或字节码编译成机器代码,从而提高程序的启动速度和整体性能。在Java中,AOT机制能够有效地优化Java应用的启动时间,尤其是在需要快速响应的场景中,如微服务、容器化应用等。
2024-08-27 14:59:39 439
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人