自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis学习(13)| Redisson 看门狗机制深度解析

Redisson 是一个用于 Redis 的 Java 客户端,它提供了丰富的功能来简化分布式应用的开发。其中,看门狗(Watchdog)机制是 Redisson 为了解决分布式锁过期问题而设计的一个重要特性。本文将深入探讨 Redisson 看门狗的工作原理、应用场景以及最佳实践,并提供代码示例帮助读者更好地理解和使用这一特性。

2024-12-11 21:35:08 1617

原创 Java 小抄|解析 JSON 并提取特定层级数据

在日常开发中,我们经常需要从 JSON 数据中提取特定的信息。本文将介绍如何使用 Java 和 Gson 库解析 JSON 数据,并通过流式处理提取特定层级的数据。我们将以一个具体的例子来说明这一过程。首先,我们需要定义一个 Java 类来表示预算条目。这里使用 Lombok 的@Data注解来简化类的编写

2024-12-11 21:31:52 778

原创 深入浅出:序列化与反序列化的全面解析

在软件开发中,**序列化(Serialization)** 和 **反序列化(Deserialization)** 是两个非常重要的概念。它们涉及到数据的转换、传输和存储。本文将通过通俗易懂的语言和实际代码示例,帮助读者理解这两个过程,并探讨如何在不同的编程语言和应用场景中实现它们。

2024-12-09 20:36:47 1955

原创 MySQL|通过JSON_UNQUOTE实现MySQL中JSON数据的干净提取

`JSON_UNQUOTE()` 是 MySQL 中用于处理 JSON 数据类型的一个函数。它的主要作用是从 JSON 字符串中移除最外层的引号,这对于从 JSON 对象或数组中提取字符串值特别有用。

2024-12-09 20:21:44 555

原创 Java 小抄|利用 `retainAll()` 方法实现集合间的交集

在Java编程语言中,`retainAll()` 方法是 `Collection` 接口提供的一个功能,用于从一个集合中移除那些不在另一个指定集合中的所有元素。简而言之,它实现了集合之间的交集操作。本文档将详细介绍 `retainAll()` 方法的使用方法、注意事项以及在后端开发面试中可能遇到的相关问题。

2024-12-02 21:43:38 575

原创 Apache Commons Chain 与 Spring Boot 整合:构建用户注册处理链

本文档旨在展示如何在 Spring Boot 应用中使用 Apache Commons Chain 来实现一个用户注册的处理链。我们将通过ChainBase和类来组织和管理多个处理步骤,并结合 Spring 的依赖注入和上下文管理功能,以实现一个灵活且可扩展的解决方案。为了在处理链中的每个命令之间传递和共享状态信息,我们需要创建一个继承自的自定义上下文类。这个类将包含所有与用户注册相关的属性。} }} }

2024-12-02 20:58:15 1294

原创 Hive | Hive 表如何查看所有分区

Apache Hive 是一个构建在 Hadoop 之上的数据仓库工具,它提供了 SQL 类似的查询语言(称为 HiveQL),使得用户能够更容易地进行大数据处理和分析。在 Hive 中,分区是一种优化查询性能的方法,通过将数据按照一个或多个列的值进行划分,可以显著减少查询时扫描的数据量。本文档将介绍如何在 Hive 中查看表的所有分区信息。通过上述命令,Hive 用户可以轻松地查看和管理表的分区信息,从而更好地利用分区来优化查询性能。

2024-11-26 22:25:57 2292

原创 正则|Pattern 和 Matcher 的使用与优化

在 Java 中,Pattern和Matcher是正则表达式处理的核心类。它们提供了强大的文本匹配和处理功能,广泛应用于各种文本解析和验证场景。本文将详细介绍Pattern和Matcher的使用场景、解决的问题、优缺点以及相关技术问题。Pattern类代表一个正则表达式的编译形式。它主要用于编译正则表达式,并生成一个Pattern对象,该对象可以用于创建Matcher对象来执行匹配操作。Pattern和Matcher。

2024-11-26 22:17:57 1029

原创 Spring Boot | 使用 `@Scheduled`: 定时任务的实现与优化

Scheduled是 Spring 框架提供的一个注解,用于在 Spring 管理的 Bean 中定义计划任务。它允许开发者在 Spring Boot 应用中执行周期性的后台任务,而无需使用外部任务调度器。@Scheduled注解支持多种参数来定义任务的执行规则。cron: 使用Cron表达式来定义任务的执行时间表。// 每日凌晨2点执行")fixedRate: 指定从上一次任务开始到下一次任务开始之间的时间间隔(单位为毫秒)。// 每隔5秒执行一次。

2024-09-23 21:24:43 2343 1

原创 MySQL | 使用 HAVING 子句进行高级数据筛选

SQL 中的HAVING子句用于从GROUP BY查询的结果中进一步筛选记录。当需要根据聚合函数的结果来过滤查询输出时,HAVING就变得非常有用。HAVING与WHERE类似,但WHERE子句是在分组前应用,而HAVING是在分组后应用。在 SQL 查询中,HAVING子句通常与GROUP BY子句一起使用。这里的value是一个具体的数值或表达式。

2024-09-23 21:12:52 916

原创 MySQL|MySQL 中 `DATE_FORMAT()` 函数的使用

是 MySQL 中的一个内置函数,用于格式化日期和时间数据。它可以根据指定的格式字符串来展示日期和时间,使得数据更容易阅读和理解。本文档将详细介绍函数的使用方法及其常见应用场景。

2024-09-18 21:44:21 3331

原创 Java Stream API | Java Stream API 中 `filter()`的使用

在Java 8及更高版本中引入的Stream API提供了一种功能强大的方式来处理集合数据。filter()方法是Stream API中最基本的操作之一,它允许开发者基于某些条件筛选流中的元素。本文档将详细介绍如何使用filter()方法,并提供多个示例来展示其应用。filter()方法是Stream API中的一个重要组成部分,它简化了数据筛选的过程。通过合理地运用filter()方法,开发者可以轻松地实现复杂的数据筛选逻辑,从而使代码更加简洁、易读。结合其他Stream操作,filter()

2024-09-18 21:43:53 556

原创 Java|泛型的使用

泛型(Generic)是 Java 5 引入的一项特性,它允许类、接口和方法可以处理任何类型的数据,而不必指定具体的类型。通过泛型,开发者可以编写更加通用和类型安全的代码。在不使用泛型的情况下,代码往往依赖类型转换,而这可能会导致运行时的错误。泛型提供了一种在编译时进行类型检查的机制,从而减少运行时的错误。Java 的泛型机制通过类型参数化和类型擦除提供了更高的类型安全性和灵活性。通过泛型,开发者可以编写更加通用、灵活且安全的代码,减少类型转换错误并提高代码的重用性。

2024-09-07 18:07:40 1036 1

原创 Java|Java 中 JSONPath 的使用

JSONPath 是一种用于从 JSON 数据结构中提取特定元素的查询语言,类似于 XPath 用于 XML。它提供了强大的查询功能,允许用户通过简单的表达式获取 JSON 文档中的特定数据。本文将介绍 JSONPath 的基本语法,并提供在 Java 中如何使用 JSONPath 的示例代码。JSONPath 提供了一种简便且强大的方式来查询和处理 JSON 数据。它的语法简单但功能强大,适合用于各种场景下的 JSON 数据提取。

2024-09-07 18:06:28 2638

原创 自定义 ConsoleAppender 实现日志预处理

在日志系统中,是一种常见的日志输出方式,通常用于将日志打印到控制台。在实际开发过程中,可能会有对日志输出进行预处理的需求,例如掩盖敏感信息、添加上下文信息或过滤特定的日志内容。通过扩展,开发者可以在日志输出到控制台前对日志进行自定义处理。本文将介绍如何通过继承来实现日志的预处理,并提供相关的代码示例和配置方式。是日志框架中用来将日志输出到控制台的附加器,广泛用于开发和调试场景。它的核心功能是将日志事件(如)格式化后输出到标准输出(System.out)或标准错误输出(System.err在Log4j。

2024-09-05 22:14:44 1041

原创 Java学习|Java基础知识

类: 定义一组具有相同属性和行为的对象的模板。对象: 根据类模板创建的实体。

2024-09-03 22:25:11 1064

原创 大数据学习|理解和对比 Apache Hive 和 Apache Iceberg

Hive是一个成熟的数据仓库解决方案,特别适合于批处理和数据仓库应用。Iceberg是一个更为现代的数据表格式,提供了更强的事务支持和性能优化,适用于需要更灵活数据管理和实时处理的应用场景。选择 Hive 还是 Iceberg 取决于具体的业务需求和技术背景。如果你的应用需要支持事务处理和更高的读写性能,Iceberg 可能是一个更好的选择。如果你的应用主要是批处理且对现有 Hadoop 生态系统有较高的依赖度,那么 Hive 仍然是一个可行的选择。

2024-09-03 22:22:20 1212

原创 问题复盘|nestedexceptioniscom.mongodb.MongoNotPrimaryException: Commandfailedwitherror10107(NotMaster)

遇到的问题是,这个异常通常发生在尝试执行写入操作时目标MongoDB实例不是主节点的情况。错误码10107(NotMaster)表示命令在非主节点上执行失败,因为该节点不是复制集中的主节点。

2024-08-12 21:43:11 643

原创 MongoDB | MongoDB 终端查询

MongoDB 是一个高性能、易扩展的文档型 NoSQL 数据库。本文档将指导你如何使用 MongoDB 的命令行工具`mongo` shell来查询存储在MongoDB数据库中的数据。

2024-08-12 21:33:40 1099

原创 代码重构|代码的坏味道及其重构建议

在软件开发过程中,随着项目规模的增长,代码中可能会出现一些不良的编程习惯,这些习惯被称为“代码的坏味道”。识别并消除这些坏味道是重构过程的重要组成部分。本文档将详细介绍几种常见的代码坏味道,并提供具体的重构建议。

2024-08-08 23:32:51 500

原创 代码重构|初识代码重构

重构是通过一系列小而安全的步骤来改进代码的过程。这些步骤可以是简单的重命名变量,也可以是复杂的提取方法或类。重构的目标是在不破坏程序功能的情况下,使代码更加清晰、简洁和易于理解。

2024-08-08 22:54:52 734

原创 Java学习|初识热加载

Java中的类加载是由类加载器(Class Loaders)完成的。通过本文将了解如何在不重启应用程序的情况下更新或替换类和方法,从而提高开发效率和系统可用性。Java热加载是指在不重启应用程序的情况下更新或替换类和方法的能力。A: 热加载可能会带来一定的性能开销,尤其是在频繁更新代码的情况下。本文档将从理论基础入手,逐步深入到具体的实现细节和技术实践,帮助读者掌握Java热加载的核心知识。为了更好地理解Java热加载的工作原理,我们需要先了解Java类加载机制的一些基本概念。假设我们有一个简单的类。

2024-07-29 21:50:20 1733 2

原创 Java小抄|Java中的List与Map转换

第三个参数:(v1, v2) -> v1 表示当有 id 重复的时候,选择第一个作为基准,忽略别的 id 相同的记录;第二个参数: v -> v 表示选择将原来list中的每一个User对象作为map的key对应的每一个value值;如果(v1, v2) -> v2 表示当有 id 重复的时候,选择最后一个作为基准,忽略别的 id 相同的记录。第一个参数: User::getId表示选择 User 的 Id作为map的key值;

2024-07-28 22:13:31 631

原创 Spring Boot|如何实现 Spring Boot 的优雅停机

在部署Spring Boot应用时,优雅停机是一个重要的概念,它指的是在服务关闭时能够有序地释放资源、完成已有的请求处理并拒绝新的请求,从而避免因强制关闭导致的数据丢失或服务不可用等问题。本文档旨在介绍如何在Spring Boot应用中实现优雅停机,并提供具体的步骤和示例代码。可以注册一个Java Shutdown Hook来实现更精细的控制。

2024-07-28 22:06:20 1005

原创 Java小抄|字符串转 Map

import com.alibaba.fastjson;String str="";HashMap hashMap = JSON.parseObject(str, HashMap.class);

2024-07-27 19:46:59 447

原创 版本管理|为什么不推荐使用Git Rebase

git rebase是一个 Git 命令,用于将一个分支上的提交应用到另一个分支之上。它可以用来整理提交历史,使历史记录看起来更加线性。Rebase 的主要目的是将你的分支与另一个分支(通常是上游分支)同步,同时保持你的提交历史整洁。

2024-07-27 19:43:18 595

原创 大数据|使用Apache Spark 删除指定表中的指定分区数据

Apache Spark 是一个强大的分布式数据处理引擎,支持多种数据处理模式。在处理大型数据集时,经常需要对数据进行分区,以提高处理效率。有时,为了维护数据或优化查询性能,需要删除指定表中的指定分区数据。本文档将介绍如何使用 Spark SQL 和 DataFrame API 来删除指定表中的指定分区数据,并提供使用时的注意事项以及常见相关问题及其处理方法。

2024-07-26 23:13:56 1713

原创 Java小抄|使用StopWatch输出执行耗时

getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒的方法prettyPrint() 优雅的格式打印结果,表格形式shortSummary() 返回简短的总耗时描述getTaskCount() 返回统计时间任务的数量getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称sw.stop();sw.stop();

2024-07-26 23:10:19 836

原创 Sprong Boot学习|使用 guava-retrying 实现重试

guava-retrying 是一个线程安全的 Java 重试类库,提供了一种通用方法去处理任意需要重试的代码,可以方便灵活地控制重试次数、重试时机、重试频率、停止时机等,并具有异常处理功能重试器 retryer1: 失败后一直重试,以菲波纳耶数列设置重试等待间隔,直到间隔为1000s,然后以1000s为间隔重不断试.retryIfExceptionOfType(Throwable.class) // 如果出现Throwable异常则重试。

2024-07-24 20:42:03 673

原创 网络学习|如何理解服务的端口号

端口号(Port Number)是网络传输层协议(如TCP或UDP)用来识别特定服务或应用程序的数字标识符。每个IP地址可以有多个端口号,每个端口号代表不同的服务。例如,HTTP服务通常使用端口80,而HTTPS服务使用端口443。回答: 端口号是网络传输层协议用来识别特定服务或应用程序的数字标识符。端口号的存在允许同一台计算机同时运行多个网络服务,例如Web服务器和邮件服务器,区分这些服务需要不同的端口号。回答: 端口转发是将一个网络端口上的通信重定向到另一个端口的技术。

2024-07-24 20:27:13 1468

原创 网络学习|Localhost 与 127.0.0.1 的区别

虽然localhost和127.0.0.1在大多数情况下是互换的,但它们在系统解析和配置细节上存在一些差异。理解这些差异有助于更好地配置和调试网络应用程序,确保它们在本地和生产环境中都能正常运行。通过合理使用localhost和127.0.0.1,可以提高开发和测试的效率,并减少潜在的网络配置问题。

2024-07-24 20:21:05 1243

原创 Spring Boot学习|Stopwatch 在 Spring Boot 中的使用

`Stopwatch` 是由 Apache Commons Lang 库提供的一种工具类,它允许你测量经过的时间。它可以用来追踪代码中某部分、方法或应用内任何流程的执行时间。它特别适用于性能分析和优化。

2024-07-23 21:41:01 2449 1

原创 Java学习|Java 热排障入门

热排障(Hot Troubleshooting),是指在不重启应用程序的情况下,对正在运行中的Java应用进行问题排查和故障定位的过程。这一概念强调的是在不影响业务连续性的前提下,快速响应并解决问题的能力。

2024-07-23 21:04:52 348

原创 Java热排障|Arthas(阿尔萨斯)Java诊断工具全解析

Arthas(阿尔萨斯)是一款由阿里巴巴开源的Java诊断工具,旨在为Java开发者提供一套实时、非侵入性的应用监控和调试方案。它能够在不重启应用的情况下,帮助开发者深入了解和诊断正在运行的Java应用程序的状态,从而有效提高问题定位的效率和准确性。

2024-07-23 20:54:10 2483 1

原创 Python 3 vs Python 2: 为何需要升级?

Python 是一种广泛应用于软件开发的高级编程语言,其发展历程中出现了两个主要版本:Python 2 和 Python 3。尽管 Python 2 在其发布后长期占据主导地位,但随着技术的进步和开发实践的演变,Python 3 的引入成为了必然。本文将探讨为何需要从 Python 2 升级到 Python 3,并分析这两个版本之间的关键区别。

2024-07-21 14:49:38 888

原创 MAC安装brew+python+pip

要在 macOS 上安装 Homebrew,请按照以下步骤操作

2024-07-21 14:47:56 2119

原创 多线程学习|ScheduledExecutorService 详解

是 Java 中用于调度任务的执行器服务,它允许在给定的延迟后或定期执行任务。相比于Timer和TimerTask提供了更灵活和强大的功能,并能更好地处理多线程环境下的任务调度。

2024-07-21 14:45:49 1727

原创 Java学习|Java虚拟机内存管理

在Java虚拟机(JVM)中,内存管理是关键的性能因素。JVM的内存分配和回收机制直接影响Java应用程序的效率和稳定性。本技术文档将详细解释堆内存、最大堆内存和年轻代内存的概念及其配置方法。答:内存泄漏是指程序中某些对象不再使用,但仍然保留在内存中,无法被垃圾收集器回收。使用内存分析工具:如VisualVM、JProfiler等工具检测内存使用情况。代码审查:定期进行代码审查,确保正确地释放不再使用的对象。弱引用(WeakReference):使用弱引用来引用容易被垃圾收集器回收的对象。

2024-07-19 22:49:28 988

原创 问题复盘|NullPointerException - element cannot be mapped to a null key

java.lang.NullPointerException: element cannot be mapped to a null key

2024-07-19 22:47:59 1998

原创 数据可视化入门

数据可视化的历史可以追溯到古代人类绘制地图和图表的时代,但现代数据可视化的发展主要集中在以下几个关键阶段:

2024-07-17 23:24:29 1452

三级数据库无纸化考试模拟软件.rar

一个计算机三级数据库的模拟软件,上传于此是为了个人备份

2019-08-29

空空如也

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

TA关注的人

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