-
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独立捕获异常并压制到主异常。
-
空对象模式是用有行为、有语义的默认对象替代null,解决调用方需安全调用方法的设计问题;适用于“空”为有意义业务状态的场景,如未登录用户、无优惠券、日志未启用等,而非错误情形。
-
slice()创建的是可读字节范围的独立视图,新缓冲区position恒为0、capacity和limit等于原缓冲区remaining(),底层数据数组完全共享,索引状态互不影响,但修改共享内存内容双方立即可见。
-
可用ASCII值作数组下标直接计数,适用于0–127或0–255范围;支持Unicode需预处理;统计英文字母可压缩至26位,分组计数(大小写、数字)可提升效率与清晰度。
-
ConcurrentHashMap的无锁读不依赖扩容过程,而是靠volatile+不可变性+有序写入保障;get()只算hash、定位桶、遍历查找,不检查sizeCtl、transferIndex或nextTable,即使正在扩容也只读原table或已迁移节点。