自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 恶意跳转网站问题分析与讨论

本文介绍了使用阿里云公共DNS防止网页恶意跳转的方法。阿里云DNS具备安全防护强、解析稳定准确、免费无广告三大优势,能有效拦截钓鱼网站和病毒链接。文章详细提供了Windows、macOS电脑及手机的配置步骤,并给出验证方法。配置时需注意区分IPv4和IPv6地址,建议使用官方提供的223.5.5.5、223.6.6.6(IPv4)和2400:3200::1、2400:3200:baba::1(IPv6)地址。通过简单设置即可从根源上解决DNS劫持问题,提升网络安全性和访问速度。

2026-01-04 21:14:56 1419

原创 说一下Redis为什么快

Redis通过内存存储、单线程模型和IO多路复用三大核心技术实现高性能。内存操作避免磁盘IO瓶颈,单线程规避多线程开销,IO多路复用高效处理并发。搭配高效数据结构和Redis6.0多线程IO优化,全面提升性能。持久化方面采用RDB快照和AOF日志组合:RDB实现快速备份恢复,AOF确保数据一致性。生产环境中"RDB+AOF"方案既保障数据安全,又兼顾恢复效率,完美平衡性能与可靠性。

2025-11-09 17:52:31 389

原创 Java中过滤器与拦截器

过滤器(Filter)与拦截器(Interceptor)是Java中两种常用的请求拦截机制。过滤器基于Servlet规范,作用于Web容器层,可拦截所有请求,适用于编码转换、跨域处理等通用逻辑;拦截器是SpringMVC组件,作用于Controller层,可访问业务对象,适用于权限控制、日志记录等业务场景。两者可互补使用,过滤器处理HTTP层需求,拦截器专注业务校验。技术选型应根据项目架构和实际需求,实现通用逻辑与业务代码的解耦。

2025-11-08 16:13:40 1041

原创 BigDecimal是怎么比较大小的

BigDecimal是Java的高精度小数类,核心比较应使用compareTo()而非equals()或==。compareTo()仅比较数值大小,返回-1/0/1表示小于/等于/大于;而equals()还会校验精度。此外,signum()方法可快速判断数值符号(1正/0零/-1负)。金融等精确计算场景优先使用compareTo()进行数值比较,避免精度差异导致的误判。

2025-11-04 19:24:48 1027

原创 equals()与hashCode()之间的关系

摘要:Java中的equals()和hashCode()方法是Object类的核心方法,用于对象比较和哈希表操作。equals()判断对象内容是否相等,默认比较内存地址,需要重写;hashCode()生成哈希值用于快速定位对象。必须同时重写这两个方法,否则会违反Java核心约定(equals返回true时hashCode必须相等),导致哈希集合(如HashMap、HashSet)出现查找失效、重复元素等问题。HashSet内部基于HashMap实现,通过元素作为键保证唯一性。

2025-11-03 21:07:19 678

原创 基于EasyExcel实现Excel导出功能

EasyExcel是阿里开源的高效Java Excel处理工具,相比POI显著降低内存消耗。文章重点介绍了其导出功能,包括单次写入示例和分页多次写入方案。核心优势在于:1) 3M文件仅需几MB内存;2) 支持分Sheet写入,单个文件可含多个Sheet;3) 提供分页查询机制避免OOM。示例代码展示了300万数据导出实现,包含响应头设置、分页数据获取、Sheet切换等关键逻辑,通过WriterSheet控制写入位置,PAGE_SIZE平衡性能与内存,实现大数据量安全导出。等等

2025-11-03 20:53:15 962

原创 Arthas工具快速使用

Arthas是阿里巴巴开源的Java诊断工具,支持实时监控Java应用运行状态而无需重启或修改代码。本文介绍了Arthas的基础使用:通过java-jar命令启动并连接目标进程;常用命令包括dashboard查看系统状态、jvm查看虚拟机信息、trace追踪方法调用耗时等;特别演示了如何用trace命令监控Spring接口性能,并解析了参数含义。文章强调Arthas"无侵入"的核心价值,能有效解决线上问题排查、性能优化等场景需求,同时建议结合官方文档探索更多高级功能。

2025-11-01 20:54:00 1162

原创 IDEA多实例项目启动模拟负载均衡

本文介绍了多实例项目启动及负载均衡的配置方法:首先通过编辑配置启动项目,使用IDEA快捷键Alt+8打开服务窗口;其次针对命令行过长导致的启动失败问题,提供了解决方案。只需按照步骤配置,最后点击应用确定即可完成设置,有效解决了项目启动过程中的常见问题。

2025-10-31 19:34:46 435 1

原创 MyBatis的缓存机制

MyBatis缓存机制解析:MyBatis提供两级缓存优化查询性能。一级缓存为SqlSession级别,默认开启,缓存当前会话查询结果,执行更新操作或会话关闭时失效。二级缓存是Mapper级别,需手动配置,可跨SqlSession共享,生命周期与SqlSessionFactory一致,执行对应namespace的更新操作时清空。二者区别在于作用范围(私有/共享)、生命周期和开启方式。二级缓存可通过配置文件或注解开启,适合单机环境,分布式场景建议结合Redis等中间件实现缓存共享。理解这两级缓存机制有助于优化

2025-10-29 20:22:03 909

原创 Java内存模型(JMM)与JVM内存模型

Java内存模型(JMM)与JVM内存模型解析:JMM定义多线程环境下共享内存的交互规则,解决原子性、可见性和有序性问题,通过Happens-Before规则平衡性能与安全;JVM内存模型则管理运行时数据区,包括堆(对象实例)、方法区(类信息)、虚拟机栈(方法调用)等。理解二者的区别与联系是掌握Java并发编程的关键,JMM关注"如何安全交互",JVM关注"数据存储位置"。

2025-10-27 21:19:15 442

原创 SpringBoot常用注解

本文总结了SpringBoot开发中常用的核心注解及其用途:1. 核心注解:@SpringBootApplication组合了@Configuration、@EnableAutoConfiguration和@ComponentScan 2. 请求处理:@RestController及各种HTTP方法注解(@GetMapping等),配合@RequestParam、@PathVariable等参数处理 3. 依赖注入:对比@Autowired(类型优先)和@Resource(名称优先)的使用场景 4. 参数校

2025-10-26 21:06:12 385

原创 MySQL事务隔离级别

摘要:事务是关系型数据库的ACID特性操作单元,包含原子性、一致性、隔离性和持久性。并发事务可能产生脏读(读取未提交数据)、不可重复读(同一事务两次读取结果不同)和幻读(范围查询结果行数变化)问题。MySQL提供四种隔离级别:读未提交(可能脏读)、读已提交(避免脏读)、可重复读(默认级别,避免脏读和不可重复读)和串行化(最高隔离,避免所有并发问题)。不同级别在数据一致性和性能间权衡,MVCC机制可进一步优化并发控制。

2025-10-26 15:47:30 429

原创 Git查看及更改用户信息命令

本文介绍了如何查看和修改Git全局配置中的用户信息。查看信息可使用git config --global --list查看全部配置,或通过git config --global user.name/email单独查看用户名和邮箱。修改信息则分别使用git config --global user.name、user.password和user.email命令更新用户名、密码和邮箱,后接新值即可。这些命令用于管理Git提交时关联的用户身份信息。

2025-10-26 11:36:46 687

原创 DBeaver如何导入.sql后缀文件

本文介绍了两种在DBeaver中导入并执行SQL脚本的方法:1)先创建demo数据库后执行脚本:右键点击数据库→工具→执行脚本→配置路径→开始执行;2)先导入脚本再执行:通过文件菜单导入脚本→右键本地连接创建任务→选择脚本继续执行。两种方法均可成功执行,并支持查看脚本内容执行特定SQL语句。操作过程都包含选择脚本、配置路径和最终执行三个主要步骤。

2025-10-24 16:40:41 7879

原创 常见加密算法有哪些

本文介绍了五种常见加密算法: AES:对称加密标准,支持128/192/256位密钥,速度快适合大数据加密; RSA:非对称加密,基于大数分解难题,适用于SSL/数字签名等场景; CRC:循环冗余校验算法,用于快速数据校验; MD5:已被破解的128位哈希函数,仅适用于非安全场景; SHA-256:安全哈希算法,抗碰撞性强,广泛应用于区块链等领域; BCrypt:专为密码存储设计,内置加盐和慢哈希特性。 文中还对比了各算法的特点和安全适用场景,为技术选型提供参考。

2025-10-24 11:15:59 1314

原创 Webstorm注释快捷键设置

在WebStorm中,可以通过以下步骤创建并使用自定义代码注释模板:首先,打开WebStorm的设置,找到“Live Templates”选项并选择JavaScript。接着,添加一个新模板,设置快捷键为“///+Enter”以实现快速代码注释。然后,点击“Define”按钮,选择该模板适用的文件类型,这里选择JavaScript文件。最后,应用该模板后,只需在编辑器中输入“///”并按下Enter键,即可自动生成预设的代码注释。这一功能可以显著提高代码注释的效率,特别适合需要频繁添加注释的开发场景。

2025-05-14 20:48:15 702

原创 IntelliJ IDEA使用技巧(json字符串格式化)

IntelliJ IDEA使用技巧json字符串格式化

2024-12-20 20:40:41 2173

原创 基于RabbitMQ实现延迟队列

延迟队列是一种用来存放需要在指定时间之后或之前被处理的元素的队列。队列中的每个元素都指定了一个延迟时间,该时间表示元素应该在何时被取出并处理。在延迟时间到达之前,元素会保持在队列中,不会被消费者立即消费。

2024-07-30 17:01:52 1500

原创 解决系统因为在此系统上禁止运行脚本(vue -v)报错、node.js问题

vue : 无法加载文件 D:\develop\nodejs\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。所在位置 行:1 字符: 1+ vue -v+ ~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQua

2024-07-13 21:14:11 949

原创 windows11自动更新解决

解决windows11自动更新,本文介绍通过修改Windows注册表来延长系统更新的暂停时间。具体步骤:1.使用Win+R打开运行窗口,输入"redegit"启动注册表编辑器;2.导航至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings路径;3.新建32位DWORD值并命名为FlightSettingsMaxPauseDays;4.设置完成后通过Win+i进入系统设置,可在Windows更新界面看到延长暂停效果…

2024-07-12 14:24:32 2491 1

原创 CentOS 7上基于完全分布式模式部署Hadoop

记录一下 hadoop的简要安装 根据需要 定义自己的安装目录

2024-03-24 12:55:09 2209

原创 二叉树的基本操作(包括先序、中序、后序遍历的使用)

该程序实现了二叉树的基本操作,包括创建二叉链表、计算节点数和叶子节点数、三种遍历方式(先序、中序、后序)以及销毁二叉树功能。程序采用递归算法实现,定义了Tree结构体存储节点数据。输入形式为字符序列(如"abdh##i##ej##k##cfl###g##",#表示空节点),输出包括遍历结果、总节点数和叶子节点数。主程序通过调用各功能函数完成操作,最后自动销毁二叉树释放内存。程序演示了完整的二叉树创建、遍历和统计功能。

2023-11-01 13:19:16 445 1

原创 哈希表的基础使用

本文介绍了一个基于哈希表的学生信息管理系统。系统实现了学生姓名、学号和手机号码的存储与查找功能。程序采用链式解决冲突的哈希表结构,通过字符串ASCII码求和的哈希函数确定存储位置。主程序包含初始化哈希表、信息存储和查找等模块。文章分析了哈希表设计要点,包括哈希函数选择、冲突处理方法等优化方向,指出当前程序在输入验证方面的不足,并建议增加数据有效性检测。该系统在信息查找速度和空间利用率方面具有优势,适用于各类信息管理场景。作者还鼓励读者进一步扩展系统功能。

2023-10-31 13:31:14 391 1

原创 图的解决路径问题(解决城市路径问题及深度优先、广度优先遍历的使用)

本文实现了一个基于邻接矩阵的无向图处理程序,主要功能包括:1)创建无向图并存储顶点和边信息;2)实现深度优先遍历算法;3)使用Prim算法构造最小生成树。程序采用模块化设计,包含顶点定位、邻接矩阵创建、深度优先遍历、最小值判断等核心函数。输入为顶点名称和边权重,输出包括遍历序列和最小生成树的边信息。测试结果表明程序能正确执行深度优先遍历和生成最小树,为城市路径规划等应用提供了基础框架。用户可根据需要进一步扩展广度优先遍历或最短路径算法。

2023-10-30 13:37:55 934 1

原创 链表实现多项式求值问题

本文实现了一个多项式运算程序,主要包括以下功能:1) 多项式创建(Createpolynomial),支持按降序输入系数和指数;2) 多项式遍历显示(ergodicp),能输出规范的多项式表达式;3) 多项式相加(Addpolynomial),实现同类项合并;4) 多项式求值(evaluation),用给定数值计算多项式结果。程序采用链表结构存储多项式节点,包含系数和指数信息,通过模块化函数实现各项功能。主程序先创建两个多项式,然后相加并求值,最终输出合并后的多项式表达式及其计算结果。该程序可扩展实现多项式

2023-10-29 13:46:21 327 1

原创 队列解决舞伴问题

摘要:本文实现了舞伴配对问题的队列解决方案。程序采用循环队列结构,定义了Person结构体存储舞者姓名和性别。主要功能包括:1)初始化男女舞者队列;2)根据性别将舞者入队;3)轮流从男女队列出队配对;4)处理剩余未配对舞者。核心算法使用队列的基本操作(入队、出队、判空等),通过text()函数实现配对逻辑。程序输入舞者信息后,以"(姓名1,姓名2)"格式输出配对结果,并能显示下一轮首位等待舞伴的信息。该实现展示了队列"先进先出"特性在现实问题中的应用。

2023-10-28 19:16:24 1768 1

原创 数据结构排序算法(简单选择、快速、折半插入法排序)

本文介绍了三种排序算法在学生成绩系统中的应用实现。完整代码展示了简单选择排序、快速排序和折半插入排序的具体实现,通过结构体存储学生信息(姓名和成绩),并支持升序/降序排列选择。其中,简单选择排序采用双重循环比较;快速排序使用分治法递归处理;折半插入排序则利用二分查找优化比较次数。主程序依次调用三种算法进行测试,输出排序结果。文章指出,不同算法各有优势:选择排序简单直观,快速排序适合大规模数据,折半插入对接近有序数据效率更高。最后建议读者可通过增加异常处理、测试不同数据规模等方式进一步实践,深入理解算法特性。

2023-10-28 12:43:54 514 1

原创 栈结构实现表达式求值

使用栈结构实现表达式求值(利用栈来实现小计算器 就是简单表达式的求解)

2023-10-27 10:31:13 620 1

原创 C++新生基本信息管理系统(类、继承与多态及析构函数的运用)

这篇文章介绍了一个用C++实现的学生信息管理系统。系统采用链表结构存储学生信息,包含姓名、性别、专业、出生日期、家庭住址和英语成绩等字段。程序提供了以下功能:新增学生信息、打印所有信息、查找学生、修改信息、按专业或性别筛选、删除信息、年龄统计、英语成绩排序等。系统支持数据保存到文本文件和从文件读取数据。文章最后指出可以在功能上进一步优化,如添加链表空间释放功能,并邀请读者讨论改进建议。这段代码实现了一个完整的学生信息管理功能,适合作为课程设计或小型项目参考。

2023-10-26 13:39:52 373 1

Arthas-3.6.6资源包

Arthas-3.6.6资源包 项目文档:https://arthas.aliyun.com/ 工具下载地址:https://github.com/alibaba/arthas/releases

2025-10-31

空空如也

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

TA关注的人

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