JavaDog程序狗

【Java】BigDecimal引发事故大揭秘,这“雷区”你踩过没?

本文揭秘BigDecimal三大致命陷阱:用double构造导致精度丢失(如0.1变0.100000…),必须用字符串构造;除法不设精度会抛异常,需指定舍入模式;equals()同时比较值和精度,2.00≠2.0,需用compareTo()。牢记字符串构造、设精度、银行家舍入三原则,避免财务事故

JavaDog程序狗 JavaDog程序狗 发布于 2025-03-14

【java】easypoi导出excel单元格,填充动态下拉列

本文介绍了使用 EasyPOI 库在导出 Excel 文件时为特定列动态生成下拉列表的方法。通过 DataValidationHelper 工具,根据每个学生的兴趣爱好数据创建动态下拉列表。具体步骤包括初始化数据验证帮助器、创建下拉列表约束、定义应用区域以及将数据验证规则添加到工作表中。

JavaDog程序狗 JavaDog程序狗 发布于 2025-02-24

【Java】throw异常后代码还执行吗?80%小伙伴竟然不知道

在Java中,throw语句用于抛出异常。一旦执行throw,当前方法或代码块的后续代码将不再执行。如果抛出的异常被try-catch结构捕获,catch块内的代码将被执行,而throw后的代码不会执行。如果没有匹配的try-catch结构来处理这个异常,throw之后的代码也不会执行,并且异常会继续向上抛出,直到被处理或导致程序终止。简而言之,throw之后的代码通常不会执行,除非异常被成功捕获并处理后继续执行后续逻辑。

JavaDog程序狗 JavaDog程序狗 发布于 2024-08-15

【Java】服务CPU占用率100%,教你用jstack排查定位

本文介绍了使用jstack工具诊断Java应用中CPU高占用问题的方法。关键步骤包括:首先,通过top或jps -l命令定位高CPU占用的Java进程;其次,运用top -Hp <PID>找出消耗CPU最多的线程;接着,将线程ID转换为十六进制,以便于jstack命令使用;最后,通过jstack <PID> | grep '<Hex Thread ID>' -C5命令获取特定线程的堆栈信息,进而分析和修复问题代码。jstack是Java开发者解决性能问题的有力工具。

JavaDog程序狗 JavaDog程序狗 发布于 2024-07-18

【Java】@Transactional事务套着ReentrantLock锁,锁竟然失效超卖了

本文深入探讨了Java并发环境中的超卖问题,这是一种常见的数据一致性挑战,尤其在资源有限且面临高并发访问时更为显著。文章通过具体案例分析,阐述了四种核心解决方案:乐观锁、悲观锁、分布式锁以及代码级锁(如ReentrantLock)。特别强调了事务边界对于锁机制的有效性至关重要,指出锁的获取和释放应在事务边界内执行,以避免数据在事务未完成前被其他线程修改,从而导致数据不一致。通过将锁操作置于事务边界内,结合try-finally结构确保锁的正确管理,可以有效防止超卖问题,保障系统的稳定运行和数据的完整性。在实践中,选择合适的并发控制策略需考虑业务特性与性能需求,以达到最佳效果。

JavaDog程序狗 JavaDog程序狗 发布于 2024-07-17

【苹果】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本

SpringBoot监听Iphone15有货邮件提醒+python自动化脚本小功能。后端基于SpringBoot为,通过苹果官网进行有货接口调用,将JSON结果解析分析是否有货,并展示近10条有货记录列;可灵活监听对应型号,通过邮件关联,有货邮件通知;也可灵活进行有货自动触发自动化Selenium+Python脚本。

JavaDog程序狗 JavaDog程序狗 发布于 2023-09-19

【规范】SpringBoot接口返回结果及异常统一处理,这样封装才优雅

本文通过多个SpringBoot实际项目进行归纳整理,从统一接口返回结果和配置全局异常处理两个方面出发,介绍如何优雅的封装规范后端接口输出,详细刨析@RestControllerAdvice和@ExceptionHandler注解及使用方式,增加后端服务健壮性和与前端对接规范性

JavaDog程序狗 JavaDog程序狗 发布于 2023-09-15

【aspose-words】Aspose.Words for Java模板语法详细剖析

Aspose.Words for Java模板语法详细剖析,如何查找aspose-words官方文档,,如何使用aspose-words常用模板标签,如何开发aspose-words项目实操。 Using Conditional Blocks(使用条件块);Using Variables(使用变量);Merging Table Cells Dynamically(动态合并表单元格)等具体模板语法介绍

JavaDog程序狗 JavaDog程序狗 发布于 2023-06-15

【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序

企业黑红名单吐槽小程序是一个具有吐槽发布企业信息的一个平台,言论自由,评判自定,便于我们打工人分辨企业好坏。技术栈基于SpringBoot+MybatisPlus+uniapp+uview2等更多优秀组件及前沿技术开发,注释丰富,代码简洁,开箱即用。及其适合项目分层实战及业务流转对接,是个练手学习简单项目的好机会。

JavaDog程序狗 JavaDog程序狗 发布于 2023-03-01

【ChatGPT】SpringBoot+uniapp+uview2对接OpenAI,带你开发玩转ChatGPT

通过Springboot+uniapp+uview2对接openai-gpt3-java,实现我们自己的ChatGPT聊天机器人。目标前端实现ChatGPT聊天页面,后端与OpenAI实现对接,前后端接口对接实现聊天功能。正文分为准备,功能分析,开发,运行等方便全方面剖析,手把手教你如何做出属于自己的AI聊天机器人。

JavaDog程序狗 JavaDog程序狗 发布于 2023-02-27