自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-09-18 21:44:21 466

原创 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 398

原创 Java|泛型的使用

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

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

原创 Java|Java 中 JSONPath 的使用

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

2024-09-07 18:06:28 1123

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

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

2024-09-05 22:14:44 847

原创 Java学习|Java基础知识

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

2024-09-03 22:25:11 1014

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

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

2024-09-03 22:22:20 978

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

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

2024-08-12 21:43:11 409

原创 MongoDB | MongoDB 终端查询

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

2024-08-12 21:33:40 905

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

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

2024-08-08 23:32:51 309

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

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

2024-08-08 22:54:52 643

原创 Java学习|初识热加载

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

2024-07-29 21:50:20 1576 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 485

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

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

2024-07-28 22:06:20 682

原创 Java小抄|字符串转 Map

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

2024-07-27 19:46:59 379

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

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

2024-07-27 19:43:18 388

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

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

2024-07-26 23:13:56 1159

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

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

2024-07-26 23:10:19 570

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

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

2024-07-24 20:42:03 536

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

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

2024-07-24 20:27:13 1141

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

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

2024-07-24 20:21:05 653

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

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

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

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

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

2024-07-23 21:04:52 279

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

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

2024-07-23 20:54:10 1169 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 807

原创 MAC安装brew+python+pip

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

2024-07-21 14:47:56 447

原创 多线程学习|ScheduledExecutorService 详解

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

2024-07-21 14:45:49 1252

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

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

2024-07-19 22:49:28 914

原创 问题复盘|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 806

原创 数据可视化入门

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

2024-07-17 23:24:29 1345

原创 令牌桶|Web服务中的令牌桶设计和实现

令牌桶(Token Bucket)是一种用于流量控制的算法,在网络通信、API限流、带宽管理等场景中广泛应用。通过控制令牌的生成和消费速率,可以有效防止服务器过载,保证系统的稳定性和可用性。通过以上设计和实现步骤,我们构建了一个基于令牌桶算法的API限流方案。该方案使用Redis存储令牌桶状态,支持分布式环境,能够有效控制API请求频率,防止服务器过载,提高系统的稳定性和可用性。

2024-07-17 23:19:15 758

原创 初识令牌桶

令牌桶(Token Bucket)是一种流量控制算法,广泛应用于网络通信、API限流、带宽管理等场景。它通过控制数据包的发送速率,确保网络资源的有效利用和防止过载。令牌桶的主要思想是通过生成和消费令牌来管理数据流量,允许在短时间内突发性的数据流量,同时限制长期的平均发送速率。

2024-07-16 21:40:26 922

原创 Java学习|JSON 处理库:Gson、FastJson、Jackson的比较与使用指南

在Java开发中,处理JSON数据是一个常见需求。Gson、FastJson、Jackson是最受欢迎的三大JSON处理库。本文将详细比较它们的特点、使用注意事项,并提供代码示例和常见面试问答,帮助开发者在不同场景下做出最优选择。

2024-07-16 21:34:16 2427

原创 问题复盘|Spring Boot 项目启动时避免空指针异常的解决方案

在Spring Boot项目中,空指针异常(NullPointerException, NPE)是常见的问题之一,尤其是在Spring容器尚未完全初始化时试图获取Bean对象。今天我们将探讨在Spring Boot项目启动时如何避免此类异常,并提供几种有效的解决方案。

2024-07-15 20:54:54 922 1

原创 MySQL学习|深入解析MySQL事务:原理、隔离级别与面试技巧

事务是MySQL中的重要概念,确保了数据的完整性和一致性。通过理解ACID特性和不同的隔离级别,开发人员可以根据具体需求选择合适的事务管理策略。在面试中,熟悉事务的实现机制和处理方法将有助于展示候选人的数据库管理和优化能力。

2024-07-15 20:37:49 932

原创 MySQL学习|理解脏读和幻读及其解决方法

脏读和幻读是数据库并发控制中常见的问题。脏读:使用“读已提交”(Read Committed)或更高的隔离级别。幻读:使用“串行化”(Serializable)隔离级别,或在InnoDB中使用“可重复读”(Repeatable Read)结合间隙锁(Gap Lock)。了解和应用这些隔离级别和机制,可以确保数据库操作的可靠性和一致性。

2024-07-15 20:37:21 310

原创 Nacos 扫盲

Nacos(Dynamic Naming and Configuration Service)是一个开源项目,由阿里巴巴集团开发,专注于动态服务发现、配置管理和服务管理。它是 Spring Cloud Alibaba 生态系统的一部分,旨在简化微服务架构中的服务发现和配置管理。

2024-07-01 21:32:47 1058 1

原创 ES|使用Postman更新ES内所有文档的指定字段

在日常的数据管理任务中,有时我们需要批量更新Elasticsearch中大量文档的某一字段,以反映最新的业务需求或数据修正。本文将学习如何使用Postman结合Elasticsearch的`Update By Query` API来高效完成这项工作。

2024-07-01 21:25:44 1104

原创 Redis学习(12)|使用Redis在Spring Boot中实现分布式锁

Hello大家好,我是阿月,坚持学习,老年痴呆追不上我,今天我们学习如何使用Redis在Spring Boot中实现分布式锁

2024-07-01 21:18:18 812

原创 坚持刷题|反转链表

Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天继续链表:反转链表。

2024-06-19 22:00:01 474

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

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

2019-08-29

空空如也

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

TA关注的人

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