-
位掩码用&、|、^是因状态少、读写频、内存敏时更省空间且更快;int存32开关,long存64,CPU位操作原子、无对象头与GC压力。
-
Java中addSuppressed()不是日志屏蔽工具,而是为try-with-resources设计的异常聚合机制;滥用会导致日志更乱,应通过Logback配置(如%ex{1})、自定义转换器或SpringBoot的exception-conversion-word分级控制异常输出。
-
subList返回原列表的视图,对子列表的修改会直接影响原列表,反之原列表结构变动会导致访问子列表时抛出ConcurrentModificationException,因此需谨慎使用。
-
HashMap手动实现核心是哈希定位与链表处理:put先计算index=hash&(length-1),冲突则头插;get先比hash再调equals,避免无效比较;扩容必须rehash并翻倍长度,否则下标错乱。
-
Optional.flatMap与Stream.filter配合最常用:用flatMap将Optional转为Stream(JDK9+直接opt.stream(),JDK8用flatMap+Stream::ofNullable),避免map造成类型嵌套;Stream.ofNullable安全处理null元素,替代filter(Objects::nonNull);优先使用findFirst等原生返回Optional的终止操作,避免手动包装;禁用get(),坚持函数式链式调用。
-
ScheduledExecutorService是实现周期性提醒任务最稳妥的Java标准库方案,线程安全、精度高、可取消、异常不中断调度,配合ConcurrentHashMap与TriggerPolicy接口可支撑多模式、高并发、低延迟提醒。
-
XPathEvaluator初始化失败是因精简JRE缺实现类,需显式指定命名空间URI;XML默认命名空间导致匹配失败,应声明前缀或用local-name();XPathExpression须复用,避免重复编译;evaluate返回类型需按XPathConstants严格选择,防止ClassCastException。
-
怎么用spring-cloud-starter-gateway启动最简网关SpringCloudGateway不能standalone运行,必须依赖SpringBootWebFlux,且不能引入spring-boot-starter-web(否则启动失败)。常见错误是照着旧版SpringCloudNetflix教程加了MVC依赖,结果报ApplicationContextException:Unabletostartreactivewebserver。
-
Java中泛型与可变参数结合易引发unchecked警告和ClassCastException,因类型擦除使泛型数组无法安全创建;应避免返回T[],优先用Collection<T>或Arrays.asList(items)封装处理。
-
抽象类是Java中用于继承的带骨架协议,既提供可复用的公共实现(如字段、构造逻辑、通用方法),又通过abstract方法强制子类实现关键行为(如draw()、calculate()),实现代码复用与规范约束的统一。
-
Java方法重写触发动态绑定需满足:非private/static/final的实例方法,且子类有签名一致的重写方法,JVM运行时通过vtable查表调用。
-
Java标准库javax.sound.sampledAPI本身不提供重采样功能,无法直接改变音频采样率;AudioSystem.getAudioInputStream()仅支持兼容格式的无损转换,绝不会执行插值重采样。
-
finally中的return会覆盖try/catch的返回值,包括正常值、异常和对象引用;IDE警告但编译通过;应将return移至finally外,用try-with-resources或手动关闭资源确保不干扰返回。
-
多线程修改相邻字段变慢是因伪共享:同一缓存行内不同变量被多线程修改,触发MESI协议频繁失效与重载,导致吞吐下降、延迟毛刺;常见于AtomicLong数组、RingBuffer等场景。
-
答案:Java字符串操作需注意不可变性与性能优化。1.推荐使用字面量创建字符串以利用常量池,比较内容应调用equals()方法;2.通过toCharArray()和charAt()实现字符串与字符的转换;3.常用方法如trim()、substring()、replace()、split()、大小写转换等提升处理效率;4.频繁拼接应使用StringBuilder避免产生过多临时对象,提升性能。掌握这些技巧可显著提高代码质量与执行效率。