自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

常备不懈

学海无涯,乐在其中

  • 博客(244)
  • 资源 (3)
  • 收藏
  • 关注

原创 复杂SQL查询案例分析:计算每个月的累积唯一用户数

复杂SQL查询案例分析:计算每个月的累积唯一用户数

2024-08-14 22:04:28 429

原创 Linux Shell:stty 命令

`stty` 是 Linux 中一个非常有用的命令,用于修改和显示终端设备的设置。终端设置涵盖了各种控制字符、输入和输出模式以及其他终端驱动程序的行为。掌握 `stty` 可以帮助我们定制终端的行为,使其更符合我们的需求。

2024-08-11 20:11:23 509

原创 如何在电商系统中处理超卖问题

电商秒杀的超卖问题,其实往大了说主要就是要解决常见的购物网站上经常出现的团购、秒杀、特价等活动会出现的一个共同问题:短时间内大量并发请求的情况下,需要保证商品的销售量不会超过库存量。类似的问题也可以改成 12306 抢票如何保证不抢超过票数等,其实解决的思路都是类似的。

2024-08-11 19:59:29 456

原创 使用 `grep` 命令的常用方式

`grep` 是一个强大的命令行工具,用于在文件中搜索文本。无论是程序员、系统管理员还是普通用户,都可以通过 `grep` 快速定位需要的信息。本文将介绍 `grep` 命令的一些常用方式,并给出相应示例的执行结果。

2024-08-09 19:53:21 646

原创 MySQL的窗口函数

窗口函数(Window Functions)是MySQL提供的一种高级查询功能,允许用户对结果集的某些行进行计算。不同于聚合函数,窗口函数不会将行合并到一组中,而是能够保留原始行的数据,并且还能基于当前行以及相邻行的值来进行计算。

2024-08-09 08:00:00 999

原创 MySQL in查询数量过多时如何优化

在MySQL中,使用`IN`查询可以方便地筛选出匹配多个条件的记录。然而,当`IN`查询的条件数量过多时,可能会导致查询性能下降。

2024-08-08 08:30:00 1376

原创 常用的JVM参数介绍

Java虚拟机(JVM)参数在调优和配置Java应用程序的运行环境中起着至关重要的作用。合理配置JVM参数可以提高应用程序的性能和稳定性。本文将介绍一些常用的JVM参数及其作用。

2024-08-08 08:00:00 728

原创 Token设计:Access Token和Refresh Token

在现代Web应用中,身份验证和授权是确保安全性的关键部分。Access Token和Refresh Token是用于这一过程的重要组件。

2024-08-07 08:30:00 705

原创 使用 Passay 生成和验证密码

Passay 是一个功能强大的 Java 库,专门用于密码生成和验证。本文将详细介绍 Passay 的使用方法,包括密码生成和密码验证的具体实现步骤。

2024-08-07 08:00:00 457

原创 横向对比几个MQ开源框架

消息队列(Message Queue, MQ)在分布式系统中扮演着至关重要的角色,用于解耦系统组件并提高系统的可扩展性和可靠性。目前市场上有多个开源的MQ框架,下面我们将横向对比几款常见的MQ开源框架:RabbitMQ、Apache Kafka、ActiveMQ 和 RocketMQ。

2024-08-06 08:30:00 1298

原创 RabbitMQ中如何防止消息堆积的情况发生?

消息堆积是消息队列系统中常见的问题,尤其是在高负载环境下。RabbitMQ作为一个流行的消息代理系统,也不可避免地会遇到这种情况。

2024-08-06 08:00:00 966

原创 如何在RabbitMQ中防止消息丢失

在分布式系统中,消息的可靠传递是至关重要的。RabbitMQ作为一个强大的消息队列系统,提供了多种机制来确保消息不会丢失。本文将介绍在RabbitMQ中防止消息丢失的几种方法。

2024-08-05 09:30:00 249

原创 MySQL `FIND_IN_SET`函数详解

MySQL的`FIND_IN_SET`函数是一个用于查找字符串在逗号分隔的字符串列表中的位置的有用函数。在处理存储为逗号分隔字符串的枚举类型数据时,`FIND_IN_SET`特别有用。本文将详细介绍该函数的使用方法及其应用场景。

2024-08-05 09:00:00 562

原创 Redis的缓存击穿,缓存雪崩,缓存穿透问题

在分布式系统中,缓存是一种常用的提升性能和减轻数据库压力的手段。然而,缓存系统也存在一些常见的问题,如缓存击穿、缓存雪崩和缓存穿透。这些问题如果不加以解决,可能会导致系统性能下降,甚至崩溃。本文将详细介绍这三个问题是如何发生的,并说明在Spring开发框架中的解决方案。

2024-07-02 08:31:40 706 1

原创 Spring Cacheable 注解

在Spring框架中,缓存是一种提高应用程序性能的重要技术手段。`@Cacheable`注解是Spring Cache中最常用的注解之一,它用于将方法的返回值缓存起来,以便后续调用时直接从缓存中获取,而不是再次执行方法。本文将详细介绍`@Cacheable`注解的使用方法及其工作原理。

2024-07-02 08:30:50 1312

原创 分布式限流:Spring Cloud Gateway 限流

在现代微服务架构中,流量控制是一个至关重要的部分。分布式限流作为一种有效的流量控制手段,能够帮助我们保护系统不被突发的流量冲垮。Spring Cloud Gateway支持多种限流方式。

2024-07-01 08:45:10 538

原创 分布式事务:理论与实践

在现代分布式系统中,分布式事务是一种确保跨多个独立系统的一致性和完整性的方法。本文将介绍分布式事务的基本概念、实现方式、在Java中的具体实现以及在实际应用中的案例。

2024-07-01 08:44:26 980

原创 关于Redisson分布式锁的用法

Redisson是一个基于Redis的Java分布式对象和服务框架,它提供了多种分布式锁的实现,包括可重入锁、公平锁、读写锁等。Redisson实现分布式锁的核心原理主要依赖于Redis的数据结构和Redisson框架提供的高级功能。

2024-06-30 09:58:22 568

原创 详细解释Redis的SET NX命令

`SET NX` 命令是 Redis 中用于实现分布式锁的一个重要命令。

2024-06-30 09:57:35 1463

原创 分布式锁及其实现与应用场景

分布式锁是一种用于在分布式系统中协调多个进程或线程对共享资源进行访问的机制。它的主要目的是确保在同一时间只有一个进程或线程可以访问特定资源,从而避免数据竞争和不一致问题。分布式锁通常用于集群环境中,例如微服务架构或多实例应用中,以实现数据一致性和系统的高可用性。

2024-06-29 12:22:41 1014

原创 自定义一个MyBaits脱敏插件

用于对查询结果中的敏感数据进行脱敏处理。这个插件将拦截`ResultSetHandler`对象的处理结果,对某些敏感字段进行脱敏。

2024-06-29 12:21:23 394

原创 乐观锁和悲观锁(MySQL和Java)

在并发编程中,为了确保数据的一致性和完整性,我们通常需要使用锁机制来控制对共享资源的访问。锁主要分为两种:乐观锁和悲观锁。本文将详细介绍这两种锁的概念、工作原理以及它们的优缺点。

2024-06-28 08:25:30 962

原创 MySQL丢失更新问题的出现和解决

丢失更新问题(Lost Update)指的是两个或多个事务在读同一数据并基于此数据进行更新操作时,某些更新操作被覆盖或丢失。例如,事务A和事务B都读取了某个数据,然后事务A更新了该数据,而事务B在没有意识到事务A的更新的情况下,也更新了该数据,导致事务A的更新被覆盖。

2024-06-28 08:24:41 1532

原创 MySQL的隔离级别详解

MySQL是一个广泛使用的关系数据库管理系统,其事务处理能力是其核心功能之一。事务处理中的隔离级别决定了一个事务在读取或写入数据时如何受到其他并发事务的影响。MySQL提供了四种标准的隔离级别,每种隔离级别在性能和一致性之间做出了不同的权衡。下面详细解释这四种隔离级别及其特点。

2024-06-27 12:33:15 1241

原创 详细解释Spring事务的传播机制

Spring框架中,事务传播机制是指在一个事务方法调用另一个事务方法时,Spring如何管理这些方法之间的事务边界。Spring提供了七种事务传播行为,以满足不同的业务需求。下面将详细解释每种传播行为及其适用场景,并探讨在特定情况下事务的行为。

2024-06-27 12:32:22 1243

原创 MySQL锁和使用

在MySQL中,锁用于控制并发访问,以保证数据的一致性和完整性。MySQL提供了多种类型的锁,包括表级锁、行级锁和页面级锁。以下是MySQL中各种锁的详细介绍及其使用方法:

2024-06-26 09:38:14 578

原创 如何在SpringBoot中自定义starter

Spring Boot 提供了一种简便的方法来创建自定义的 starter,从而帮助开发者封装常用的配置和依赖。本文将介绍如何在 Spring Boot 中自定义一个 starter。

2024-06-25 17:56:04 539

原创 深入了解MySQL的哈希索引

哈希索引是一种基于哈希表的数据结构,通过对索引键值进行哈希运算,直接定位存储位置,从而实现快速数据访问。哈希索引在等值查询中表现尤为出色,但不适用于范围查询。虽然哈希索引在某些场景下可以显著提升查询性能,但也存在哈希冲突和内存消耗较大等局限性。

2024-06-25 17:55:04 1413

原创 SpringBoot 过滤器和拦截器的区别

Spring拦截器(Interceptor)和过滤器(Filter)是Spring框架中用于处理请求的两种机制,虽然它们都可以在请求处理的不同阶段进行拦截和处理,但它们的工作原理和应用场景有所不同。以下是它们的主要区别:

2024-06-23 08:15:00 763

原创 什么是循环依赖?

循环依赖(Circular Dependency),也称为循环引用,是指两个或多个Bean之间相互依赖,形成一个环状依赖链。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A,这就形成了一个简单的循环依赖。

2024-06-23 08:00:00 766

原创 了解Spring的BeanPostProcessor

Spring框架提供了一种机制,允许在Spring容器实例化Bean之前和之后进行自定义的修改。这个机制就是`BeanPostProcessor`接口。`BeanPostProcessor`是Spring的核心接口之一,用于在Spring容器创建和初始化Bean的过程中进行干预和自定义处理。

2024-06-22 08:15:00 935

原创 Spring Bean 生命周期详解

在 Spring 框架中,Bean 的生命周期由 Spring 容器全权管理。了解和掌握 Bean 的生命周期对于使用 Spring 开发稳定且高效的应用程序至关重要。本文将详细介绍 Spring Bean 生命周期的五个主要阶段:实例化、属性注入、初始化、使用和销毁,并涵盖各个阶段的关键步骤和扩展点。

2024-06-22 08:00:00 1437

原创 理解Spring Bean的作用域

在Spring框架中,Bean的作用域决定了Bean的生命周期及其可见性。Spring提供了几种不同的Bean作用域,以便开发人员根据特定的应用程序需求来管理Bean的创建和使用。本文将详细介绍Spring Bean的各种作用域,包括它们的特点和适用场景。

2024-06-21 08:15:00 1084

原创 synchronized(this) 写法的利弊分析

`synchronized` 关键字用于同步代码块,以确保在同一时间只有一个线程可以执行该代码块。`synchronized(this)` 是一种特殊的用法,它使用当前对象实例 (`this`) 作为锁。

2024-06-21 08:00:00 357

原创 了解Java并发同步框架:AQS(AbstractQueuedSynchronizer)

AQS(AbstractQueuedSynchronizer)是Java并发编程中一个重要的同步框架,提供了一个实现锁和其他同步器的基础。它通过FIFO队列来管理线程的争用,为开发者提供了便捷且高效的工具来实现自己的同步器,如ReentrantLock, CountDownLatch等。

2024-06-20 08:15:00 790

原创 了解ForkJoin框架

Fork/Join框架是Java 7引入的一种并行处理框架,用于有效地利用多处理器系统的计算资源。该框架通过将大任务拆分成多个子任务,并行处理这些子任务,最终将子任务的结果合并,以提高程序的执行效率。本文将介绍Fork/Join框架的基本概念、工作原理及其应用场景。

2024-06-20 08:00:00 498

原创 了解Java的CAS操作

CAS(Compare-And-Swap)是一种原子操作,用于实现无锁(lock-free)并发编程。它的主要作用是在多线程环境下保证数据的一致性。CAS操作比较某个内存位置的当前值是否与预期值相等,如果相等,则更新为新值,否则不做任何操作。

2024-06-19 08:15:00 534

原创 深入了解Java的CopyOnWriteArrayList类

在Java的并发编程中,`CopyOnWriteArrayList`类是一个特殊的列表实现,旨在提供一种线程安全的读操作无锁并发访问。这种实现的基础理念是在写操作时创建一个新的数组副本,从而使得读操作不会被写操作阻塞或影响。本文将详细探讨`CopyOnWriteArrayList`的工作原理、使用场景以及其优缺点。

2024-06-18 09:24:26 483

原创 Java阻塞队列:DelayQueue

在Java的并发编程中,阻塞队列是一种非常有用的数据结构,它不仅提供了线程安全的队列操作,还在必要时会自动阻塞获取操作,直到队列变得不为空。本文将重点介绍一种特殊的阻塞队列——`DelayQueue`,它在处理带有延迟时间的元素方面非常有用。

2024-06-18 09:22:49 339

原创 Java阻塞队列:PriorityBlockingQueue

在Java的并发编程中,阻塞队列是一种非常重要的数据结构。它不仅能在多线程环境下安全地进行数据交换,还能在需要时自动阻塞或唤醒线程。本文将详细介绍阻塞队列中的一种重要实现——`PriorityBlockingQueue`。

2024-06-17 09:13:52 557

Flex 布局速查手册-阮一峰

Flex 布局速查手册-阮一峰

2024-01-25

GitKraKen-6.5.1-main.zip

用过 GitKraken 都说好,不过,GitKraken 从 6.5.3 版本开始收费,它的最后一个免费版本是 6.5.1 ,当你使用收费版本而又未付费时,使用 GitKranken 将无法打开私有仓库,这就约等于无法使用了。

2023-08-31

表面网络,深网和暗网介绍.pdf

互联网浩滩无边。 成干上万的网页、 数据库和服务器日以继夜地运行着。 但在这其中, 我们所说的可见互联网(亦称为表面网或开放网络),也就是能够使用类似Google和Yahoo这样的搜索引擎找到的网站只是冰山一角。围绕这个不可见的网络, 存在着大量名词术语, 但如果您打算逛逛这片人迹罕至的区域, 就有必要知道它们之间有何区别。

2023-08-31

文件处理程序-转移指定文件-v0.4

* 请按照以下提示输入需要的操作 * * 1. 文件转移类操作 * * 11 - 转移此文件夹下所有视频文件 * * 12 - 转移此文件夹下所有图片文件 * * 13 - 转移最底层文件夹到此目录 * * 2. 文件增删改类操作 * * 21 - 删除所有内容为空的文件夹 * * * * * * * * * * * * * * * * * * * 请输入:

2023-08-31

Xftp-6.0.0185p.exe.7z

Xftp6个人版,亲测有效。有任何问题,欢迎随时咨询

2020-09-02

Xshell6个人版,本人自己在用。解压即可使用。亲测有效。

Xshell6个人版,亲测有效。有任何问题,欢迎随时咨询,QQ:965580903 Xshell6个人版,亲测有效。有任何问题,欢迎随时咨询,QQ:965580903

2020-09-02

空空如也

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

TA关注的人

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