自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (10)
  • 收藏
  • 关注

原创 logback 日志归档,解决主日志和归档日志分别定义不同的周期

有人建议写cron脚本,定期清除,不是我想要的,因为类似的服务有好几套/每套7-8个,我希望logback内部完全搞定。主日志保留了好几十G,虽然归档日志每天都有按日期/按大小归档到指定路径,并进行压缩,这样的情况还是得到期清理日志。这样主日志保留3天,方便查看,归档日志保留7-15天,达到了预期效果!

2025-05-13 15:10:23 202

原创 Java生成多层ZIP炸弹代码

该代码生成的 ZIP 文件在解压时会触发多层递归解压操作,而最内层的文件看似很小(约100字节),实际解压后会迅速膨胀到10MB。结合多层嵌套,能有效干扰缺乏防护的爬虫系统。解压内层 ZIP 会重复这个过程,直到最内层的 10MB 文件被释放。:通过循环逐层包裹 ZIP 文件,每层包含下一层的 ZIP 数据。:请勿在非受控环境测试此代码,可能导致系统资源耗尽。级别压缩重复数据(全0),生成极小的压缩文件。:仅限教育用途,实际使用可能违反法律或服务条款。:生成更大数据时需改用流式写入,避免内存溢出。

2025-05-12 09:28:29 252

原创 MCP(Model Context Protocol,模型上下文协议)

MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 公司于 2024 年 11 月推出的开放标准协议,旨在解决大型语言模型(LLM)与外部数据源、工具之间的通信问题,打破数据孤岛限制,构建开放互联的 AI 生态系统。例如,用户可通过 Slack 触发任务,整合 Google Maps 的位置数据、OpenTable 的预订功能,并调用 Memory 服务器存储用户偏好,最终生成个性化建议。MCP 通过标准化协议,使 AI 能直接调用最新数据源,生成更准确的回答。

2025-05-09 14:10:13 316

原创 spring boot 邮件发送

【代码】spring boot 邮件发送。

2025-04-25 15:53:52 115

原创 一个基于Maven的快速、高效java代码生成插件

高效开发:通过定义 JSON 或 Avro 文件,自动生成代码和数据库表,减少手动编写重复代码的时间。* 3、编写 Dao 和 Mapper XML,并定义基础的CRUD方法。* 6、中途还得定义CRUD对应的 Req 和 Resp 对象。标准化:生成的代码结构符合最佳实践,确保代码的一致性和可维护性。* 4、定义 Service 和 ServiceImpl。1、定义一个描述用户收货地址的 Avro (JSON)文件。自动化:自动创建数据库表,减少手动执行 SQL 脚本的步骤。1、定义Avro文件。

2025-04-25 15:31:56 349 1

原创 SpringBoot同时可以处理多少请求?

SpringBoot同时可以处理多少请求?

2025-04-15 17:00:34 719

原创 AI 之 LLM(大语言模型)是如何生成文本的!

看完这篇,LLM从输入到输出的“魔法”流程你总算搞清楚了吧?别再只是当个“AI用家”了,懂点门道,下次跟人聊AI也能硬气地说:“生成文本?小意思,我连Transformer怎么跑都知道!”当然,这只是AI世界的入门课,想真正在这个领域站稳脚跟,还有更多硬核知识等着你去啃。怎么样,敢不敢给LLM丢个复杂问题,测试一下你刚学的“理论”?

2025-04-11 09:21:49 894

原创 到底该不该用多表关联!

在数据库设计中使用多表关联(JOIN)是否合理,需要结合具体场景、数据规模、性能需求和技术架构来综合判断。需要保证数据一致性(如银行交易、订单管理),关联查询能避免数据冗余,确保ACID特性。需要跨表聚合统计(如报表中的多维度分析),关联比应用层分步查询更高效。:预计算宽表、列式存储(如ClickHouse)、数据仓库分层建模。通过ETL工具定期构建数仓宽表(如每日凌晨生成报表宽表)。写模型保持规范化(关联),读模型通过异步同步构建宽表。关键路径上频繁执行的JOIN(如C端产品详情页)。

2025-04-09 09:27:42 274

原创 Mysql 之 Undo Log/Redo Log/Binlog日志实现事务ACID

在深入理解Undo Log、Redo Log和Binlog之前,首先需要明确事务的ACID特性,这些特性是确保数据库操作可靠性和一致性的基石原子性(Atomicity):事务中的所有操作要么全部成功,要么全部失败,不会出现部分完成的状态一致性(Consistency):事务的执行必须使数据库从一个一致性状态转变到另一个一致性状态,确保数据的完整性隔离性(Isolation):指在多事务并发执行时,一个事务的操作对其他事务的影响程度。它确保事务之间的操作是相互独立的,避免并发带来的数据不一致问题。

2025-04-01 14:03:10 860

原创 URL地址末尾加不加 / 有什么区别

URL 结尾是否带主要影响的是以及。

2025-04-01 11:36:14 471

原创 如何解决TCC的空回滚和悬挂?

TCC是一种分布式的事务的方案,将一个事务分成了TRY-CANCEL-CONFIRM三个阶段:在TCC中,存在着两个比较关键的问题,那就是空回滚和悬挂的问题。

2025-04-01 10:27:47 429

原创 VisualVM 深入分析与详细介绍

VisualVM 是一个功能强大的、免费的、开源的Java应用程序性能监控和分析工具。它集成了多个JVM监控工具的功能,提供了一个统一的界面来监控和分析多个JVM实例。以下是VisualVM的详细介绍和使用方法。

2025-03-25 11:14:02 1079

原创 浏览器指纹(Browser Fingerprinting)

浏览器指纹是一种强大的用户追踪技术,具有高度的唯一性和隐蔽性。虽然它在广告、反欺诈等领域有广泛应用,但也带来了隐私泄露的风险。用户可以通过使用隐私工具、禁用JavaScript等方式减少被追踪的可能性。

2025-03-19 17:26:04 1123

原创 本地部署DeepSeek+DiFy平台构建智能体应用

RAG(Retrieval-Augmented Generation)检索增强生成是一种将外部知识检索与大语言模型生成能力结合的混合架构。其核心思想是通过检索外部知识库(如文档、数据库、网页等),弥补大模型静态训练数据的局限性;在生成答案时直接依赖检索到的证据,减少模型凭空编造内容的可能性,降低幻觉风险。RAG无需重新训练模型,仅需更新知识库即可适配不同专业领域(如医疗、法律)。类似将大模型视为一个“推理专家”,而RAG系统为其配备了一个“实时资料库助手”。

2025-03-19 17:20:33 1118

原创 二十四节气

二十四节气是中国古代根据太阳在黄道上的位置变化,结合农业生产和气候变化规律,总结出的一套时间划分系统。它将一年分为24个时段,每个时段约15天,反映了季节、气候和物候的变化。

2025-03-19 16:34:22 648

原创 1G内存,如何对40亿QQ号去重?

假设我们需要对40亿个QQ号进行去重处理,但可用内存限制为1GB。常规方法(如HashSet或全量排序)在内存占用上存在明显瓶颈,因此需要设计一个兼顾内存效率和执行效率的解决方案。:如果QQ号范围已知,如何进一步优化内存?中占用20字节(包含对象开销),1GB内存可存储约5千万个QQ号。合并为最终文件,因相同QQ号必在同一分片,无需二次去重。类型需约32GB(40亿×8字节),远超1GB内存。:分治法(Hash分片+内存去重)是唯一可行方案。:使用GZIP压缩分片文件,减少磁盘占用。(需号码范围已知)。

2025-03-19 09:22:56 511

原创 如何有效的优化一个.Java 文件

及时释放资源:使用 `try-with-resources` 或手动关闭 `InputStream`、`OutputStream` 等资源。- 同步机制:合理使用 `synchronized`、`Lock` 或并发集合类(如 `ConcurrentHashMap`)来保证线程安全。- 使用高效的数据结构:根据场景选择合适的数据结构(如 `HashMap` 替代 `List` 进行快速查找)。- 调整堆内存:根据应用需求调整 JVM 的堆内存大小(`-Xmx`、`-Xms`)。

2025-03-13 17:21:21 432

原创 opencv 图片颜色+轮廓识别

opencv 图片颜色+轮廓识别

2025-03-11 16:10:45 349

原创 Tokens是啥?为啥大模型按Tokens收费?和API调用、订阅收费区别?

Tokens是啥?为啥大模型按Tokens收费?和API调用、订阅收费区别?

2025-03-08 10:34:07 433

原创 大模型都按Tokens收费,那么如何计算有效Tokens 数量呢?

大模型都按Tokens收费,那么如何计算有效Tokens 数量呢?

2025-03-08 10:31:24 307

原创 如何有效利用MYSQL的连接数

ini复制。

2025-02-21 12:04:28 990

原创 mybatis 和jpa 深入对比

MyBatis 和 JPA(Java Persistence API)是 Java 生态中两种主流的持久层框架,但它们在设计理念、使用场景和实现方式上有显著差异。:JPA 是 Java EE 规范的一部分(现为 Jakarta Persistence),定义了一套对象关系映射(ORM)的标准接口。)直接操作数据库,支持延迟加载(Lazy Loading)、级联操作(Cascade)等特性。:不提供复杂的 ORM 特性(如延迟加载、缓存策略),更注重 SQL 的灵活性和透明性。

2025-02-13 09:14:17 1257

原创 解决mysql 内存持续上涨问题

innodb_buffer_pool_size 的大小,调到一个很小的值(暂时不考虑常规状态),发下内存一下子就下来了,当内存下来之后在调回原来的值,问题解决。32G内存,这里设置了20G,物理内存的60~70%

2024-12-07 15:12:17 759 2

原创 解决 npm install 卡住不动或执行失败

解决 npm install 卡住不动或执行失败

2024-11-25 10:03:41 1030

原创 RocketMQ 消费者组和消息消费机制

这是因为在微服务架构中,每个服务都是独立的、自治的单元,负责特定的业务功能。这意味着如果你的服务有三个节点,并且它们都属于同一个消费者组(DISTRIBUTION_AUTO_ADD_TIPS),那么每条消息只会被其中一个节点消费,而不是每个节点都消费一次。一个服务一个消费组可以确保每个服务独立处理消息,不会受到其他服务的影响。职责明确:每个服务负责特定的业务功能,一个服务一个消费组可以确保每个服务的职责明确,避免模块间的耦合。故障隔离:不同服务之间的消息消费互不影响,一个服务的故障不会影响其他服务的消费。

2024-10-17 18:01:09 1672 2

原创 MySQL之Buffer Pool缓冲池详解

Innodb 存储引擎设计了一个缓冲池(,来提高数据库的读写性能。Buffer Pool 以页为单位缓冲数据,可以通过参数调整缓冲池的大小,默认是 128 M。Innodb 通过三种链表来管理缓页:Free List (空闲页链表),管理空闲页;Flush List (脏页链表),管理脏页;LRU List,管理脏页+干净页,将最近且经常查询的数据缓存在其中,而不常查询的数据就淘汰出去。;

2024-10-15 09:42:46 1610

原创 MySQL 之LRU 缓存管理算法

在 MySQL 中,特别是针对 InnoDB 存储引擎,LRU(Least Recently Used 最近最少使用)算法用于管理缓冲池中的数据页

2024-10-15 09:34:41 1011

原创 JDWP调试接口RCE漏洞介绍(端口不对公网开放)

JDWP是为Java调试而设计的通讯交互协议,在渗透测试的过程中,如果遇到目标开启了JDWP服务,就可以利用JDWP实现远程代码执行JDWP(Java Debug Wire Protocol,Java调试线协议)是一个为Java调试而设计的通讯交互协议,它定义了调试器(Debugger)和被调试JVM(Debuggee)进程之间的交互数据的传递格式,它详细完整地定义了请求命令、回应数据和错误代码,保证了调试端和被调试端之间通信通畅。

2024-10-12 17:07:47 2249

原创 IntelliJ IDEA 常用快捷键

Ctrl + Shift + F7 高亮显示变量的所有使用情况。Ctrl + Shift + Z 取消上一次操作(撤销的撤销)。Ctrl + Shift + V 特殊粘贴(显示粘贴选项)。Ctrl + Shift + Alt + F 在模块中查找。Ctrl + Shift + E 显示最近修改的文件。Ctrl + Shift + H 在文件中替换。Ctrl + Shift + N 跳转到文件。Ctrl + Shift + / 插入块注释。Ctrl + Shift + F 全局查找。

2024-09-29 15:33:15 650

原创 MyBatis 中#{} 和 ${} 的区别

在大多数情况下,应该优先使用 #{} 来防止 SQL 注入,并且只有在确信参数值不会引起安全问题时才使用 ${}。并且 username 的值会通过 PreparedStatement 设置。这将导致 SQL 注入。

2024-09-26 14:23:53 241 1

原创 二次记录服务器被(logrotate)木马入侵事件

还试图将此脚本插入各种系统级cron目录和systemd服务中,以确保它持续运行或定期检查,这有效地使其更难以移除,并确保它定期运行。使在此模式下和正常启动的系统差别不大以root身份运行,拥有最高权限可以对所有文件读写,只是不需要输入root密码,所以就可以实现强制更改密码。设置了一个名为logrotate.service的systemd服务来运行下载的二进制文件,并尝试将执行命令添加到不同频率的各种cron目录(每小时、每天、每周、每月、每年)中,并使用chattr +i命令使这些脚本变为不可更改。

2024-09-25 10:52:12 1998

原创 Nacos 安全使用最佳实践 - 访问控制实践

为此我们建议您的集群按照下属步骤进行及检查和开启鉴权,修改默认用户名密码,避免风险;由于开启鉴权后,Nacos将拦截所有未带有身份信息和身份信息错误的请求,因此为了不影响业务使用,请先为应用配置正确赋权的用户和密码,默认情况下nacos提供一个标准的用户,用户名密码为。若部署的Nacos中存在上述开关为关闭、默认值的情况,建议尽快按照以下步骤开启鉴权,修改默认用户名密码和默认值,避免风险;在Nacos部署完成,并开启访问控制后,需要尽快修改应用所使用的用户密码,避免使用默认用户名密码,造成风险。

2024-09-24 16:21:50 3132

原创 如何有效的防止SQL注入攻击

结合这些方法,可以构建一个更加安全的应用环境,有效抵御SQL注入攻击。对于具体的编程实践,如在Java中使用PreparedStatement,可以参考相关的API文档来编写安全的代码。这种方式可以确保用户输入的数据不会被解释为SQL代码的一部分,而是作为参数传递给SQL语句。存储过程可以在数据库端预先定义并编译,提供了一种安全的方式来执行复杂的数据库操作,并且可以减少客户端直接与数据库交互的机会。应用程序使用的数据库账户应具有最小必要的权限,以限制潜在攻击的影响范围。

2024-09-23 11:29:18 686

原创 Minio简单实用的高性能对象存储软件

MinIO TLS 设置指南 (https://docs.min.io/docs/how-to-secure-access-to-minio-server-with-tls.html)MinIO Client (mc) 文档 (https://docs.min.io/docs/minio-client-quickstart-guide.html)这会将 myminio 中的 sourcebucket 的所有数据复制到 myminio 中的 targetbucket 中,并确保数据的完整性和一致性。

2024-09-23 10:16:02 1560

原创 为什么推荐用增强型 for 循环(也称为“for-each”循环)

在Java中,for (int b : arrB) 是一种增强型 for 循环(也称为“for-each”循环)的语法。这种循环提供了更简洁、易读的方式来遍历数组或集合中的元素。的情况下,使用增强型 for 循环是更好的选择。如果确实需要访问索引来执行某些操作,则可以继续使用传统的 for 循环。这种方式需要手动管理索引变量 i 的初始化、条件判断和递增操作。

2024-09-13 16:46:25 238

原创 mysql 之 information_schema

information_schema 是 MySQL 中的一个特殊数据库,它提供了关于 MySQL 服务器中所有数据库、表、列、索引、存储过程、函数、触发器等对象的元数据信息。动态生成:information_schema 中的数据是动态生成的,不是物理存储的数据,而是从 MySQL 服务器内部状态中动态获取的数据视图。ROUTINES:列出数据库中的所有存储过程和函数的信息,包括过程或函数名、参数等。TABLES:列出数据库中的所有表的信息,包括表名、表类型、创建选项等。

2024-09-11 14:18:47 775

原创 SQL索引详解

SQL索引在数据库优化中占有一个非常大的比例,一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。  1.1什么是索引?  SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQLServer系统的性能,加快数据的查询速度与减少系统的响应时间下面举两个简单的例子:图书馆的例子:一个图书馆那么多书,怎么管理呢?建立一个字母开头的目录,例如:a开头的书,在第一排,b开头的在第二排,这样在找什么书就好说了,这个就是一个聚集索引,可是很多人借书

2024-09-06 14:06:23 2603

原创 WebSocket+Spring boot 构建一个完整消息服务

WebSocket+Spring boot 构建一个完整消息服务

2024-09-06 10:51:14 988 2

原创 你还在使用 WebSocket 实现实时消息推送吗?

当然,随着技术的发展,我们也需要关注那些新兴的实时通信技术和工具,但 WebSocket 作为一个成熟、稳定的解决方案,依然值得我们深入学习和使用。简单来说,就是客户端和服务器之间只需要建立一个连接,就可以通过这个连接双向传输数据,而且数据可以随时发送,不需要像 HTTP 那样每次请求都要建立连接,大大提高了通信效率。不过,咱们今天不聊那些新兴的玩意儿,还是回归初心,好好聊聊 WebSocket,毕竟它可是实时通信领域的“老将”了。同时,我们还配置了消息代理,用于将消息从服务器推送到客户端。

2024-09-06 10:27:47 814

原创 正确使用stream api

今天给大家分享一下java里的stream api应该如何正确的使用才能真正让我们的代码变得很优雅,因为java推出stream api以后,很多小伙伴觉得特别帅酷炸裂,然后就会在代码里过渡的滥用stream api,最终反而会导致代码变得越来越丑,越来越不清晰,不好维护。比如,当一个Lambda表达式过于复杂时,可以考虑将其拆分成一个独立的方法,这样既可以保持代码的简洁性,又可以提高代码的可读性。但是,如果链式调用过长,就会导致一行代码变得非常长,甚至超过屏幕的宽度,这显然是不利于阅读的。

2024-08-12 16:37:29 565 1

一个基于Maven的快速、高效java代码生成插件

一个基于Maven的快速、高效java代码生成插件

2025-04-25

从n个整数中查找出现频率最高的所有整数(用java实现)

从n个整数中查找出现频率最高的所有整数(用java实现)

2009-03-25

oracle网络配置(连接非本机oracle服务器)

oracle网络配置(连接非本机oracle服务器)

2011-09-09

PowerDesigner反向工程将数据库设计导出SQL脚本、HTML或World

PowerDesigner反向工程将数据库设计导出: 1 导出SQL脚本 2 导出HTML用以展示模型效果 3 RTF(WORD)或者其他

2012-05-14

SVN版本控制方案

规范如何使用SVN trunk branch tag

2016-01-15

JSP自定义分页标签 extends TagSupport

JSP自定义分页标签 extends TagSupport 多种分页风格无需额外资源,使用简单易懂:WebRoot/WEB-INF/tms-tags.tld 文件路径

2014-02-18

局域网聊天和文件传输[Java源码]

局域网 聊天和文件传输[Java源码]: JavaSE技术: Swing编程 Socket通讯 多线程 IO流 等等!

2012-05-14

Java关于时间调度的几种实现方(Timer Quartz Spring)

Java关于时间调度的几种实现方(Timer TimerTask Quartz Spring)

2014-02-18

Java多张小图合成一张大图

java 程序将多张小图合成一张大图 适合css样式将多个小图合成大图

2014-02-24

struts2文件上传、下载

实现struts2中文件上传于下载及所要主意的地方.... 如:文件类型文件大小的控制等....

2010-05-08

javascript日期、时间大小的比较

javaScript中实现时间、日期大小的比较 主要是用于在使用日期控件时比较您选择的时间是否大于系统当前时间.....

2010-05-08

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

TA关注的人

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