-
@Version注解需配合乐观锁拦截器才生效,仅加注解无效;必须注册MybatisPlusInterceptor并添加OptimisticLockerInnerInterceptor,且字段类型为数值型、数据库列非空,默认值0。104 收藏 -
Android应用从APK切换为AAB发布后,内置的AMR格式音频文件因被自动压缩而无法加载,引发Resources$NotFoundException;通过配置aaptOptions.noCompress显式排除AMR文件可彻底解决。259 收藏 -
Java读取文件乱码的根本原因是程序字符编码与文件实际编码不一致,需明确文件真实编码并显式指定,禁用系统默认编码,处理BOM,统一项目UTF-8规范。476 收藏 -
本文介绍如何在SpringJPA中实现灵活、可扩展的动态条件分页查询,避免传统if-else组合爆炸问题,通过JPQL参数占位符或CriteriaAPI实现“仅对非空字段生效”的过滤逻辑。414 收藏 -
instanceof不会抛出NullPointerException,左操作数为null时安全返回false;它与强制类型转换的关键区别在于JVM层面的null保护,且右侧必须是编译期已知的引用类型。213 收藏 -
Java类单继承且不可继承final类;私有成员存在但不可见;@Override是编译期契约,防止重写失效;多态仅适用于非static、非final、非private的实例方法,调用由运行时类型决定。148 收藏 -
CopyOnWriteArrayList写操作不阻塞读,因每次修改都新建数组复制内容,读操作持老数组引用且无锁;但写开销大、迭代器不可见新元素、多方法组合非原子。454 收藏 -
数组用length字段,集合用size()方法,字符串用length()方法;三者语法语义不同,混用导致编译错误,嵌套结构需逐层判断类型。132 收藏 -
Lombok的@Builder注解会覆盖类中已初始化的集合字段(如privateList<Category>children=newArrayList<>();),导致调用addChild()时触发NullPointerException。根本原因在于Builder生成的构造逻辑未保留字段默认值。178 收藏 -
本文探讨在不直接测试私有方法的前提下,通过端到端断言公共方法输出来间接覆盖私有逻辑,确保关键业务字段(如extras)被正确计算并注入返回对象,从而防范因代码遗漏导致的静默缺陷。187 收藏 -
变量遮蔽指子类或方法内同名变量覆盖父类/成员变量,需用this访问当前对象成员、super访问父类成员;构造器中this()和super()须首行且互斥;遮蔽是静态绑定,不同于方法重写的动态绑定。350 收藏 -
BCryptPasswordEncoder默认强度为10,但高并发下易致CPU飙升,推荐显式指定strength=11;必须用matches()比对密码,严禁字符串直接比较;SpringBoot3需显式配置PasswordEncoderBean,且密码长度不得超过72字节。321 收藏 -
在Maven聚合项目中,若ROOT仅作为聚合(aggregation)而非父模块(parent),直接在其pom.xml中声明<dependencies>无效;但合理使用<dependencyManagement>并配合BOM导入机制,仍可统一管理子模块依赖版本。120 收藏 -
本文讲解如何在Java开发中正确处理同一项目内多个public类之间的依赖关系,解决“cannotfindsymbol”编译错误,重点介绍现代构建工具(Maven/Gradle)的标准化用法,并对比说明传统手动编译的注意事项。209 收藏 -
SOLID不是银弹,而是针对“改一处崩一片”的五条反思性约束;它不规定写法,只警示频繁修改多类多方法即可能违反原则。171 收藏