-
非静态内部类隐式持有外部类强引用(this$0),易致内存泄漏;静态内部类无此引用,更安全高效。应优先使用静态内部类,需访问外部状态时显式传入WeakReference。
-
G1混合回收由并发标记完成后的下一次YGC触发,而非直接由-XX:InitiatingHeapOccupancyPercent(IHOP)触发;该参数仅控制并发标记周期启动时机,默认45%,作用于整个堆,触发后经初始标记、并发标记、最终标记、清理等阶段,待完成后下一次YGC自动升级为MixedGC。
-
正则表达式是通用文本处理范式,几乎所有主流语言均支持:Python(re/regex)、JavaScript(RegExp/ES2018)、Java(java.util.regex)、Perl(PCRE黄金标准)、C#、Ruby、PHP等;Go、Rust、C/C++、Shell、SQL等也有不同程度支持,但特性与引擎差异显著。
-
ImagingOpException并非用于拦截“变量越界”导致的图像缩放失败的异常,而是因BufferedImageOp操作参数与图像格式不匹配(如通道数不符)等非法配置触发的已检查异常;真正反映坐标的越界异常是IllegalArgumentException或ArrayIndexOutOfBoundsException。
-
浮点数比较必须用带精度的断言,裸写==几乎总是错的,因IEEE754二进制表示存在固有精度损失(如0.1+0.2≠0.3),且编译器优化、平台差异等会放大偏差;iOS应使用XCTAssertEqualWithAccuracy,Pytest用pytest.approx,JUnit需借助AssertJ等第三方库;误差值须为正、匹配数值量级,避免整数隐式转换、单位混淆或未mock随机源。
-
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需匹配声明类型。