java教程技术文章
-
变量访问异常若源于exports目标模块名错误,本质是模块导出与导入名称不匹配,多见于CommonJS或混合环境;需严格核对导出方式(默认/命名)、导入语法、路径解析及循环依赖等问题。465 收藏 -
使用Optional.ofNullable可清晰统一处理前端模糊查询参数的判空、去空格和转like模式逻辑,避免因空值导致全表扫描,提升代码可读性与可维护性。141 收藏 -
CopyOnWriteArrayList遍历时不用加锁因其迭代器基于底层数组的不可变快照,写操作通过原子替换引用更新数组,读写互不阻塞;但写操作本身使用ReentrantLock,仅读操作无锁。233 收藏 -
关键在于显式指定字符集:用InputStreamReader/OutputStreamWriter传入StandardCharsets.UTF_8等编码,避免依赖系统默认编码导致跨平台中文乱码;环境变量传递需编码对齐,敏感内容建议Base64编码。425 收藏 -
ServiceLoader是轻量级服务发现机制,基于META-INF/services配置动态加载接口实现类,不支持变量级自动注入;它实现多实现动态选择、运行时插件加载与调用方解耦。306 收藏 -
Timer.cancel()不能中断正在执行的TimerTask,仅清空队列并停止调度线程;需在run()中检查中断状态或使用volatile标志位,配合purge()和置null,或改用支持中断的ScheduledExecutorService。223 收藏 -
Java字符串常量池调优需根据实际intern字符串数量和冲突率合理设置-XX:StringTableSize,目标是平均桶长≤1.5,优先验证是否真需调整,避免盲目增大导致内存浪费。414 收藏 -
do-while可模拟分步骤表单校验流程:用currentStep状态机驱动字段逐个校验,失败重试、成功进阶,支持back/edit指令回退或跳转,校验逻辑与提示分离以提升复用性。284 收藏 -
Java接口继承通过extends实现垂直整合、implements支持水平扩展,default方法增强复用性;核心是表达业务语义契约,而非模拟类继承或复用代码。206 收藏 -
接口default方法实现旧系统对象动态功能插拔,核心是不改原有类、不侵入调用链,通过组合与默认行为切换能力,在运行时按需启用或绕过通用逻辑。471 收藏 -
Collectors.toMap不支持多字段复合Key,需通过字符串拼接(如"dept|role")或自定义不可变Key类(如recordDeptRoleKey)实现;必须提供merge函数避免重复key异常。323 收藏 -
NumberFormat.getPercentInstance()将比率值(0.0–1.0)自动×100并添加本地化百分号,需传入0.75而非75;默认舍入为整数,可通过setMinimum/MaximumFractionDigits控制小数位;必须指定Locale以确保多语言正确性;parse()会自动÷100还原为比率。102 收藏 -
getActiveCount返回的是RUNNABLE且已执行run()的线程数,不包含BLOCKED/WAITING/TIMED_WAITING等阻塞态线程,故不能代表真实活跃任务数,仅反映CPU密集型忙线程的瞬时快照。125 收藏 -
Lambda表达式比匿名内部类更优——创建更快、零对象分配、无类加载开销且JIT可深度优化;方法引用为最优解,但需行为可映射至已有方法。447 收藏 -
Collections.binarySearch()实现O(logn)查找的前提是列表严格按业务主键升序排列、比较逻辑精准轻量、运行时无并发写入风险;需初始化排序、定制Comparator、正确处理返回值,并优先采用不可变或线程安全有序结构。207 收藏