-
默认equals()只比较引用,需重写并同步重写hashCode();Lombok@EqualsAndHashCode有字段限制和继承陷阱;Objects.equals防null更安全;record自动生成但依赖字段类型正确实现equals()。114 收藏 -
调用window.print()可触发浏览器原生打印对话框,需配合@mediaprintCSS隐藏非关键元素、优化布局适配A4尺寸,并利用onafterprint增强交互体验。267 收藏 -
BigDecimal.scaleByPowerOfTen()仅执行十进制小数点位移(×10ⁿ),不处理物理单位换算;KB→GB需按1024²或1000²系数显式除法,不可直接调用该方法。101 收藏 -
浅拷贝只复制顶层结构,嵌套对象共享引用;深拷贝递归复制所有层级,完全独立互不影响。核心差异在于是否切断引用链,浅拷贝修改嵌套内容会同步影响原对象,深拷贝则不会。396 收藏 -
skip()实际跳过字节数可能小于请求值,需循环调用并校验返回值;推荐用FileChannel.position()替代,避免字符边界和性能问题。240 收藏 -
Scanner类配合IO流可高效解析结构化文本,需选择合适数据源、设置分隔符、预判类型并处理边界;支持字符串和文件输入,推荐try-with-resources管理资源,灵活配置正则分隔符,安全读取需配合hasNextXxx()及缓冲清理。224 收藏 -
用sealedinterface+record+switch记录模式可实现Java版ADT:编译期穷尽检查、杜绝非法状态、强制不可变性,但需严格满足permits显式声明、同模块导出、字段领域建模、无default分支等约束。435 收藏 -
Collections.sort()配合自定义Comparator是最直接方式;需处理空值、越界及类型转换,如数值排序须将String转Integer/Double,升序用a.compareTo(b),降序用b.compareTo(a)或reverseOrder()。112 收藏 -
位运算实现奇偶交替的核心是利用奇偶性驱动流程变化:用n&1快速判奇偶,flag=-flag实现符号翻转,state^=1翻转开关,异或交换变量,掩码分离奇偶位。232 收藏 -
不能直接在@Transactional方法里sendMQ(),因为事务提交发生在方法返回后,此时sendMQ()执行时数据库事务尚未真正落盘,导致消费者查不到数据;应使用@TransactionalEventListener(phase=TransactionPhase.AFTER_COMMIT)确保事务已刷盘后再发消息。176 收藏 -
接口是Java中实现高内聚、低耦合的关键,通过implements实现行为规范,支持默认方法扩展、静态工具方法及多继承,提升系统可维护性与扩展性。333 收藏 -
不建议重写finalize方法处理线程池回收,因其不可靠、已废弃且被JDK18彻底移除;应使用shutdown()、shutdownNow()和awaitTermination()显式管理生命周期。363 收藏 -
requiresstatic表示编译期必需、运行时可选的模块依赖,用于隔离调试模块:编译时保障类型检查,运行时不加载、不报错,结合DEBUG=false可实现编译期裁剪与构建阶段物理隔离。422 收藏 -
Class.isInstance是运行时动态类型检查方法,instanceof是编译期静态运算符;前者通过Class对象调用、支持动态类型,后者语法固定、右操作数须为编译期已知具体类型。311 收藏 -
Paths.get构建安全跨平台路径的核心是分段传参、锚定根目录、normalize后校验;它自动适配系统分隔符,防止路径穿越,需避免字符串拼接与未校验的外部输入。173 收藏