反钉党
码龄3年
求更新 关注
提问 私信
  • 博客:15,594
    15,594
    总访问量
  • 25
    原创
  • 99
    粉丝
  • 89
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
加入CSDN时间: 2022-09-22

个人简介:JAVA农

博客简介:

m0_73879914的博客

查看详细资料
个人成就
  • 获得244次点赞
  • 内容获得0次评论
  • 获得254次收藏
  • 博客总排名52,802名
  • 原力等级
    原力等级
    3
    原力分
    234
    本月获得
    1
创作历程
  • 20篇
    2025年
  • 5篇
    2024年
成就勋章
TA的专栏
  • docker运行各种中间件
    1篇
  • Spring源码阅读系列
    1篇

TA关注的专栏 2

TA关注的收藏夹 0

TA关注的社区 13

TA参与的活动 0

兴趣领域 设置
  • 编程语言
    javac++c语言
  • 后端
    springspring boot
创作活动更多

新星杯·14天创作挑战营·第13期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛!注: 1、参赛者可以进入活动群进行交流、互相鼓励与支持(开卷),虚竹哥会分享创作心得和涨粉心得,答疑及活动群请见:https://bbs.csdn.net/topics/619781944 【进活动群,得奖概率会更大,因为有辅导】 2、文章质量分查询:https://www.csdn.net/qc

90人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

栈和队列的奇妙冒险:用栈实现队列

通过使用两个栈,我们成功地实现了队列的功能。这种实现方式不仅巧妙,而且效率也很高。就像用咖啡杯当茶壶一样,虽然不是最常规的方法,但只要能倒出好茶,又有什么关系呢?下次当你遇到只能用栈的场景,却需要队列的功能时,不妨试试这个方法,说不定会给你带来惊喜哦!好了,今天的代码奇幻冒险就到这里,我们下次再见!
原创
博文更新于 2025.06.08 ·
469 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

微服务发布策略:从稳如老狗到骚操作,你 pick 哪一种?

没有完美的策略,只有适合的方案~比如你可以「灰度 + 滚动」组合拳:先 10% 流量灰度测试,没问题再滚动发布剩下的 90%,风险和成本我全都要!下次上线前,记得先选对策略,让发布像开盲盒一样期待,而不是像拆炸弹一样紧张~ ✌️。
原创
博文更新于 2025.06.07 ·
875 阅读 ·
15 点赞 ·
0 评论 ·
20 收藏

关闭函数闭包的理解

为什么说几乎支持闭包的语言,都是拥有GC的呢?这是因为闭包捕捉了函数的局部变量放在了【小背包】里面,这个变量不会随着函数调用栈返回被销毁,而是随着闭包生命结束而销毁。关键在于【捕获】外部作用域的变量,并将其【封装】在函数内部,就像函数自带了一个【小背包】,走到哪里都能访问到这些变量。闭包的体现形式通常是:函数作为返回值,并且这个返回函数里面引用了外部函数的局部变量。闭包通俗来说,就是:可以捕获并记住外部变量。几乎所有支持GC的语言都有闭包的概念。
原创
博文更新于 2025.06.02 ·
171 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

docker运行Redis

【代码】docker运行Redis。
原创
博文更新于 2025.05.19 ·
269 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

异步记录用户操作日志

为了记录用户操作日志以便排查问题,本文提出了一个基于数据库和切面编程的解决方案。首先,设计了一个sys_log数据库表,用于存储日志信息,包括模块、用户信息、请求详情、错误信息等。接着,定义了一个SysLogAop注解,用于标记需要记录日志的方法,并支持自定义模块名称、日志标题等参数。最后,通过SysLogAspect切面类,在方法执行前后自动记录日志,包括请求参数、返回结果、异常信息等。该方案通过异步服务AsyncSysLogService将日志保存到数据库,确保日志记录不影响主业务流程。
原创
博文更新于 2025.05.19 ·
379 阅读 ·
9 点赞 ·
0 评论 ·
4 收藏

Docker运行MySQL

该命令用于在Docker中启动一个MySQL 8.0容器,并进行相关配置。容器命名为mysql,并设置为自动重启。端口3306映射到主机的3306端口,以便外部访问。通过挂载卷,将MySQL的数据、配置和日志目录分别映射到主机的指定路径,确保数据持久化。环境变量配置了MySQL的根密码为root,并创建了一个名为myapp的数据库。时区设置为Asia/Shanghai,确保时间与本地一致。该命令适合在开发或生产环境中快速部署MySQL服务。
原创
博文更新于 2025.05.18 ·
129 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Redis底层数据结构实现

当我们向压缩列表插入数据的时候,压缩列表会根据数据类型是字符串还是整数,以及数据的大小,会使用不同空间大小的prevlen和encoding这两个元素里保存的信息,这种根据数据大小和数据类型进行不同的空间分配的设计思想 ,目的是为了节省内存。整数集合会有一个升级规则,就是当我们将一个新元素加入到整数集合里面,如果新元素类型比整数集合现有所有元素类型都要长的时候,整数集合就会进行升级,也就是按新的元素类型来扩展当前元素的大小,然后再把新元素加入到整数集合中。跳表相邻两层节点数量的比例会影响跳表的查询性能。
原创
博文更新于 2025.03.28 ·
1111 阅读 ·
19 点赞 ·
0 评论 ·
20 收藏

MySQL执行计划分析

执行计划就是一条SQL语句在经过MySQL查询优化器优化之后,具体的执行方式。执行计划通常用于SQL性能查询,优化等场景。可以通过EXPLAN命令,查看一条SQL的具体执行信息。
原创
博文更新于 2025.03.26 ·
960 阅读 ·
20 点赞 ·
0 评论 ·
19 收藏

MySQL锁

如果查询的记录存在:由于索引不唯一,肯定存在相同的记录,在扫描到的符合条件的二级索引加next-key lock,对于第一个不符合条件的二级索引记录,该二级索引记录的next-key lock会退化成间隙锁。由于存在两个索引,主键索引和非唯一索引,所以加锁的时候,会同时对两个索引加锁,但是对主键索引加锁的时候,只有满足查询条件的记录才会加锁。如果查询的记录不存在:扫描到的第一个不符合条件的非唯一索引记录,该索引的next-key lock会退化成间隙锁,不会对主键加锁。求职者:你录用我,我就告诉你。
原创
博文更新于 2025.03.26 ·
935 阅读 ·
7 点赞 ·
0 评论 ·
14 收藏

Redis持久化机制

Redis使用写时复制技术,在执行bgsave的时候,会先fork子进程,然后子进程和父进程共享一块内存区域,但是,如果父进程对这些共享数据中的某块数据进行写操作的时候,就复制一块数据副本,主线程会在这个数据副本进行修改操作。fork出来的子进程会将主线程共享的内存数据以RDB方式写入AOF文件,然后将AOF重写期间执行的操作命令写入重写缓存区里,然后再把重写缓冲区的命令写如到AOF文件,写入完成之后通知主进程将含有RDB信息和AOF信息的AOF文件替换成旧的AOF文件。实际执行的是bgsave。
原创
博文更新于 2025.03.26 ·
347 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

从数据库角度看B+Tree,B+Tree相关面试题

InnoDB的数据是按照页进行存取的。每页默认大小是16KB,每个数据页之间通过双向链表的形式组织起来。页内的记录通过单向链表按照主键递增连接。B+Tree的每个节点就是一个页(数据页和索引页)。MySQL表数据量不超过2000w行,是因为超过2000w之后,B+Tree的高度可能会更高(3层到4层),数据库I/O次数就会更多,影响查询性能。
原创
博文更新于 2025.03.24 ·
239 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

MySQL索引相关面试题

索引就是帮我们快速查找的一种数据结构。形象的说就是索引就是数据库的目录。索引位于存储引擎中。前缀索引是对字符类型字段的前几个字符建立的索引,而不是整个字段。将多个字段组合成一个索引。联合索引遵循最左匹配原则,B+tree的节点存储的是联合索引的字段。先按照左边第一个字段进行比较,如果相同,再按照左边第二个字段进行比较,以此类推。如果不遵循最左匹配原则,索引就会失效。注意,因为有查询优化器,a字段在where子句的顺序不重要。上面的索引都会生效。就会索引失效。
原创
博文更新于 2025.03.24 ·
351 阅读 ·
4 点赞 ·
0 评论 ·
8 收藏

Java内存区域

程序计数器是一块较小的空间,可以看作是当前线程所执行的字节码的行号计数器。字节码解释器工作的时候通过改变这个计数器的值来选取下一条所需执行的字节码指令。程序计数器是唯一不会出现的内存区域,随着线程创建而创建,线程消亡而消亡。和程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期和线程相同,随着线程创建而创建,线程消亡而消亡。除了一些本地方法是通过本地方法栈实现的,其它所有方法调用都是通过栈实现的。方法调用的数据通过栈传递,称为压栈。每个方法调用结束之后,都有一个栈帧弹出。栈由一个个栈帧。
原创
博文更新于 2025.03.23 ·
748 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

Java+Redisson封装高效的幂等性组件,简单易用

*幂等(Idempotent)**是一个数学和计算机科学中的概念,主要描述的是一种属性,即一个操作可以被多次应用,但结果仍然保持不变。在数学中,幂等通常用于描述某些运算或函数的特性。例如,对于单目运算,如果一个运算对于在范围内的所有数,多次进行该运算所得的结果和进行一次该运算所得的结果相同,那么该运算就是幂等的。在双目运算中,如果当参与运算的两个值是等值的情况下,运算结果与参与运算的两个值相等,那么该运算也是幂等的。
原创
博文更新于 2025.03.18 ·
180 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

MySQL日志八股

Statement直接记录原sql,Row模式会记录具体的变更的信息,Mixed模式是两者混合,MySQL5.7.7之后默认是Row模式。
原创
博文更新于 2025.03.17 ·
763 阅读 ·
15 点赞 ·
0 评论 ·
16 收藏

Java集合面试八股

Java集合面试八股
原创
博文更新于 2025.03.15 ·
625 阅读 ·
21 点赞 ·
0 评论 ·
13 收藏

JAVA基础面试八股

JAVA基础八股
原创
博文更新于 2025.03.15 ·
683 阅读 ·
21 点赞 ·
0 评论 ·
7 收藏

建造者模式

建造者模式中,有三个重要的角色:创建者、构建工具包、物料。
原创
博文更新于 2025.02.27 ·
294 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

直接在命令行中使用的翻译工具,不用每次打开浏览器翻译了

private static final String SECURITY_KEY = “你的百度密钥”;private static final String APP_ID = “你的百度appid”;// 在百度翻译开发平台申请的APP ID和密钥。java “中文/英文” zh/en。
原创
博文更新于 2025.01.15 ·
255 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

雪花算法详解及利用Redis生成分布式ID

SnowFlake算法是Twitter开源的分布式ID生成算法。核心思想就是:使用一个64 bit的 long 型的数字作为全局唯一ID。算法中还引入了时间戳,基本上保证了自增特性。其特点是将64位的long型ID分为四个部分,分别为:时间戳、机器ID和序列号,详情查看结构图1个bit41个bit10个bit12个bit特点优点缺点注意。
原创
博文更新于 2025.01.11 ·
1132 阅读 ·
18 点赞 ·
0 评论 ·
13 收藏
加载更多