自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库事务

摘要:事务是数据库的核心特性,确保数据一致性并提供回滚机制。它具有ACID特性:原子性(操作不可分割)、一致性(合法状态转换)、隔离性(并发互不干扰)和持久性(永久保存)。事务状态包括活动、部分提交、失败和中止。MySQL支持显式和隐式事务,通过隔离级别解决并发问题(脏写、脏读等)。事务日志(redo和undo)保证持久性和原子性:redo记录物理页修改,提供恢复机制;undo记录逻辑操作,支持回滚。redo日志通过缓冲区和文件实现高效持久化,采用顺序写入提升性能。

2025-12-09 17:14:16 622

原创 集合框架:Collection、List、Set

2、数组中存储数据特点的单一性,对于无序的、不可重复的场景的多个数据就无能为力了;2、数组中的多个元素是一次紧密排列的,有序的,可重复的3、数组一旦初始化完成,其元素的类型是确定的。在HashMap使用的数据结构的基础上,增加了一对双向链表,用于记录添加的元素的先后顺序,进而我们在遍历元素时就可以按照添加的顺序显示。:添加到Set中的元素是不能相同的,比较的标准,需要判断hashCode()得到的哈希值与equals得到的boolean型的结果,哈希值相同则返回true;可以按照添加的元素的属性进行遍历。

2025-12-01 15:53:10 831

原创 反射机制的初级

这个解释运行的过程中,我们需要将.class字节码文件加载(使用类的加载器)到内存(存放在方法区)中。Java程序中,所有的对象都有两种类型:编译时类型和运行时类型,而很多时候对象的编译时类型和运行时类型不一致,编译时根本无法预知该对象和类的真实信息,程序只能靠。场景2:在反射中,经常用来创造运行时类的对象那么我们要求各个运行时类都提供一个空参的构造器,便于我们编写创建运行时类对象的代码。要想创建对象成功,需要满足:1、要求运行时类中必须提供一个空参的构造器 2、必须要求的空参构造器的权限必须够用。

2025-11-14 11:01:03 236

原创 数据库和索引

来控制用户对数据库的访问,权限表存放在mysql数据库中,权限表中最重要的是user表、db表等。系统表空间和独立表空间,可以自己指定使用系统表空间还是独立表空间进行存储数据,这个数据由参数进行控制。如果采用独立表结构存储模式,data\a中还会产生b.ibd文件(存储数据信息和索引信息)存储引擎,它被设计用来处理大量的短期事务。Memory引擎:采用的逻辑介质时内存,数据文件与索引文件是分离的,支持B+索引和哈希索引。指表的类型,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

2025-11-09 15:10:37 600

原创 多线程和进程

本文介绍了线程的基本概念及其在Java中的实现方式。主要内容包括:程序、进程和线程的区别,线程调度方式(分时和抢占式),并行与并发的概念。重点讲解了Java创建线程的两种方法:继承Thread类和实现Runnable接口,并比较了它们的异同。还阐述了线程的生命周期和线程安全问题,提出了同步代码块和同步方法两种解决方案,分析了synchronized关键字的使用场景及其优缺点。文章为理解Java多线程编程提供了基础指导。

2025-10-29 20:20:57 739

原创 Jedis和Redis

对于对象类型可以选择哈希类型,原因是哈希类型的存储占用内存小,并且可以对存储的字段随时进行修改,如果采用Json格式的,Json会进行序列化为String类型,String类型的不方便改 并且占用内存空间较大。1、由缓存的调用者,在更新数据库的同时更新缓存,一般都是删除缓存,更新数据库时让缓存失效,查询时再更新缓存。产生的原因:用户请求的数据在缓存中的数据库中都不存在,不断发起这样的请求,给数据库带来巨大压力。:指客户端请求的数据再缓存中和数据库中都不存,这样缓存永远不会生效,这些请求都会打到数据库;

2025-10-27 21:44:59 791

原创 HTTPClient和缓存、Spring Cache

Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。定义:HTTPClient是Apache Jakar Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端变成工具包,并且它 支持HTTP协议最新的版本和建议。发送请求步骤:1、创建HttpClient对象 2、创建Http请求对象 3、调用HttpClient的execute方法发送请求。在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;

2025-09-25 20:11:14 183

原创 Redis简介

它是基于内存存储,读写性能高,适合存储一些热点数据(热点商品、资讯、新闻)它并不是取代Mysql而是进行对Mysql的补充 ,Mysql是基于文件的形式存于磁盘中。5、有序集合(sorted set/zset):集合中的每个元素关联一个分数(score),根据分数升序排序,没有重复元素。Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型。:String类型元素的集合,且不允许有重复成员,每个元素都会关联一个double类型的分数。

2025-09-08 15:20:37 438

原创 SpringMVC

在以上的问题中,它解决了tomcat不用整合,SpringMVC框架会自动帮忙整合好,servlet开发变得简单,不用实现任何接口,并且解决了乱码等问题。SpringMVC 是Spring的web模块,用来开发Web应用,Web应用的核心就是处理HTTP请求响应。前后端不分离:就是一切操作(包括前端页面的数据都在服务器端完成),完成之后直接给浏览器带数据的完整页面。前后端分离:在服务端只处理数据,只需要将前端的页面写死,然后服务器只需要给前端页面传数据就可以。请求首行:(请求方式、请求路径、请求协议)

2025-07-21 11:07:15 324

原创 声明式事务

虽然说是当前的传播行为会创建一个新事务,但是由于Java本身的异常机制,会将这个异常抛给外层的事务,如果外层的事务和其他事务相关联,那么其他事务必然也会受到影响。事务拦截器:是一个切面,TransactionInterceptor:控制何时提交和回滚,如果事务正常就调用事务的提交,如果事务异常就调用事务的回滚。传播行为,就是小事务和大事务,如果小事务和大事务公用一个事务,小事务要按照大事务的设置,小事务自己的设置失效。读已提交:事务只能读取已经提交的数据,可避免脏读,但可能引发不可重复读和幻读。

2025-07-14 10:39:27 378

原创 AOP的原理

摘要:本文介绍了Spring的@Autowired自动注入实现原理和AOP编程相关内容。@Autowired通过AutowiredAnnotationBeanPostProcessor处理,在Bean初始化阶段利用反射查找并注入依赖。AOP实现包括静态代理和动态代理两种方式,其中动态代理通过Proxy.newProxyInstance创建。AOP使用步骤包括引入依赖、定义切面、编写通知方法和指定切入点表达式。AOP底层采用CGLIB创建代理对象,维护增强器链执行通知方法。

2025-07-09 16:17:20 484

原创 SpringBoot 注入

如果要利用条件注解,只在某种环境下激活一个组件,可以利用下面的注解,如果不说是啥环境,可以使用默认,那就打开其源码进行加一个数组形式,传入defalut就行。1、@Autowired它的底层是Springboot实现的包;但是@Resource是基于Java实现的,所以二者相比较,后者具有更强的通用性。精确指定:如果容器中的组件存在多个,则使用该注释进行精确指定组件名。1、按照类型找到这个组件 (有且只有一个 直接注入;2、如果找到多个,再按照名称去找(变量名就是名字)上面的两个自动装配有啥区别?

2025-07-03 17:37:16 132

原创 Spring--容器

但是上面有一点需要强调的是:分层注解能起作用的前提是这些组件必须在主程序所在的包及其子包结构下,如果不在的话需要加注解。组件的管理:可以用配置类 给上面加一个注解,如下所示,用于管理配置组件,其中配置类也是容器中的一种特殊组件。FactoryBean 在容器中放的组件的类型,是接口中泛型指定的类型,组件的名字之工厂自己的名字。控制:资源的控制权(资源的创建、获取、销毁等)组件的创建时机:容器启动过程中就会创建组件对象。工厂组件:在面对复杂操作的时候可以用工厂组件。容器:管理组件(创建、获取、保存、销毁)

2025-06-30 21:45:47 156

原创 Vue3路由机制router

其中history属性用于记录路由的历史;routes用于定义多个不同的路径和组件之间的对应关系。路由:路由就是根据不同的URL地址展示不同的内容或页面。步骤:1、导入创建路由对象需要使用的函数。2、导入.vue组件并且创建一个路由对象。3、向外暴露router。

2025-06-13 10:38:29 234

原创 VUE生命周期

每个VUE组件实例在创建时都需要经历一系列的初始化步骤,以及在数据改变时更新到DOM,在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码!onBeforeUpdate():注册一个钩子,在组件即将因为响应式状态变更而更新其DOM树之前调用。onUpdate():注册一个回调函数,在组件因为响应式状态变更二更新其DOM树之后调用。onUnmounted():注册一个回调函数,在组件实例被卸载之后调用。onBeforeMount():注册一个钩子,在组建被挂载之前被调用。

2025-06-12 20:52:15 240

原创 VUE3常见的命令总结

v-if如果数据为false,元素则不再dom树中,v-show数据为false,元素仍在dom树中,通过css中的display属性被切换。这里的message是组件中的一个数据属性,Vue会自动将其值渲染到模板中对应的<div>元素中。v-show='表达式' 数据为true,元素则展示在页面上,否则不展示。v-if='表达式'在指令的表达式返回真值时才被渲染。它允许我们在模板中动态地插入数据,基本语法。v-text是一种文本渲染方式。命令:v-if和v-show。将文本渲染到<p>元素中。

2025-06-11 10:41:07 253

原创 前端工程化简介

将前端相关的代码剥离出来,形成一个独立的工程了,使用相关的专门的技术来实现前端代码的模块化、组件化、规范化、自动化,所以就叫作前端工程化。现在项目就变成了前后端分离模式,即开发分离;也可以形成部署分离使得性能更好。我目前采用的是前端技术栈是ECMAScrict6+Nodejs+npm+Vite+VUE3+router+pinia+axios+Element-plus.前端工程化就是使用软件工程的方法单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的是为了提高效率和降低成本。

2025-05-28 10:10:47 229

原创 三大域对象讲解

HttpSession表示一次客户端和服务端之间的会话 ,同一个用户在一定时间内的多个请求共享同一个session。HttpServletRequst表示一次客户端发起的请求,请求在服务器内部转发时可以共享数据。三、HttpServletRequst--------请求域对象(请求作用域)二、HttpSession--------会话域对象(会话作用域)一个热水器摆在办公室的公共区,办公室内的所有人都能用。一个热水器摆在楼层的走廊区,该楼层的所有人都可以用。它的生命周期时每次请求创建,服务器响应后销毁。

2025-05-19 17:16:57 250

原创 MVC架构下的每个文件包的相互调用以及作用

如图是一个日程管理的项目架构,在MVC架构下,基本的包有controller(控制层)、service、dao、pojo、util、test。调用关系:接收用户请求(如HTTP请求);调用关系:被controller调用;调用关系:被service层调用;调用关系:被dao用于数据传输;作用:用于封装数据的对象,通常代表数据库中的表,数据库中有几个表你就可以创建几个对象。作用:处理核心业务逻辑,也就是你要实现的功能,是程序的核心部分。作用:处理前端(Html、jsp)的请求,使用户请求的入口。

2025-05-16 11:16:30 293

原创 高数总结极限的知识框图

2022-12-13 11:10:13 109

空空如也

空空如也

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

TA关注的人

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