- 博客(62)
- 收藏
- 关注
原创 ✨Java网络IO模型✨分析与实现
本篇文章会对Java中的网络IO模型的概念进行解释,并给出具体的Java代码实现,最后会对同步和异步,阻塞和非阻塞进行概念总结
2025-02-13 09:51:45
686
原创 ✨五分钟速览✨MySQL的锁
MySQL的锁是一个老生常谈的东西了,最近由于不让使用Redis,但是又必须要使用分布式锁,所以就基于MySQL实现了一个分布式锁,正好就回顾了一下MySQL里面的锁知识,做一个总结,与君共勉
2025-02-12 09:44:01
977
原创 ✨JDK21✨虚拟线程彻底杀死响应式编程
在2023年9月19日正式发布的JDK21引入了虚拟线程,其是一种轻量化的用户线程,让JAVA中的线程实现了从内核线程向用户线程的切换
2025-02-10 09:48:02
864
原创 ✨五分钟速览✨MySQL的索引失效
使用MySQL时,明明数据没有很多,明明条件列添加了索引,但是为啥查询就越来越慢了呢。通常这就是出现了索引失效,为了让大家更能理解索引失效的场景,本文将基于一个简单的例子,对可能出现索引失效的场景进行分析,并给出相应解决方案,也许这才是面试官期望听到的索引失效
2025-02-07 16:07:33
793
原创 ✨快速搭建✨DeepSeek本地RAG应用
由深度求索开源的DeepSeek-R1推理模型在性能上已经能够对标OpenAI-o1正式版,正巧马上大年初四轮到我值班处理告警,突发奇想能不能让DeepSeek-R1来帮我识别告警并结合之前同事们处理告警时的记录信息来合理给出处置建议
2025-02-06 09:24:05
1166
原创 ✨唯一索引✨实现幂等却引发生产事故
最近公司发生了一起生产事故,在退款时产生了重复退款,事件报告中指出是因为针对重复MQ消息做幂等控制时,幂等控制方案失效,导致重复处理了两条退款消息,最终造成重复退款
2025-02-05 09:55:30
979
原创 ✨糟糕的✨响应式编程
响应式编程绝对是最糟糕的编程范式,没有之一,特别是在JDK21虚拟线程出现后,响应式编程框架以及WebFlux则彻底沦为小丑
2025-01-29 11:03:34
1056
1
原创 ✨探究Spring之✨@Conditional注解
已知@Conditional注解用于指定能够注册为容器中的bean的条件,那么本篇文章将结合示例工程,从源码入手,分析@Conditional注解
2025-01-29 11:03:06
1016
1
原创 ✨探究✨GO的切片原理
GO语言中的切片使用起来极其丝滑,号称Java中的List怎么用,切片就怎么用,作为一名Java选手,这切片简直就是我的舒适区呀,结果就是出意外了,因为切片使用不当,喜提缺陷
2025-01-22 09:57:09
913
原创 ✨MyBatis✨整合Springboot多数据源实现
数据源,实际就是数据库连接池,负责管理数据库连接,在Springboot中,数据源通常以一个bean的形式存在于IOC容器中,也就是我们可以通过依赖注入的方式拿到数据源,然后再从数据源中获取数据库连接
2025-01-21 09:50:24
827
原创 ✨图解✨Redis的主从同步原理
Redis为了保证服务高可用,其中一种实现就是主从模式,即一个Redis服务端作为主节点,若干个Redis服务端作为主节点的从节点,从而实现即使某个服务端不可用时,也不会影响Redis服务的正常使用
2025-01-20 09:46:04
698
原创 ✨探究✨进程最大可以打开多少个文件
原本是想搞清楚一台服务器最多能建立多少个连接,在学习的过程中,发现能建立多少个连接受多个因素影响,其中一个因素就是进程最大可打开文件数,我在自行查阅资料加请教专门搞容器的同事后,感觉这个知识点有点意思,故撰写此文以做记录
2025-01-17 09:57:34
852
原创 ✨字节二面✨MySQL深分页如何优化
前同事刚参加完字节的二面,向我反馈了一道MySQL深分页的优化题目,起初我以为这只是一道很常规的深分页的题目,但是听完字节面试官的追问,才发现水很深
2025-01-14 09:52:11
869
原创 ✨Try-Catch✨竟然会影响性能
一朋友问我Try-Catch写多了会不会让程序变慢,我不加思索的回答肯定不会,毕竟曾经研究过Java异常相关的字节码指令,只要被Try-Catch的代码不抛出异常,那么代码执行链路是不会加深的
2025-01-13 09:51:59
614
原创 一文搞懂MyBatis测试工程搭建及与Springboot整合
本篇文章将对如何搭建一个MyBatis测试工程进行介绍,并在此基础上介绍Springboot整合MyBatis。
2023-02-04 10:25:15
683
原创 一文搞懂MyBatis中的基础概念
先对JDBC编程进行介绍,再引出对MyBatis框架的介绍。涵盖对MyBatis框架的优势分析,以及基础概念的讲解。
2023-02-03 21:56:47
392
原创 一文搞懂MyBatis中的TypeHandler
结合示例工程,对Mybatis中的类型处理器TypeHandler的定义,实现方式,生效条件进行了深入分析。
2023-02-01 20:59:29
3241
原创 PowerMock使用-Answer-Spy
针对同一方法多次被调用且不同入参需要Spy不同出参的情况,可以使用Answer。本篇文章将对Answer的使用进行说明。
2023-01-28 21:49:09
223
原创 跳表原理分析及实现
跳表可以达到和红黑树一样的时间复杂度O(logN),且实现简单,Redis中的有序集合对象的底层数据结构就使用了跳表。本篇文章将对跳表的实现进行学习。
2023-01-28 21:18:20
652
1
原创 PowerMock使用-Answer-Mock
针对同一方法多次被调用且不同入参需要Mock不同出参的情况,可以使用Answer。本篇文章将对Answer的使用进行说明。
2023-01-27 23:43:31
719
原创 PowerMock使用-Whitebox
Whitebox可以用于方便的访问类内部的各种字段和方法,是一个简单实用的基于反射的单元测试工具类。本篇文章将对Whitebox的常用方法进行介绍。
2023-01-27 23:28:03
2695
原创 PowerMock使用-依赖准备
PowerMock是一个单元测试框架,可以模拟静态方法,私有方法和final方法等来简化单元测试的编写。本篇文章将对使用PowerMock需要的依赖进行介绍。
2023-01-27 21:44:03
3531
原创 堆原理分析及优先级队列实现
堆是一颗具有特定性质的二叉树,基于堆可以实现优先级队列,在搜索,插入和删除操作上的时间复杂度均为O(logn),在找到最大或最小元素操作上的时间复杂度均为O(1)。本篇文章将对堆的原理和性质进行分析,并提供基于JAVA语言的堆的实现,最后会再基于堆,实现一个简单优先级队列。
2023-01-27 20:49:32
499
原创 JAVA线程调度机制与应用
说到并发,离不开线程这个概念,在操作系统层面有线程,在JAVA进程层面也有线程。同时还知道线程既可以共享进程资源,又可以被独立调度,那么JAVA进程的线程,也肯定存在一种调度机制。本篇文章将对操作系统的线程的三种实现方式进行说明,然后再对JAVA线程的实现方式进行阐述,最后针对JAVA线程的调度机制进行解释并结合例子说明JAVA线程调度机制的应用。
2023-01-27 12:10:33
1103
原创 线程的中断详解
JAVA中的线程,有一个状态叫做中断状态,用于标记线程是否被中断过。通过对线程中断状态的判断,可以实现一些例如优雅终止线程,唤醒线程等功能。在Thread类中有interrupt(),interrupted()和isInterrupted()方法与线程的中断有关,本篇文章将对这些方法的具体作用进行详细解释。在文章的最后,还会通过一个典型例子,演示如何通过线程的中断状态来优雅的终止线程。
2023-01-23 23:48:26
761
原创 Semaphore的使用详解
Semaphore在初始化时需要指定许可证数,Semaphore#acquire方法会尝试获取一定数量的许可证,若许可证数量不足,则当前线程进入阻塞状态。相应地,获取到了许可证的线程,在执行完毕后,需要调用Semaphore#release方法来归还许可证。
2023-01-22 20:39:09
1747
原创 并发实战-ScheduledThreadPoolExecutor使用
本篇文章将对计划线程池ScheduledThreadPoolExecutor的使用进行说明。
2023-01-18 22:09:48
872
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人