- 博客(103)
- 资源 (8)
- 收藏
- 关注
原创 MySQL InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解
若事务 1 对数据对象A加上X锁,事务 1 可以读A也可以修改A,其他事务不能再对A加任何锁,直到事物 1 释放A上的锁。这保证了其他事务在事物 1 释放A上的锁之前不能再读取和修改A。排它锁会阻塞所有的排它锁和共享锁读取为什么要加读锁呢:防止数据在被读取的时候被别的线程加上写锁,使用方式:在需要执行的语句后面加上。
2025-05-11 15:30:00
647
原创 一文彻底理解Spring AOP【理论篇】
AOP(Aspect-Oriented Programming), 即面向切面编程, 它与 OOP( Object-Oriented Programming, 面向对象编程) 相辅相成, 提供了与 OOP 不同的抽象软件结构的视角.在 OOP 中, 我们以类(class)作为我们的基本单元, 而 AOP 中的基本单元是Aspect(切面)当使用注解@Aspect@Component@Aspect。
2025-05-11 11:05:44
810
原创 浅谈Mysql的高可用高性能
1)LRU缓存策略:采用冷热数据隔离方案默认冷数据占比37%,当首次加载数据会直接放在冷区域的首节点,冷区域的缓存只有在1s内被访问才会被更新到热数据的首节点。而热数据区的前1/4被访问不用挪动位置,后3/4部分才需要。尽可能地保持热数据在缓存中,同时也为冷数据提供了一定的缓存空间。这种策略对于许多工作负载来说都非常有效,因为它们的访问模式通常符合局部性原理,即在任何时刻,只有一小部分的数据被频繁访问。2)redolog是顺序写入的,用于恢复数据。
2025-05-06 14:28:02
459
原创 JS精度丢失原因及解决方案
前端开发过程中,如果使用的开发语言是JavaScript,那么会存在一个非常困扰人的情况;在涉及含有小数的数字计算时,会出现计算结果与真实的结果不一致的场景;当测试数据量不足够大的时候,经常会遗漏掉某些异样数据,给用户带来不好的使用感受。
2025-05-06 13:40:01
928
原创 巧用循环周期:1e18次迭代的秒解之道
最近csdn 上有一个活动,题目如下:定义函数 R(n) 为将 n 的十进制数字反转得到的数(忽略前导零,例如 R(1230) = 321,R(5) = 5),定义函数 A(n) 为将 n 的十进制数字按升序排列得到的数(忽略排序后的前导零,除非 n=0,例如 A(314159) = 113459,A(102) = 12,A(20) = 2,A(0) = 0)。
2025-04-07 11:05:33
736
原创 Spring Boot + MyBatis + Maven论坛内容管理系统源码
原文链接:http://www.devcheng.net/post/be40dded.html毕设描述xxxForum是一个基于Spring Boot + MyBatis + Maven开发的一个论坛内容管理系统,主要实现了的功能有:前台页面展示数据、广告展示内容模块:发帖、评论、帖子分类、分页、回帖统计、访问统计、表单验证用户模块:权限、资料、头像、邮箱验证管理:后台管理、统计图表...
2025-04-07 10:57:13
909
1
原创 java中任务调度java.util.Timer,ScheduledExecutor,Quartz的机制说明和demo代码实例分享
目前的 Web 应用,多数应用都具备任务调度的功能。这里就简单的介绍任务调度的Java 实现方法,主要包括 Timer,Scheduler, Quartz 以及 JCron Tab,目的在于给需要开发任务调度的牛牛们提供一个参考。 1.Timer 大部分已经非常熟悉 java.util.Timer 了,它是最简单的一种实现任务调度的方法,下面给出一个具体的例子:
2025-04-03 11:20:14
3107
4
原创 Spring Boot项目中策略模式的应用与实现
在Spring Boot项目中,策略模式是一种非常重要的设计模式,它能够让我们定义一系列算法,并使它们可以互相替换。策略模式通过将算法封装到独立的类中,从而使得代码中的算法可以独立于使用它的客户端变化。这对于某些需求频繁变化或者多样化的业务逻辑来说,策略模式能够提供更高的灵活性和扩展性。本文将详细介绍如何在Spring Boot项目中实现策略模式,并通过一个支付系统的示例来展示其应用。1.开放-封闭原则:通过引入策略模式,我们的代码对扩展开放,对修改封闭。
2025-04-03 09:49:20
755
4
原创 Springboot整合Mybatis+Maven+Thymeleaf学生成绩管理系统
前言该系统为学生成绩管理系统,可以当作毕业设计,也可以成为Spirng Boot初学者的学习代码!系统描述学生成绩管理系统提供了三种角色:学生,老师,网站管理员。主要实现的功能如下:登录 & 安全退出学生信息管理班级信息管理教师信息管理课程信息管理选课信息管理考勤信息管理请假信息管理成绩信息管理系统管理开发环境(运行环境)系统环境:Windows 10...
2025-04-02 11:12:17
821
3
原创 微信与支付宝退款接口常见问题解析与解决指南
在支付系统的开发中,退款功能是核心能力之一,但对接微信支付和支付宝时,开发者常因参数错误、环境配置等问题触发各种报错。本文结合两个典型场景——微信退款提示“订单号非法”与支付宝退款报错“交易不存在”,深入分析问题根源,提供解决方案及避坑指南。支付系统的退款接口报错往往源于参数错误、环境配置或订单状态异常。通过本文的案例分析,开发者可以掌握以下核心技巧:1.微信支付:校验订单号来源,优先使用商户订单号退款。2.支付宝:严格管理订单生命周期,区分测试与生产环境。
2025-03-19 16:33:28
959
原创 Keytool常见问题全解析:从环境配置到公钥提取
掌握 keytool 的常见问题解决方案,不仅能提升开发效率,还能避免因证书管理不当导致的应用发布失败。如果你遇到其他问题,欢迎在评论区留言交流!
2025-03-13 17:35:21
1161
原创 JavaScript性能优化实战:让你的Web应用飞起来
在Chrome每秒执行1.4亿次运算的今天,JavaScript性能仍是Web开发的关键瓶颈。本文将通过真实案例,揭秘那些让大厂团队效率提升300%的优化技巧(附可运行代码示例)。
2025-03-12 09:32:43
636
原创 C盘清理技巧分享
在使用计算机的过程中,我们常常会遇到C盘空间不足的问题,这不仅会导致系统运行变慢,还可能影响电脑的正常使用。今天就来给大家分享一些实用的C盘清理技巧,让你的C盘空间得到有效释放。
2025-02-26 14:56:49
1265
原创 从 0 到 1:使用 Docker 部署个人博客系统
通过使用 Docker,我们成功地将一个基于 Python Flask 框架的个人博客系统部署到了容器中。Docker 的容器化技术使得博客系统的部署变得简单、高效,同时也确保了系统在不同环境下的一致性和可移植性。希望本文能够帮助你快速上手 Docker,并将其应用到实际项目中。
2025-02-26 09:58:32
895
原创 深入理解与使用 Supervisor:守护你的应用程序
Supervisor 是一个用 Python 编写的进程控制系统,它可以在类 Unix 系统上监控和控制多个进程。Supervisor 可以在进程崩溃时自动重启,并且提供了一个命令行工具和 Web 界面来管理进程。Supervisor 是一个功能强大的进程管理工具,它可以帮助我们轻松地监控和控制多个进程,确保应用程序的高可用性和稳定性。通过合理配置 Supervisor,我们可以实现进程的自动重启、分组管理和事件监听等功能。希望本文对你理解和使用 Supervisor 有所帮助。The end.
2025-02-22 10:26:31
1543
8
原创 Python 安装避坑指南
本文将详细介绍 Python 安装过程中可能遇到的坑,并提供相应的解决方案,帮助大家顺利完成 Python 的安装。在 Windows 系统上安装 Python 时,如果在安装过程中没有勾选“Add Python to PATH”选项,那么在命令行中输入 python 或 pip 命令时,系统可能会提示“不是内部或外部命令,也不是可运行的程序或批处理文件”。Mac OS 系统自带了 Python 2.x 版本,在安装 Python 3 后,可能会出现命令行中默认使用系统自带 Python 2 的情况。
2025-02-21 16:52:16
711
1
原创 SpringMVC面试题(2025)
答:SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。答:1)springmvc 的入口是一个 servlet 即前端控制器,而 struts2 入口是一个 filter 过虑器。2)springmvc 是基于方法开发(一个 url 对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2 是基于类开发,传递参数是通过类的属性,只能设计为多例。
2025-01-23 10:10:53
797
原创 带你彻底搞明白Java中for、foreach、stream到底谁更胜一筹?
在Java的发展历程中,随着版本的持续更新,为开发者提供了多种实现循环操作的方式。其中包括最为基础的传统for循环、语法更为简洁的增强型foreach循环,以及Java 8全新引入的Stream API。这几种循环方式各具特色,适用于不同的应用场景。接下来,我们将深入探讨它们各自的工作原理,并对其在效率方面的差异进行详细分析。综上所述,在实际的Java编程过程中,如果开发者追求极致的性能表现,并且处理的是相对简单的循环逻辑,那么传统的for循环和foreach循环无疑是更为合适的选择。
2025-01-21 09:22:03
1123
原创 Spring面试题(2025)
Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工作的。Spring 框架至今已集成了 20 多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。
2025-01-15 09:45:11
1226
1
原创 如何使用CSS让页面文本两行显示,超出省略号表示
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。-webkit-line-clamp用来限制在一个块元素显示的文本的行数。-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式。但是这个属性只支持单行文本的溢出显示省略号,如果我们要实现多行文本溢出显示省略号呢。该方法适用范围广,但文字未超出行的情况下也会出现省略号,可结合js优化该方法。
2025-01-12 10:22:13
700
原创 @Inject和@Autowired以及@Resource区别
个人在使用上,更偏重使用@Inject,这是jsr330规范的实现,而@Autowired是spring的实现,如果不用spring一般用不上这个,而@Resource则是jsr250的实现,这是多年前的规范。The end.
2025-01-12 09:59:24
575
原创 大厂面试题(2025)
相对其他数据库而言,MySQL 的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如:MyISAM和 MEMORY 存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁( row-level locking),也支持表级锁,但默认情况下是采用行级锁。表级锁: 开销小,加锁快;不会出现死锁(因为 MyISAM 会一次性获得 SQL所需的全部锁);锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁: 开销大,加锁慢;会出现死锁;
2025-01-10 10:13:11
676
原创 SpringBoot面试题(2025)
多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot 是解决这个问题的方法。
2025-01-07 11:47:26
849
2
原创 一文带你从入门到放弃ElasticSearch
本文会从最开始的按照配置,一步一步的熟悉之后在使用ES做一个demo出来,跟着一起折腾吧。由于Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。而平常使用的MySql,Oracle,SQLServer 等为关系型数据库,二者有着本质的区别,Es查询语句使用的是DSL语言,关系式数据库使用的是T-SQL,虽然语言不同,但是有时候,一些功能还是有些相似的,为此,整理了一些ES与 关系型数据库中的功能关键字做一下对比。
2025-01-05 17:17:13
657
原创 Java中的动态代理
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。按照代理的创建时期,代理类可以分为两种。静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理。
2025-01-05 14:04:05
666
原创 保姆级带你掌握MySQL执行计划分析
优化 SQL 的第一步应该是读懂 SQL 的执行计划,所以前提条件就得先学习下 MySQL EXPLAIN 执行计划相关知识。执行计划是指一条 SQL 语句在经过MySQL 查询优化器的优化后,具体的执行方式。执行计划通常用于 SQL 性能分析、优化等场景。通过EXPLAIN的结果,可以了解到如数据表的查询顺序、数据查询操作的操作类型、哪些索引可以被命中、哪些索引实际会命中、每个数据表有多少行记录被查询等信息。
2025-01-03 17:44:50
755
2
原创 如何选择MySQL日期类型
在开发中不可避免的就是要存储时间,比如我们要记录操作表中这条记录的时间、记录转账的交易时间、记录出发时间、用户下单时间等等。你会发现时间这个东西与我们开发的联系还是非常紧密的,用的好与不好会给我们的业务甚至功能带来很大的影响。所以,我们有必要重新出发,好好认识一下这个东西。MySQL 中时间到底怎么存储才好?Datetime?Timestamp?还是数值时间戳?并没有一个银弹,很多程序员会觉得数值型时间戳是真的好,效率又高还各种兼容,但是很多人又觉得它表现的不够直观。
2025-01-03 09:39:50
1199
原创 浅谈内存泄露
概念:不需要使用的对象,但是GC无法回收它。宽泛意义上的内存泄漏不良的操作导致对象生命周期变长Y的声明周期结束后, 由于X引用Y导致GC无法回收Y (如果A,B,C生命周期少于X也是同理)当大量内存泄漏,没有内存为新对象分配时发生内存溢出。
2025-01-01 13:32:20
1041
原创 我的创作纪念日
今天偶然打开csdn看到站内信,距离第一次无意注册csdn写下了第一篇博客到现在 12年就过去了,时光如流,日子清浅。最大的收获就是时间过去的飞快,自己无意写下的博客可能也帮助了一些有需要的人,同时也记录了自己这些年的点点滴滴。希望有更多的时间写博客,能收获更多的粉丝朋友吧。目前而言,这里会记录自己看到的,想到的博文。希望2025 更好吧。新岁序开,共赴新程!
2025-01-01 12:47:16
338
原创 Java中的语法糖,你知道的有多少?
语法糖在面试中是常问的一个知识点。了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理是非常有必要的。语法糖(Syntactic Sugar) 也称糖衣语法,是英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。(有意思的是,在编程领域,除了语法糖,还有语法盐和语法糖精的说法)
2024-12-31 18:29:57
1051
原创 多线程中的BlockingQueue你知道的有多少?
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。
2024-12-30 19:15:18
1859
原创 base64出现空格问题
但是呢,会出现一个问题,byte[] 用base64编码之后可能会出现一些 “+” 加号,使用自定义的 httpUtils 请求的时候,会把 “+” 变成空格。项目中有一个参数是 byte[],在构建 http请求的时候不便参数的传输,于是就想到了 使用base64进行编码之后当成字符串进行传输。或者,将将加密后的字符串替换为 “%2B”, 再将 “%2B"替换回 ‘+’ 号,replace(”%2B", “+”)将加密后的空格全部替换为 ‘+’ 号,replace(" ", “+”);
2024-12-29 13:25:21
502
1
原创 一文带你了解Springboot2.x如何整合p6spy
P6Spy 是针对数据库访问操作的动态监测框架,它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改。P6Spy 分发包包括P6Log,它是一个可记录任何 Java 应用程序的所有JDBC事务的应用程序。其配置完成使用时,可以进行数据访问性能的监测。P6Spy是一个开源项目,项目首页 www.p6spy.com [项目首页网站不可访问了!
2024-12-29 12:47:02
570
原创 Spring Boot自定义注解获取当前登录用户信息
在项目开发过程中,难免都要获取当前登录用户的信息。通常的做法,都是开发一个获取用户信息的接口。如果在本项目中,多处都需要获取登录用户的信息,难不成还要调用自己写的接口吗?显然不用!以往的项目经验里,都是使用用户对应的Service获取,今天使用自定义注解对其进行数据绑定,从而获取登录用户信息。先自定义一个用于绑定登录用户信息的注解,且运行时有效。/*** 当前登录用户信息注解*/
2024-12-28 13:27:10
700
原创 RedisDesktopManager新版本不再支持SSH连接远程redis后
这几天从新下载RedisDesktopManager最新版本,结果发现新版本开始不支持SSH连接远程redis了。换一个客户端连接工具,我的基友推荐了一款 AnotherRedisDesktopManager,下载地址:https://github.com/qishibo/AnotherRedisDesktopManager。个人感觉这个工具从UI界面以及功能都比较好用,如果正好你也需要SSH连接远程redis又不想那么折腾,这款工具或许值得你试试。从这个版本后就不支持SSH连接了。
2024-12-28 13:01:38
579
原创 分享几个实用的 Git 技巧
可以这么说,Git在一定程度上拯救了很多开发者的饭碗。只要你经常使用Git保存自己的工作,你就一直有机会可以将代码退回到之前的状态,因此就可以挽回那些你深夜里迷迷糊糊犯下的错误。但是Git的命令行界面可是出了名的难掌握。接下来,就给大家介绍7个比较实用的小技巧,最大限度发挥Git的作用。通常,大部分时间我们都只会用到add、commit、branch和push/pull这些命令。大部分人熟悉这套只往一个方向运转的工作流。
2024-12-27 17:32:30
602
原创 Dockerfile构建SpringBoot镜像并推送到docker公共镜像仓库Docker-hub
前期准备工作主要有:准备好必要的环境,确保安装了docker,以及有一个Spring boot项目。tips:本文所有操作均在宿主机上的 VMware (centos 7)中进行.
2024-12-27 09:21:08
633
原创 你知道Redis的3种读写策略吗?
当看到这个标题的时候,你是否在想redis有哪三种读写策略,一时之间能否一下脱口而出对应的策略,如果不清除这些可能是我们在学习 Redis 的时候,只是简单写了一些 Demo,并没有去关注缓存的读写策略,或者说压根不知道这回事。但是,搞懂 3 种常见的缓存读写策略对于实际工作中使用缓存以及面试中被问到缓存都是非常有帮助的!下面介绍到的三种模式各有优劣,不存在最佳模式,需要根据具体的业务场景选择适合自己的缓存读写模式。
2024-12-26 17:49:24
1053
python屏幕截图小工具
2024-12-24
python实现的摸鱼小工具
2024-12-24
python添加水印小工具
2024-12-24
如何排查CPU爆百的问题?
2022-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人