Java String 原理深度解析:常量池、对象创建与不可变性

本文深入解析 Java 中 String 的核心原理,涵盖基本数据类型辨析、字符与字符串的区别。重点讲解 JDK 6 与 7+ 版本中字符串常量池位置的变化及 intern() 方法的不同行为机制,并对比 String、StringBuffer 与 StringBuilder 在内存分配、线程安全及性能上的差异,阐明 String 设计为不可变的多重原因。

Java Object equals()方法详解:默认行为与重写实践

本文解析Java中Object类的equals()方法。默认情况下,该方法继承自Object,通过==运算符比较两个对象的内存地址(同一性)。对于业务对象,需根据属性值重写equals()以判断逻辑相等性;而String等包装类已预实现了基于内容的比较逻辑。文章提供了未重写与重写前后的代码对比及运行结果说明,帮助理解对象判等的本质差异。

Java Object equals()方法详解:默认行为与重写实践

Java ConcurrentLinkedQueue 原理与源码解析

本文深入解析Java中的ConcurrentLinkedQueue,这是一种基于单向链表和非阻塞CAS算法的无界线程安全队列。通过剖析offer、poll和peek等核心方法的源码逻辑,揭示其如何利用volatile变量和原子操作保障并发场景下的数据一致性,并对比其与阻塞队列的区别及适用场景。

Java中使用注解实现字典值自动翻译的方法

在Java开发中,通过自定义注解和ResponsebodyAdvice拦截器,可以实现实体类字典字段的自动翻译。该方法避免了数据库关联查询带来的性能损耗,支持从Redis或数据库中获取字典值,并将结果以“字段名+String”的形式返回到前端。

Java中使用注解实现字典值自动翻译的方法

Java 数组入门:定义、初始化与遍历详解

本文详细介绍 Java 数组的基本概念、定义格式、初始值状态及三种常用遍历方法。重点讲解数组长度固定、索引从0开始等特性,对比传统 for、动态 length 判断和增强型 for 循环的优劣,帮助初学者掌握 Java 数组的核心操作。

Java并发编程:线程创建的三种方式详解

本文详细解析Java中创建线程的三种核心方式:继承Thread类、实现Runnable接口以及实现Callable接口。通过代码示例对比各自的优缺点,重点讲解如何通过使用Runnable和Callable解决单继承局限及获取线程执行结果的问题,帮助开发者在实际项目中选择合适的线程创建方案。

MyBatis-Plus 打印 SQL 语句的两种常用配置方法

在 MyBatis-Plus 开发中,查看 SQL 语句有助于排查数据问题。本文介绍两种主流配置方式:通过 log-impl 输出详细包含结果集的 SQL,以及通过 logging.level 仅记录执行语句与影响行数。提供 YAML 与 Properties 两种格式的配置文件写法,帮助开发者根据调试需求选择合适的日志粒度。