自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring状态机(讲解+实战)

本文介绍了使用Spring StateMachine实现订单状态机的实战案例。通过定义订单状态枚举(待支付、待发货等)和事件枚举(支付、发货等),配置状态流转规则,实现了订单状态的有序变更。核心处理类OrderStateMachineHandler负责管理状态机实例和状态转换,确保线程安全并持久化状态到数据库。项目采用三层架构,包含配置类、实体类、服务层和控制器,提供了创建订单和状态变更的REST接口。该方案解耦了业务逻辑与状态流转,适用于电商等需要严格状态管理的场景。

2025-07-18 11:26:58 852

原创 Java中枚举类的用法

Java枚举类是一种实例数量固定的特殊类,包含枚举值、属性和方法。通过@Getter和@RequiredArgsConstructor简化代码后,示例展示了枚举值定义和静态Map初始化过程。其中,静态代码块将枚举值存入以name为键的Map,并提供getByName方法通过name获取对应枚举值。这种实现方式不仅代码简洁,还支持多种匹配方式,只需创建不同的Map即可。

2025-07-06 11:25:47 224

原创 配置文件注入属性值

本文介绍了Spring框架中配置属性值的三种方法:首先通过配置文件定义属性值,其次使用@Value注解进行依赖注入,最后通过测试验证配置的正确性。这三种方式构成了Spring应用配置管理的基本流程,确保属性值能够正确加载和使用。

2025-06-30 11:38:15 229

原创 Java的线程池简单使用

本文展示了如何通过线程池优化多线程任务执行效率。首先创建了一个配置类MyThreadPoolConfiguration,定义了一个包含10个核心线程的ThreadPoolExecutor。然后通过测试类比较了单线程和线程池执行30个耗时任务(每个任务休眠1秒)的性能差异。测试结果显示:单线程执行耗时约30秒,而线程池仅需3秒,提速约10倍(与核心线程数相关)。这证明了线程池在多任务处理中的高效性,通过复用线程资源显著减少了任务执行时间。

2025-06-22 11:48:37 258

原创 IO多路复用

select 和 poll 是传统的 I/O 多路复用机制,但它们存在一些缺点。select 的主要问题是文件描述符数量有限,且每次调用都需要遍历所有描述符,效率较低。poll 解决了文件描述符数量限制的问题,但仍需遍历所有描述符,性能依然不高。epoll 则进一步优化了这些问题,它通过事件驱动的方式,只关注活跃的文件描述符,避免了不必要的遍历,显著提高了性能。此外,epoll 还支持边缘触发和水平触发两种模式,提供了更灵活的事件处理机制。因此,epoll 在处理大量并发连接时表现更为出色。

2025-05-22 19:14:57 177

原创 腾讯一面+二面总结

博主总结了腾讯一面中Java面C++岗的面试经验,主要涉及项目、操作系统、计算机网络和算法等方面。在项目中,博主强调了数据库表设计的重要性,并分享了如何处理订单支付一致性、短信发送幂等性以及限流设计等问题的解决方案。操作系统部分讨论了进程、线程、协程、死锁条件、虚拟内存与物理内存映射等内容。计算机网络方面,博主提到了视频面试中使用的协议、HTTPS四次握手过程及其安全性问题。算法部分则包括括号匹配、最长递增子序列和版本号比较等题目。整体面试内容较为全面,涵盖了技术面试的多个核心领域。

2025-05-20 14:12:29 412

原创 分布式锁原理

锁是确保线程互斥访问共享资源的机制,Redis通过setnx实现加锁,解锁时需确保当前线程持有锁,并通过Lua脚本保证原子性。为避免线程挂起导致锁无法释放,锁需设置过期时间。为防止业务未完成锁超时释放,引入看门狗机制定时续期。锁的重入性允许同一线程多次获取锁,synchronized和ReentrantLock通过计数器实现。分布式锁通过Redis的hsetnx实现,使用线程ID和UUID作为字段,重入次数为值。阻塞线程通过自旋或订阅发布机制获取锁。主从节点不同步可能导致锁信息丢失,红锁机制要求半数以上节点

2025-05-10 18:46:45 428

原创 2023华为od机试C卷【跳格子3】

博主刷的华为机考题,代码仅供参考,因为没有后台数据,可能有没考虑到的情况。

2025-05-03 14:23:33 316

原创 华为OD机试真题 Java 实现【水库蓄水问题】

博主刷的华为机考题,代码仅供参考,因为没有后台数据,可能有没考虑到的情况。

2025-05-02 23:48:25 367

原创 2023华为od统一考试B卷【二叉树中序遍历】

博主刷的华为机考题,代码仅供参考,因为没有后台数据,可能有没考虑到的情况。

2025-05-02 20:58:31 871

原创 字节一面:后端开发

博主的字节一面总结

2025-05-01 18:09:37 1472

原创 大厂面试-Spring+SpringBoot+SpringCloud

环绕通知。

2025-04-25 13:38:27 499

原创 大厂面试:MySQL篇

关于mysql的常考面试题

2025-04-23 22:46:40 3036 1

原创 大厂面试-redis

本章内容来自B站大厂和小林coding博主学习笔记,如果有不对的地方,海涵。

2025-04-23 16:20:40 592

原创 大厂面试:六大排序

本篇博客集中了冒泡,选择,二分插入,快排,归并,堆排,六大排序算法。

2025-04-16 22:40:30 2246

原创 排序算法:冒泡排序

1.依次比较相邻的两个数2.将大的换到后面3.一次循环后,最大的就在最后面4.重复上面的循环。

2025-04-16 22:17:05 119

原创 消息中间件面试题

关于消息中间件的面试题

2025-04-15 22:41:23 515

原创 136. 只出现一次的数字

所有数异或,相同的异或了等于0,剩下的数就是目标。任何数和0异或等于本身。任何数异或本身等于0。

2025-04-15 15:45:31 316

原创 62. 不同路径

多维路径动态规划

2025-04-13 21:35:21 387

原创 CentOS安装docker

本文是作者学习docker的笔记包含安装,换源,验证docker,绝对好用。

2025-04-13 21:25:19 604

原创 152. 乘积最大子数组

本篇文章来自leedcode,是博主的学习算法的笔记心得。

2025-04-13 17:58:41 269

原创 最长递增子序列

动态规划法求解最长递增子序列

2025-04-13 15:25:43 207

原创 198. 打家劫舍:动态规划

本篇文章来自leedcode,是博主的学习算法的笔记心得。

2025-04-11 14:07:33 224

原创 70. 爬楼梯:动态规划

2.dp[0,1,2,3,5,8,13]---->dp[i]表示爬上第i阶的方法数。3.观察dp:dp[i]=dp[i-1]+dp[i-2];1.观察每个较少的台阶的方法。

2025-04-11 13:50:20 240

原创 763. 划分字母区间

【代码】763. 划分字母区间。

2025-04-10 17:17:48 325

原创 347. 前 K 个高频元素

【代码】347. 前 K 个高频元素。

2025-04-10 13:23:55 428

原创 数组中的第K个最大元素:堆排序

4.如果发现某个非叶子节点的左右子树的值大于它,就交换,并且将这个非叶子节点作为新的根节点,继续进行最大堆化(递归)2.index是根节点,index*2+1是左子树,index*2+2是右子树。3.遍历所有是非叶子节点,从最后开始也就是n/2-1,进行最大堆化。6.找到第k大的元素,删除k-1次根节点,再调整,就是堆顶元素。5.以上就完成了最大堆排序。1.将数组视为完全二叉树。

2025-04-09 16:34:51 518

原创 739. 每日温度

4.不是更高温,index+=res[index]也就是index的更高温。5.循环3与4,如果res[index]=0说明找不到更高温,置0。2.从后往前遍历,定义一个index为可能是离这一天的更高温下标。3.如果确实是更高闻,res[i]=index-i。1.res的最后一个数肯定是0。

2025-04-09 13:27:40 227

原创 搜索二维矩阵

将二维数组看成一个m*n长度的一维数组,利用二分法求得。mid还原坐标:i=mid/n j=mid%n。

2025-04-03 14:12:29 266

原创 79.单词搜索

1.要找到单词是否连续的出现在图中,所以用index来遍历word,x,y来遍历图。3.检查本结点是否满足要求:满足没有被搜过,且与word的对应字符相等。2.检查图中满足要求的第一位,从第一个字符开始遍历。

2025-04-02 16:01:16 334

原创 Java集合相关面试题

本章内容是java的集合相关面试题,为我的学习资料总结

2025-04-02 15:21:35 703

原创 39. 组合总和

1.因为不能返回的组合不能重复,因此,应该用index数组下标来便利,防止重复。2.对于某个数来说有两种选法:不选,选(可以多选)

2025-04-02 10:59:15 301

原创 JVM相关面试题

年轻代被划分为三部分,Eden区和两个大小严格相同的Survivor区,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移动到老年代区间。老年代主要保存生命周期长的对象,一般是一些老的对象常量池是 *.class 文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址多次执行。

2025-04-01 22:16:59 545

原创 LeetCode:子集

选出全部子集,那么对于每个元素都拥有。在dfs中对两种状态分别递归。

2025-04-01 19:34:33 295

原创 Java后端线程面试笔记

本章内容是Java后端的高频线程面试题,是博主学习和总结的

2025-03-31 22:35:08 1022

原创 课程表:拓扑排序

C:遍历队首元素,指向的节点入度-1。判断有向图中是否存在环。

2025-03-31 15:34:07 141

原创 二叉树展开为链表

【代码】二叉树展开为链表。

2025-03-27 16:45:31 225

原创 二叉树的右视图

给定一个二叉树的root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

2025-03-27 15:53:44 169

原创 数组转二叉搜索树

如果将一个升序的数组转化为二叉搜索树,代码如下。

2025-03-26 16:00:20 233

原创 层次遍历二叉树

【代码】层次遍历二叉树。

2025-03-26 15:29:35 162

空空如也

空空如也

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

TA关注的人

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