-
Java业务异常应继承RuntimeException,因其代表可预期的业务失败,无需强制捕获;需按领域命名并隔离异常类,提供可读错误码字符串,于领域逻辑内层抛出,避免滥用catch控制流程。
-
ParNew和ParallelOld不能组合使用,因其设计目标冲突(低延迟vs高吞吐)、内存分配策略不兼容(指针碰撞vs空闲列表)、屏障协议与实现接口互不匹配。
-
CompletableFuture更适合佣金计算场景,因其天然支持有依赖的异步链路(如关系查询→规则加载→金额聚合),具备组合、扇出、异常穿透和超时控制能力,而纯线程池易导致卡死、超时和资源泄漏。
-
Xms与Xmx应设为相同值以避免运行时堆扩容卡顿。因初始堆过小会导致频繁向系统申请内存,引发数十至数百毫秒STW;需基于监控used峰值的1.2–1.5倍设定,并确保不超过容器内存限制的75%。
-
TransactionSystemException报错需先查getCause(),90%为SQLException或ConnectionClosedException;常见原因包括连接池未校验连接有效性、本类方法调用导致事务失效、InnoDB锁等待超时。
-
关闭IntelliJIDEA并确保后台进程已结束;2.删除系统中对应的配置、缓存和插件目录,Windows路径为%USERPROFILE%.IntelliJIdea,macOS为~/Library/ApplicationSupport/JetBrains/IntelliJIdea,Linux为~/.config/JetBrains/IntelliJIdea;3.重新启动IDEA,将恢复至初始设置状态,提示选择主题和跳过设置导入,实现全新安装效果。
-
JavaWeb项目配置模板引擎核心是选型、引入依赖、注册处理器、配置路径和渲染逻辑;推荐Thymeleaf,SpringBoot通过spring-boot-starter-thymeleaf自动配置,默认路径src/main/resources/templates/,返回字符串视图名即映射HTML文件,支持Model传参与URL重写。
-
控制反转(IoC)是高层设计思想,指将对象控制权从代码移交容器;依赖注入(DI)是其实现手段,指通过构造、Setter等方式由容器注入依赖。IoC回答“谁控制”,DI回答“如何传”,二者维度不同,不可互换。
-
不推荐用Java异常实现业务流程控制,因其使逻辑隐晦、性能下降、调试困难;异常应仅用于处理非预期错误,而非可预判的业务分支如“库存不足”;替代方案包括Optional、状态枚举和结果封装类。
-
switch表达式需显式yield返回值,箭头分支单表达式自动yield,块分支须手动yield;枚举类型必须穷尽所有常量;逗号分隔case支持多常量;类型推导严格,null需匹配声明类型。
-
Collections.replaceAll方法用于替换List中所有旧值为新值,基于equals比较,修改原列表并返回是否发生替换。
-
Integer.toUnsignedString是Java8引入的用于将int按无符号语义转字符串的方法,解决高位为1时有符号输出负数的问题,内部通过long类型加法绕过符号位处理。
-
Charset.availableCharsets()返回SortedMap<String,Charset>,键为标准字符集名(如"UTF-8"),值为对应Charset实例;它仅包含JVM当前已加载注册的字符集,不保证穷举所有可能,且结果受JDK版本、厂商、操作系统及动态provider影响。
-
基数排序适合处理固定长度的整数或字符串,按位分组计数、不比较大小,时间复杂度为O(d×(n+k));电话号码需清洗、统一为11位数字数组,再逐位进行稳定计数排序。
-
Java的try-with-resources本质是编译器自动生成带异常压制的逆序close调用,资源变量提升为局部变量,finally中按声明逆序关闭,每个close独立捕获异常并压制到主异常。