-
Timer.cancel()不能中断正在执行的TimerTask,仅清空队列并停止调度线程;需在run()中检查中断状态或使用volatile标志位,配合purge()和置null,或改用支持中断的ScheduledExecutorService。
-
Java字符串常量池调优需根据实际intern字符串数量和冲突率合理设置-XX:StringTableSize,目标是平均桶长≤1.5,优先验证是否真需调整,避免盲目增大导致内存浪费。
-
do-while可模拟分步骤表单校验流程:用currentStep状态机驱动字段逐个校验,失败重试、成功进阶,支持back/edit指令回退或跳转,校验逻辑与提示分离以提升复用性。
-
Java接口继承通过extends实现垂直整合、implements支持水平扩展,default方法增强复用性;核心是表达业务语义契约,而非模拟类继承或复用代码。
-
接口default方法实现旧系统对象动态功能插拔,核心是不改原有类、不侵入调用链,通过组合与默认行为切换能力,在运行时按需启用或绕过通用逻辑。
-
Collectors.toMap不支持多字段复合Key,需通过字符串拼接(如"dept|role")或自定义不可变Key类(如recordDeptRoleKey)实现;必须提供merge函数避免重复key异常。
-
NumberFormat.getPercentInstance()将比率值(0.0–1.0)自动×100并添加本地化百分号,需传入0.75而非75;默认舍入为整数,可通过setMinimum/MaximumFractionDigits控制小数位;必须指定Locale以确保多语言正确性;parse()会自动÷100还原为比率。
-
getActiveCount返回的是RUNNABLE且已执行run()的线程数,不包含BLOCKED/WAITING/TIMED_WAITING等阻塞态线程,故不能代表真实活跃任务数,仅反映CPU密集型忙线程的瞬时快照。
-
Lambda表达式比匿名内部类更优——创建更快、零对象分配、无类加载开销且JIT可深度优化;方法引用为最优解,但需行为可映射至已有方法。
-
Collections.binarySearch()实现O(logn)查找的前提是列表严格按业务主键升序排列、比较逻辑精准轻量、运行时无并发写入风险;需初始化排序、定制Comparator、正确处理返回值,并优先采用不可变或线程安全有序结构。
-
thenCompose()用于扁平化串联异步任务,避免CompletableFuture嵌套;它接收前序结果并返回新CompletableFuture,自动压平链式结构,而thenApply()无法解包导致类型错误。
-
接口常量适用于多类共用、极少变更的基础配置和语义锚点,须严格遵循命名规范、分层定义位置,并通过接口名直接引用。
-
应直接使用Collections.reverse,它原地反转、O(n)时间复杂度、O(1)空间复杂度且经充分测试;手写递归易栈溢出、性能差、易出错,仅限算法题或教学场景。
-
prestartAllCoreThreads仅预创建corePoolSize个WAITING状态线程,不触发类加载、JIT编译或连接初始化;需配合轻量模拟任务(如健康检查调用)实现真正预热,并在@PostConstruct中安全执行,验证需观测线程状态与首请求P95延迟。
-
多态基于方法重写和动态绑定,运行时根据实际对象调用方法。父类引用指向子类对象时,实例方法调用子类重写版本,属性和静态方法则不表现多态,如Animala=newDog();a.show()执行Dog的show,a.name取Animal的name,a.print()调用Animal的静态方法。多态提升代码扩展性,实现“编译看左边,运行看右边”。