- 博客(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
原创 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临时表
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
原创 服务器上保存文件的一次问题
文件系统:文件系统是一种数据结构,用于组织和管理存储设备上的数据。常见的文件系统包括 NTFS(Windows)、ext4(Linux)、HFS+(macOS)等。文件系统实例:一个磁盘分区、一个USB驱动器、一个网络共享文件夹等都可以是一个文件系统的实例。
2024-10-11 20:40:29
642
原创 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
原创 使用@Test测试线程时会立马结束的问题
JUnit 测试框架并不会等待你的线程完成。当测试方法结束时,JUnit 认为测试已经完成,即使线程仍在运行。
2024-08-19 12:40:40
440
原创 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
原创 什么是线程安全?
不论运行时环境如何调度这些线程,该函数或对象都能保持其预期的功能和行为。:当多个线程访问该函数或对象时,不需要外部同步机制(如锁)来保证其正确性。:不可变对象天生就是线程安全的,因为一旦创建就不能改变其状态,所以多个线程可以自由访问而不必担心数据变化。是一种将变量绑定到特定线程的方法,使得每个线程都有自己的副本,从而避免了线程间的共享。:对于关键的操作,它们要么全部成功执行,要么全部失败,中间不会被其他线程中断。等)提供了线程安全的整数和长整型操作,这些操作是原子性的,不需要额外的同步。
2024-07-26 16:34:59
364
JSP合同信息管理系统
2025-06-13
C语言程序设计3500字报告含代码
2023-03-24
C语言程序设计满分含代码
2023-03-24
关于#java#的问题:HashSet不允许重复值,但修改后再添加一个一样的就可以?
2024-07-28
关于#java-ee#的问题;
2023-02-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅