程序员皮皮林_个人页

个人头像照片 程序员皮皮林
个人头像照片
33
0
0

个人介绍

学习 | 分享 | 成长

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2024年12月

  • 12.02 21:55:34
    发表了文章 2024-12-02 21:55:34

    Arrays.asList() 数组转换成集合酿成的线上事故,差点要滚蛋了!

    本文介绍了Java开发中使用`Arrays.asList()`方法将数组转换为集合时的一个常见陷阱。该方法返回的List是固定长度的,不支持添加或删除操作,直接使用可能导致线上故障。文章通过一次实际开发中的事故案例,分析了问题的原因,并提供了使用`java.util.ArrayList`进行封装的解决方案,以避免此类错误的发生。希望读者能从中吸取教训,提高代码的健壮性。

2024年11月

  • 11.20 20:36:43
    发表了文章 2024-11-20 20:36:43

    面试官:Redis 大 key 多 key,你要怎么拆分?

    本文介绍了在Redis中处理大key和多key的几种策略,包括将大value拆分成多个key-value对、对包含大量元素的数据结构进行分桶处理、通过Hash结构减少key数量,以及如何合理拆分大Bitmap或布隆过滤器以提高效率和减少内存占用。这些方法有助于优化Redis性能,特别是在数据量庞大的场景下。
  • 11.19 20:12:11
    发表了文章 2024-11-19 20:12:11

    面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

    本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
  • 11.18 20:56:32
    发表了文章 2024-11-18 20:56:32

    一款高颜值、现代化的 Git 可视化管理工具

    GitButler 是由 GitHub 联合创始人 Scott Chacon 开源的 Git 客户端,采用 Tauri/Rust/Svelte 构建。它支持虚拟分支、轻松提交管理、GitHub 集成、SSH 密钥管理和 AI 工具等功能,目前仅支持 macOS 和 Linux 平台。用户可以通过拖拽方式快速聚合多个分支的改动,实现灵活的跨分支操作。
  • 11.15 22:27:18
    发表了文章 2024-11-15 22:27:18

    SpringBoot接口设计防篡改和防重放攻击

    本文介绍了API接口的安全问题及解决方案,包括防止接口参数被篡改和重放攻击的方法。主要措施有:使用HTTPS传输、参数加密、时间戳签名验证等。并通过创建过滤器对请求参数进行签名验证,确保接口的安全性。
  • 11.13 21:41:35
    发表了文章 2024-11-13 21:41:35

    这款轻量级 Java 表达式引擎,真不错!

    AviatorScript 是一个高性能、轻量级的脚本语言,基于 JVM(包括 Android 平台)。它支持数字、字符串、正则表达式、布尔值等基本类型,以及所有 Java 运算符。主要特性包括函数式编程、大整数和高精度运算、完整的脚本语法、丰富的内置函数和自定义函数支持。适用于规则判断、公式计算、动态脚本控制等场景。
  • 11.12 21:38:40
    发表了文章 2024-11-12 21:38:40

    49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点

    mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
  • 11.10 21:48:05
    发表了文章 2024-11-10 21:48:05

    震撼!通过双重异步,Excel 10万行数据导入从191秒优化到2秒!

    通过合理设计线程池和利用异步编程模型,本文展示了如何将 Excel 10万行数据的导入时间从191秒优化到2秒。文章详细介绍了使用 Spring Boot 的 `@Async` 注解、自定义线程池和 EasyExcel 进行大数据量的 Excel 解析和异步写入数据库的方法。通过分而治之的策略,减少了系统的响应时间,提高了并发处理能力。同时,还分析了如何根据 CPU 和 IO 密集型任务的特性,合理设置线程池的参数,以充分发挥硬件资源的性能。
  • 11.06 19:46:59
    发表了文章 2024-11-06 19:46:59

    SpringBoot+EasyExcel轻松实现300万数据快速导出!

    本文介绍了在项目开发中使用Apache POI进行数据导入导出的常见问题及解决方案。首先比较了HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook三种传统POI版本的优缺点,然后根据数据量大小推荐了合适的使用场景。接着重点介绍了如何使用EasyExcel处理超百万数据的导入导出,包括分批查询、分批写入Excel、分批插入数据库等技术细节。通过测试,300万数据的导出用时约2分15秒,导入用时约91秒,展示了高效的数据处理能力。最后总结了公司现有做法的不足,并提出了改进方向。
  • 11.05 20:53:26
    发表了文章 2024-11-05 20:53:26

    成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享

    本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
  • 11.03 20:29:04
    发表了文章 2024-11-03 20:29:04

    Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)

    基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
  • 11.01 20:34:56
    发表了文章 2024-11-01 20:34:56

    弃用 RestTemplate,来了解一下官方推荐的 WebClient !

    在 Spring Framework 5.0 及更高版本中,RestTemplate 已被弃用,取而代之的是 WebClient。WebClient 提供了非阻塞 I/O、函数式编程风格、更好的错误处理和流式传输支持等优势。本文介绍了如何在 Spring Boot 3 中使用 WebClient 发送同步和异步请求,并处理各种错误。虽然 RestTemplate 仍可用于某些场景,但 WebClient 是现代 Spring 应用程序的更好选择。

2024年10月

  • 10.29 20:44:13
    发表了文章 2024-10-29 20:44:13

    强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能

    本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
  • 10.28 20:27:57
    发表了文章 2024-10-28 20:27:57

    ArrayList 核心源码+扩容机制分析

    ArrayList的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于,实现了ListCloneable这些接口。List: 表明它是一个列表,支持添加、删除、查找等操作,并且可以通过下标进行访问。:这是一个标志接口,表明实现这个接口的List集合是支持快速随机访问的。在ArrayList。
  • 10.27 20:39:33
    发表了文章 2024-10-27 20:39:33

    提升效率!Spring Boot 开发中的常见失误轻松规避

    本文深入探讨了在 Spring Boot 开发中常见的失误,包括不当使用注解、不良异常处理、低效日志记录等,提供了有效的规避策略,帮助开发者提升代码质量和系统性能,构建更健壮、高效的应用程序。
  • 10.23 21:41:30
    发表了文章 2024-10-23 21:41:30

    RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器

    本文介绍了在 Spring Boot 3.3 中使用 RSocket 和 WebSocket 实现实时通信的方法。RSocket 是一种高效的网络通信协议,支持多种通信模式,适用于微服务和流式数据传输。WebSocket 则是一种标准协议,支持全双工通信,适合实时数据更新场景。文章通过一个完整的示例,展示了如何配置项目、实现前后端交互和消息传递,并提供了详细的代码示例。通过这些技术,可以大幅提升系统的响应速度和处理效率。
  • 10.22 20:27:58
    发表了文章 2024-10-22 20:27:58

    SpringBoot3.x和OCR构建车牌识别系统

    本文介绍了一个基于Java SpringBoot3.x框架的车牌识别系统,详细阐述了系统的设计目标、需求分析及其实现过程。利用Tesseract OCR库和OpenCV库,实现了车牌图片的识别与处理,确保系统的高准确性和稳定性。文中还提供了具体的代码示例,展示了如何构建和优化车牌识别服务,以及如何处理特殊和异常车牌。通过实际应用案例,帮助读者理解和应用这一解决方案。
  • 10.21 20:45:43
    发表了文章 2024-10-21 20:45:43

    面试官:MySQL一次到底插入多少条数据合适啊?

    本文探讨了数据库插入操作的基础知识、批量插入的优势与挑战,以及如何确定合适的插入数据量。通过面试对话的形式,详细解析了单条插入与批量插入的区别,磁盘I/O、内存使用、事务大小和锁策略等关键因素。最后,结合MyBatis框架,提供了实际应用中的批量插入策略和优化建议。希望读者不仅能掌握技术细节,还能理解背后的原理,从而更好地优化数据库性能。
  • 10.20 20:43:09
    发表了文章 2024-10-20 20:43:09

    开发实战:使用Redisson实现分布式延时消息,订单30分钟关闭的另外一种实现!

    本文详细介绍了 Redisson 延迟队列(DelayedQueue)的实现原理,包括基本使用、内部数据结构、基本流程、发送和获取延时消息以及初始化延时队列等内容。文章通过代码示例和流程图,逐步解析了延迟消息的发送、接收及处理机制,帮助读者深入了解 Redisson 延迟队列的工作原理。
  • 10.18 21:17:56
    发表了文章 2024-10-18 21:17:56

    做了个Java打包工具,可以双击启动了!

    本文介绍了作者日常使用Java和Swing进行开发的经验,以及Java程序分发时遇到的问题,如需要JRE环境。文中列举了几种常见的Java程序打包方法,并对比了各自的优缺点,最后作者结合这些方案,利用Winform开发了一款工具,将Java程序打包成二进制可执行文件,简化了分发流程。
  • 10.17 20:33:23
    发表了文章 2024-10-17 20:33:23

    Java Http 接口对接太繁琐?试试 UniHttp 框架吧

    UniHttp 是一个声明式的 HTTP 接口对接框架,旨在简化第三方 HTTP 接口的调用过程。通过注解配置,开发者可以像调用本地方法一样发起 HTTP 请求,无需关注请求的构建和响应处理细节。框架支持多种请求方式和参数类型,提供灵活的生命周期钩子以满足复杂的对接需求,适用于企业级项目的快速开发和维护。GitHub 地址:[UniAPI](https://github.com/burukeYou/UniAPI)。
  • 10.16 20:50:56
    发表了文章 2024-10-16 20:50:56

    优雅!Spring Boot 3.3 实现职责链模式,轻松应对电商订单流程

    本文介绍如何使用 Spring Boot 3.3 实现职责链模式,优化电商订单处理流程。通过将订单处理的各个环节(如库存校验、优惠券核验、支付处理等)封装为独立的处理器,并通过职责链将这些处理器串联起来,实现了代码的解耦和灵活扩展。具体实现包括订单请求类 `OrderRequest`、抽象处理器类 `OrderHandler`、具体处理器实现(如 `OrderValidationHandler`、`VerifyCouponHandler` 等)、以及初始化职责链的配置类 `OrderChainConfig`。
  • 10.15 19:40:01
    发表了文章 2024-10-15 19:40:01

    SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载

    在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
  • 10.14 21:19:14
    发表了文章 2024-10-14 21:19:14

    支撑每秒数百万订单无压力,SpringBoot + Disruptor 太猛了!

    本文详细介绍如何通过 Spring Boot 集成 Disruptor 实现每秒处理数百万订单的高性能系统。Disruptor 是一种无锁并发框架,采用环形缓冲区和无锁算法,提供极低延迟和高吞吐量。文章涵盖 Maven 配置、事件工厂、处理器及生产者实现,并通过 REST API 和 Thymeleaf 展示订单创建流程。Disruptor 在高并发场景下表现出色,是解决高性能并发处理的理想方案。
  • 10.13 18:05:43
    发表了文章 2024-10-13 18:05:43

    你了解 SpringBoot 在一次 http 请求中耗费了多少内存吗?

    在工作中常需进行全链路压测并优化JVM参数。通过实验可精确计算特定并发下所需的堆内存,并结合JVM新生代大小估算GC频率,进而优化系统。实验基于SpringBoot应用,利用JMeter模拟并发请求,分析GC日志得出:单次HTTP请求平均消耗约34KB堆内存。复杂环境下,如公司线上环境,单次RPC请求内存消耗可达0.5MB至1MB,揭示了高并发场景下的内存管理挑战。
  • 10.10 21:12:48
    发表了文章 2024-10-10 21:12:48

    生日快乐(可复制源代码)

    本文展示了生日快乐动画的效果,并提供了完整的源代码供一键复制。动画包含多个气球元素,采用渐变色设计,配合动态上升效果,营造出生动欢乐的氛围。
  • 10.09 20:25:56
    发表了文章 2024-10-09 20:25:56

    MySQL 5.x和MySQL 8.x到底有什么区别?

    本文详细对比了MySQL 5.x与MySQL 8.x的主要区别,包括存储引擎改进、性能提升、SQL语法增强(如窗口函数、CTE、JSON支持)、安全性和权限管理、并发及锁机制、InnoDB引擎增强、复制与高可用性等方面的显著差异。通过具体示例展示了8.x版本在企业级应用和高并发场景下的优越表现,建议有条件时尽早升级至MySQL 8.x以充分利用其新特性。
  • 10.08 21:07:13
    发表了文章 2024-10-08 21:07:13

    获取ip所在城市

    本文介绍了如何在SpringBoot应用中通过IP地址快速获取用户的国家、省份和城市信息。首先,通过引入GeoLite2 City数据库并整合相关依赖,接着下载并配置GeoLite2 City数据库文件。然后,创建地址获取工具类和Controller接口,最后进行测试以确保功能正常。此方法简单高效,适用于多种应用场景。
  • 10.06 21:35:22
    发表了文章 2024-10-06 21:35:22

    霓虹灯数字时钟(可复制源代码)

    本文展示了如何创建一个具有3D效果的霓虹灯数字时钟。通过HTML、CSS和JavaScript实现了一个动态更新时间的时钟,其中包含了字体定义、3D变换、过渡效果以及颜色动画等关键部分。最后提供了完整的代码供读者复制使用。
  • 10.01 20:55:59
    发表了文章 2024-10-01 20:55:59

    Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能

    本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。

2024年09月

  • 09.28 22:17:54
    发表了文章 2024-09-28 22:17:54

    HTML+CSS 水滴登录页

    该代码实现了一个创意的水滴登录页面,包含一个水滴形状的登录框与两个按钮(忘记密码和注册)。登录框包括用户名、密码输入框及登录按钮。页面设计独特,采用渐变色与动态效果,增强了交互性和视觉美感。以下为关键实现步骤: - 重置默认样式。 - 设置页面背景颜色和尺寸。 - 定义登录表单容器的布局、位置和尺寸。 - 设置登录表单内容样式,包括3D效果和过渡动画。 - 创建伪元素增强水滴效果。 - 设定输入框容器和输入框样式。 - 为提交按钮、忘记密码和注册按钮设定特定样式,并添加悬停效果。
  • 09.26 20:57:42
    发表了文章 2024-09-26 20:57:42

    Spring Boot 优雅实现多租户架构

    本文详细介绍如何使用Spring Boot和Spring Cloud实现多租户架构。多租户架构允许多个租户共用一个应用,各自拥有独立资源和数据。其优势包括满足个性化需求、降低成本、复用代码以及增强可扩展性。文中探讨了架构选型、数据库设计、应用部署及租户管理等内容,并提供了具体实现步骤和技术细节。适用于SaaS应用和多租户云服务等场景。
  • 09.19 22:12:10
    发表了文章 2024-09-19 22:12:10

    终极 Nginx 配置指南(全网最详细)

    本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
  • 发表了文章 2024-12-02

    Arrays.asList() 数组转换成集合酿成的线上事故,差点要滚蛋了!

  • 发表了文章 2024-11-20

    面试官:Redis 大 key 多 key,你要怎么拆分?

  • 发表了文章 2024-11-19

    面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

  • 发表了文章 2024-11-18

    一款高颜值、现代化的 Git 可视化管理工具

  • 发表了文章 2024-11-15

    SpringBoot接口设计防篡改和防重放攻击

  • 发表了文章 2024-11-13

    这款轻量级 Java 表达式引擎,真不错!

  • 发表了文章 2024-11-12

    49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点

  • 发表了文章 2024-11-10

    震撼!通过双重异步,Excel 10万行数据导入从191秒优化到2秒!

  • 发表了文章 2024-11-06

    SpringBoot+EasyExcel轻松实现300万数据快速导出!

  • 发表了文章 2024-11-05

    成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享

  • 发表了文章 2024-11-03

    Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)

  • 发表了文章 2024-11-01

    弃用 RestTemplate,来了解一下官方推荐的 WebClient !

  • 发表了文章 2024-10-29

    强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能

  • 发表了文章 2024-10-28

    ArrayList 核心源码+扩容机制分析

  • 发表了文章 2024-10-27

    提升效率!Spring Boot 开发中的常见失误轻松规避

  • 发表了文章 2024-10-23

    RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器

  • 发表了文章 2024-10-22

    SpringBoot3.x和OCR构建车牌识别系统

  • 发表了文章 2024-10-21

    面试官:MySQL一次到底插入多少条数据合适啊?

  • 发表了文章 2024-10-20

    开发实战:使用Redisson实现分布式延时消息,订单30分钟关闭的另外一种实现!

  • 发表了文章 2024-10-18

    做了个Java打包工具,可以双击启动了!

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息