文章封面

中文拼音转换工具类及示例

本文介绍了使用pinyin4j库进行中文拼音转换的方法。首先通过Maven引入依赖,然后通过工具类PinYinUtil实现全拼和简拼的转换,其中可忽略非汉字字符。最后,通过示例代码展示了如何调用工具类进行拼音转换。

你真的会写for循环吗?来看看这些常见的for循环优化方式

文章探讨了提高for循环效率的几种常见方法。首先,介绍了直接使用size()获取长度的常规写法,但指出其缺点在于每次循环都需要计算size()。接着,提出几种改进方案,包括将size()存储在变量中,但要注意变量的作用域;使用倒序遍历来避免重复计算size(),但需要注意结果顺序;使用Iterator或Java 1.5后的增强for循环简化代码;在循环嵌套中遵循外小内大的原则;提取循环中不需要循环的逻辑以提高效率;最后,建议将异常处理放在循环外部。这些方法各有优缺点,应根据实际情况选择合适的方法来优化for循环的性能。

文章封面
文章封面

跟狗屎一样的代码,到底该如何重构?

本文探讨了如何重构糟糕的代码。首先,介绍了重构的原则和目的,强调重构是为了在不改变软件行为的前提下提高其可理解性和降低修改成本。接着,详细阐述了重构的时机、代码的坏味道以及如何通过提炼函数、搬移特性、重新组织数据、简化条件表达式和函数调用等方法来重构代码。最后,介绍了如何处理概括关系,包括字段和函数的上移、下移、提炼子类、超类和接口等。通过这些方法,可以有效地改善代码质量,提高开发效率。

后端 

SpringBoot+Mybatis 如何实现流式查询,你知道吗?

本文介绍了MyBatis的流式查询功能,这是MyBatis中相对冷门但非常有用的特性。流式查询允许分批查询大量数据,避免一次性加载过多数据导致的内存溢出问题。文章详细阐述了流式查询的原理、实现方式、应用场景和注意事项,并通过示例代码展示了如何在MyBatis中使用流式查询功能。

文章封面
文章封面

BigDecimal加减乘除运算以及四舍五入

本文介绍了Java中BigDecimal类的基本算术运算,包括加法、减法、乘法、除法和绝对值等操作。同时,详细阐述了setScale()方法的不同舍入模式,如ROUND_DOWN、ROUND_UP、ROUND_HALF_UP等,并举例说明其应用。最后,通过一个示例代码展示了如何结合加减乘除与四舍五入来计算总内存。文章强调了避免使用浮点数直接构造BigDecimal对象的重要性,并提示根据业务需求选择合适的舍入模式。

UUID的弊端以及雪花算法

在分布式系统中,全局唯一ID的生成至关重要。本文首先阐述了分布式ID生成的业务需求,包括全局唯一性、趋势递增、单调递增、信息安全、含时间戳等要求。接着,分析了几种常见的ID生成方案,如UUID、数据库自增主键、Redis生成全局ID等,并指出了它们的优缺点。最后,重点介绍了Snowflake算法,该算法具有按时间有序生成、不产生ID碰撞、效率高等优点,但存在依赖机器时钟的缺点。通过分析,本文旨在为读者提供选择合适ID生成方案的理论依据。

文章封面
文章封面

订单系统就该这么设计(万能通用),稳的一批!

本文探讨了订单业务在系统研发中的核心地位,分析了订单体系、流程管理、结构设计和技术方案等方面。强调在设计订单流程时,要注重可扩展性和数据规划,采用轻量级分步实现。文章深入解析了订单流程的各个阶段,包括正向流程、逆向流程、调度与监控等,并提出了相应的技术解决方案,如并行与异步处理、超时问题处理、分布式事务等。最后,文章还讨论了数据方案,包括转化分析、分库分表和数据同步等,为订单业务的优化提供了全面的技术指导。

PO、VO、DAO、BO、DTO、POJO 能分清吗?

《阿里巴巴Java开发规范》阐述了领域模型的重要部分。规范中提出了分层领域模型,包括DO、DTO、BO、AO、VO、Query等对象,并规定了其命名规范。同时,详细介绍了PO、VO、DAO、BO、DTO、POJO等概念及其在软件开发中的应用,强调分层设计降低耦合,便于维护和扩展。此规范为Java开发者提供了清晰的设计指导。

文章封面
文章封面

分布式ID生成算法——雪花算法

本文介绍了分布式ID生成技术及其解决方案。在分布式系统中,使用自增ID会导致ID冲突,因此需要分布式ID来保证ID的唯一性。雪花算法是Twitter公司提出的一种经典解决方案,它通过时间戳、工作机器ID和序列号生成64位ID,保证了ID的唯一性和有序性。此外,文章还讨论了时钟回拨问题及其解决方法,以及其他分布式ID解决方案,如UUID、Redis自增和美团leaf算法。

分布式ID生成算法——leaf算法

Leaf是美团基于雪花算法提出的一种分布式ID生成算法,具有全局唯一、高可用、高并发、低延迟等优势。Leaf支持号段模式和雪花ID模式两种生成方式。号段模式经历了预分发号段、双Buffer优化、动态步长等优化阶段,而雪花ID模式则与雪花算法相似。Leaf还提供了Java版本实现,并对Zookeeper生成机器号做了弱依赖处理,增强了系统的稳定性。

文章封面