自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 无法正确访问 Vue 实例的属性

在 findLocation 方法中, uni.getLocation 的 success 回调使用了普通 function ,导致 this 指向错误,无法正确访问 Vue 实例的 locationData 属性。本bug是典型的JavaScript中 this 指向问题,通过使用箭头函数可以确保回调函数中的 this 正确指向Vue实例。修改前代码(错误部分)修改后代码(正确部分)

2025-12-10 15:28:58 138

原创 为什么是255不是256?

摘要:MySQL中varchar(255)的设计源于单字节字符集下长度前缀的存储优化。当字符数≤255时,长度前缀仅需1字节,而≥256时需要2字节。虽然多字节字符集(如utf8)下255字符可能超过255字节,但该设计仍沿用历史习惯。这种微小差异在大表中能显著节省存储空间,体现了数据库设计的精细化考量。(150字)

2025-11-24 17:44:59 301

原创 乐观锁和悲观锁的使用

摘要:文章对比了悲观锁(数据库行锁)和乐观锁(version字段)两种并发控制方式。悲观锁通过SELECT...FOR UPDATE实现,适用于高并发修改同一行数据的场景(如库存扣减);乐观锁通过版本号检查实现CAS更新,适合冲突少的多人编辑场景(如商品信息更新)。文章通过下单和商品编辑两个典型案例,分析了各自的实现原理、SQL写法及适用场景,最后给出最佳实践建议:冲突少时优先选择乐观锁,关键业务用悲观锁,并注意索引和事务控制。

2025-11-20 17:29:33 436

原创 mysql锁机制

本文摘要:MySQL锁机制主要分为表级锁和行级锁,表级锁适用于MyISAM引擎和DDL操作,行级锁由InnoDB自动管理。按性质可分为共享锁(S锁)和排他锁(X锁),InnoDB还自动管理意向锁。具体实现包括记录锁、间隙锁和临键锁。应用层可使用乐观锁通过版本控制实现并发管理。实际应用场景中,悲观锁适用于库存扣减等场景,乐观锁适合用户信息编辑。使用时需注意事务范围和索引使用,避免锁升级为表锁。

2025-11-20 11:23:18 988

原创 token无感刷新全流程

本文介绍了基于SpringBoot和Vue的双Token无感刷新认证方案。系统采用短时效access_token和长时效refresh_token机制,当前端检测到401错误时自动发起刷新请求。后端实现包括JWT生成/验证工具类、登录接口和Token刷新接口,使用拦截器进行认证校验。前端通过Axios拦截器实现请求自动携带Token、响应错误处理和Token自动刷新流程。该方案避免了频繁登录,提升了用户体验,同时保障了系统安全性。

2025-11-14 10:18:18 772

原创 无法访问Elasticsearch的9200端口

https而是http。

2025-08-15 09:06:12 263

原创 record类型-Java 16

Java中的record是一种用于简化不可变数据载体定义的类类型,具有自动生成规范构造函数、组件访问器、equals()/hashCode()和toString()等特性。所有字段均为final不可变,不允许添加实例字段,但可包含静态字段和方法。record可以重写自动生成的方法、添加额外方法以及实现接口。与普通类相比,record自动生成样板代码且仅适用于数据载体场景,而普通类则更灵活,适用于各种复杂场景。典型应用包括DTO、多值返回和临时数据聚合等需要值语义的简单类型场景。

2025-06-13 17:22:44 438

原创 基于JavaEE的企业合同管理系统的设计与实现

本报告为计算机课程结课设计作业,简要记录了实验全过程。设计内容包括课题背景、操作环境(机房3号机)、实现过程及主要程序模块,着重分析了应用的核心知识点如数据结构、算法设计等。报告总结了调试过程中遇到的典型问题及解决方案,并附关键代码清单。通过本次实践,验证了课程理论知识的实际应用价值,完成了预期的设计目标。

2025-06-13 15:28:01 168

原创 scroll-view 滚动到底部问题

原来用scroll-into-view还有scroll-top试了一天了,都不行,莫名其妙的。用uni.pageScrollTo滚动。我踏马直接不用scroll-view。还要设置 height,真的麻烦。

2025-03-26 18:24:56 450

原创 为什么配置Redis时候要序列化配置呢

在RedisConfig类中,使用了以下序列化器::用于序列化和反序列化键(key)。将键转换为字符串,便于阅读和管理。例如,键user:1会直接存储为字符串"user:1"。:用于序列化和反序列化值(value)。使用FastJSON库将对象转换为JSON字符串,便于跨语言使用和调试。例如,对象User{id=1, name="Alice"}会存储为JSON字符串{"id":1,"name":"Alice"}。可读性:数据存储为字符串或JSON格式,便于查看和调试。

2025-02-13 17:56:02 594

原创 explain关键字

摘要:本文详细介绍了MySQL索引的分类、创建方法以及EXPLAIN命令的使用。主要内容包括:1) 索引分类如PRIMARY KEY、UNIQUE等;2) EXPLAIN命令输出的12列字段解析,重点关注id、select_type、type等关键字段;3) 不同type类型的性能对比,从最优的NULL到最差的ALL;4) 常见Extra字段含义,如Using filesort、Using temporary等。文章通过实际SQL示例演示了如何分析查询执行计划,帮助优化SQL性能。

2024-12-11 10:06:41 735

原创 MYSQL索引的分类和创建

举例详细讲解了常用的几种索引。

2024-12-10 21:35:35 1623

原创 MySQL事务

mysql的事务可以分为【显式事务】和【隐式事务】。默认的事务是隐式事务,由变量【autocommit】控制。

2024-12-10 16:12:59 822

原创 MySQL临时表

MySQL临时表在很多场景中都会用到,比如用户自己创建的临时表用于【保存临时数据】,以及MySQL内部在执行【复杂SQL】时,需要借助临时表进行【分组、排序、去重】等操作,临时表具有一下几个特点:1)临时表不能通过查看,在服务器重启之后,所有的临时表将全部被销毁。2)临时表是每个进程独享的,当前进程(客户端)创建的临时表,其他进程(客户端)是查不到临时表里面的数据的,所以不同客户端可以创建同名的临时表。

2024-12-09 11:29:12 454

原创 JAVA日志框架,这一篇就够了

自定义的配置文件。假设我们将其命名为,用默认配置做更改创建好配置文件后,你需要告诉使用这个自定义的配置文件。这通常在程序启动时完成,例如在主类的main//之后正常使用就行到这里,你应该了解怎么在代码中使用和配置日志框架了,其实其他日志框架都差别不大。通过简单的JUL框架,我们后面将学习主流框架搭配:log4j2(实现) + slf4j(门面)

2024-11-22 11:36:27 2321

原创 log4j2的使用

log4j2默认在classpath下查找配置文件,可以修改配置文件的位置。如果是web项目,在web.xml中添加log4j2默认加载classpath下的 log4j2.xml 文件中的配置。如果找不到配置文件,Log4j 将提供默认配置。在写配置文件前。我们先学习一下常用的占位符:%d{HH:mm:ss.SSS} ,表示输出到毫秒的时间%t,输出当前线程名称%-5level,输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0。

2024-11-22 11:33:11 2096

原创 EndpointConfig端点配置类使用

接口位于包中,它是Java WebSocket API(JSR 356)的一部分。Spring WebSocket框架也提供了对这个接口的支持。

2024-11-16 16:46:56 774

原创 WebSocket简易聊天室实现(有详细解释)

这个类的主要目的是在WebSocket握手过程中获取HTTP会话(HttpSession),并将它保存到 ServerEndpointConfig 对象中,以便在WebSocket端点类中使用。是Spring WebSocket提供的一个类,用于自动注册使用 @ServerEndpoint 注解标注的WebSocket端点。ServerEndpointConfig是Java WebSocket API(JSR 356)提供的接口,用于自定义WebSocket端点的配置。

2024-11-16 16:23:32 1705

原创 WebSocket Endpoint端点

WebSocket端点(WebSocket Endpoint)是指在WebSocket协议中,服务器和客户端之间的通信通道的终端。在Java中,通常使用 @ServerEndpoint 注解来标识一个类作为WebSocket端点。这个类负责处理客户端的连接、接收消息、发送消息以及处理连接关闭等事件。

2024-11-16 16:07:34 935

原创 jwt校验失败问题

调试发现失败时会进入InvocableHandlerMethod类下doInvoke方法中。查阅资料后发现,当认证失败时,捕获这个异常来处理认证失败。

2024-11-06 09:26:20 829

原创 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler d

这个类在 Java 9 及更高版本中已被移除,因此需要添加相应的依赖来解决这个问题。

2024-11-05 18:16:09 250

原创 Invalid bean definition with name ‘sysUserMapper‘ defined in file [D:\Documents\GitHub\SpringSecurit

解决:SpringBoot对应:mybatis-plus-spring-boot3-starter。原因:mybatis-plus和SpringBoot版本不对应。

2024-11-05 14:36:52 1615 6

原创 Mybatis Plus条件构造器

的主要意义在于提高代码的类型安全性和可读性。下面详细解释这两种方式的区别和优势。

2024-11-04 16:39:05 791

原创 5分钟上线你的简历

主机记录”为你自定义的,记录值为:cname.vercel-dns.com。

2024-10-16 01:05:44 451

原创 服务器上保存文件的一次问题

文件系统:文件系统是一种数据结构,用于组织和管理存储设备上的数据。常见的文件系统包括 NTFS(Windows)、ext4(Linux)、HFS+(macOS)等。文件系统实例:一个磁盘分区、一个USB驱动器、一个网络共享文件夹等都可以是一个文件系统的实例。

2024-10-11 20:40:29 642

原创 后端修改资源后重新运行项目了,浏览器刷新资源没更新问题

修改后重启项目,去浏览器刷新:没有改变?

2024-08-26 15:12:39 573

原创 JAVA多线程等待唤醒机制

当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行,那么多线程之间需要一些通信机制,可以协调它们的工作,以此实现多线程共同操作一份数据。比如:线程A用来生产包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,此时B线程必须等到A线程完成后才能执行,那么线程A与线程B之间就需要线程通信,即——这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争(race),比如去争夺锁,但这并不是故事的全部,线程间也会有协作机制。

2024-08-21 16:50:39 947

原创 ExecutorService线程池使用、Future、Callable 接口

Callable 本身并不能直接运行,它需要通过某种方式提交给执行器(如 ExecutorService)或包装成 FutureTask 然后在一个线程中执行。这是因为 Callable 接口本身只是一个定义了 call 方法的接口,它并不包含任何执行机制。

2024-08-21 16:47:09 1436

原创 synchronized和Lock(ReentrantLock)及二者区别

synchronized 更适合简单的同步需求,代码更简洁。Lock 适用于更复杂的同步需求,提供了更多的控制选项。

2024-08-19 16:23:33 1073

原创 JUnit 断言验证

9种JUnit 断言验证方式。

2024-08-19 12:51:36 510

原创 使用@Test测试线程时会立马结束的问题

JUnit 测试框架并不会等待你的线程完成。当测试方法结束时,JUnit 认为测试已经完成,即使线程仍在运行。

2024-08-19 12:40:40 440

原创 TreeMap实现根据值比较

两种方式实现根据值排序

2024-08-10 11:09:12 281

原创 TreeMap 自定义排序的几种使用方法

多种方式实现自定义排序

2024-08-10 11:06:46 828

原创 LinkedHashSet底层原理

方法会更新双向链表,确保新插入的元素位于链表尾部,或者根据。例如,当按照插入顺序排序时,参数移动已存在的元素。

2024-07-31 15:41:08 685

原创 TreeMap底层原理

TreeMap是 Java 集合框架中的一种有序的键值对集合(map),它基于红黑树(Red-Black Tree)实现。TreeMap的主要特点是它可以自动地根据键(key)的自然顺序或者根据提供的比较器(Comparator)对键进行排序。

2024-07-31 15:39:41 1383

原创 HashMap底层原理

为了确定一个键值对应该存储在哪个桶中,需要使用哈希函数(hash function)来计算键的哈希码(hash code)。负载因子是桶数组的大小和已存储的键值对数量之间的比率,默认为 0.75。扩容过程中,旧的桶数组会被废弃,创建一个新的更大的桶数组,并将所有键值对重新哈希到新的数组中。会再次计算键的哈希码,并使用相同的索引计算公式找到桶的位置。: 计算得到的哈希码经过一定的算法转换成桶的索引位置(index)。随着键值对的增多,哈希表可能会变得拥挤,这会导致更多的碰撞和降低性能。这是通过调用键对象的。

2024-07-31 14:58:44 389

原创 Set接口的常用实现类特点

1.HashSet。

2024-07-28 15:56:20 298

原创 LinkedList底层原理

从插入,删除,查找分析源码,结合源码分析LinkedList特点。

2024-07-28 11:51:39 1429

原创 ArrayList底层原理

可存储任何类型的对象。

2024-07-26 17:24:12 1661

原创 什么是线程安全?

不论运行时环境如何调度这些线程,该函数或对象都能保持其预期的功能和行为。:当多个线程访问该函数或对象时,不需要外部同步机制(如锁)来保证其正确性。:不可变对象天生就是线程安全的,因为一旦创建就不能改变其状态,所以多个线程可以自由访问而不必担心数据变化。是一种将变量绑定到特定线程的方法,使得每个线程都有自己的副本,从而避免了线程间的共享。:对于关键的操作,它们要么全部成功执行,要么全部失败,中间不会被其他线程中断。等)提供了线程安全的整数和长整型操作,这些操作是原子性的,不需要额外的同步。

2024-07-26 16:34:59 364

JSP合同信息管理系统

采用JSP开发技术,Tomcat作容器, SQL Server 2000作数据库管理系统,实现了创建合同、修改合同、删除合同、合同收款提醒、合同时间管理、合同查询等几大功能。

2025-06-13

基于JavaEE的企业合同管理系统的设计与实现MYSQL

基于JavaEE的企业合同管理系统的设计与实现,使用MYSQL、Mybatis、servlet、jsp技术

2025-06-13

21软件一班软件工程第一次作业

21软件一班软件工程第一次作业

2023-09-20

婚礼邀请函-小程序代码

婚礼邀请函-小程序代码

2024-03-21

JavaEE期末复习模拟题

JavaEE期末复习模拟题

2023-05-23

王云老师数据库全程课堂笔记

王云老师数据库全程课堂笔记

2023-05-12

C语言程序设计3500字报告含代码

计算器实现,满分设计报告,程序,代码在我主页 包含:一、设计课题 二、设计目的 三、操作环境 四、设计场所(机房号、机器号或自己机器) 五、设计过程(设计内容及主要程序模块) 六、本次设计中用到的课程知识点(列出主要知识点) 七、设计过程中遇到的问题及解决办法 八、课程设计体会与心得 九、程序清单

2023-03-24

C语言程序设计满分含代码

计算器实现,满分设计报告,程序,代码在我主页 包含:一、设计课题 二、设计目的 三、操作环境 四、设计场所(机房号、机器号或自己机器) 五、设计过程(设计内容及主要程序模块) 六、本次设计中用到的课程知识点(列出主要知识点) 七、设计过程中遇到的问题及解决办法 八、课程设计体会与心得 九、程序清单

2023-03-24

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

TA关注的人

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