-
Thread.dumpStack()直接输出到stderr且返回void,无法获取字符串;需用newThrowable().getStackTrace()获取可控栈帧数组,注意其只打印当前线程栈、不适用于生产日志。
-
final字段的可见性保障是“一次性但确定”的:对象正确构造后,其他线程首次读取其final字段必见构造器所赋值,无需synchronized或volatile;该保障依赖构造器末尾的StoreStore屏障,且以无this逃逸为前提。
-
数组哈希适用于字符集固定、查询高频、内存受限等场景,通过ASCII偏移实现O(1)频次统计与子串查询,比unordered_map快3–5倍,但要求字符范围明确且可控。
-
MessageFormat.format()不替换占位符主因是花括号不配对或类型不匹配:{0}未替换因单个{被当字面量;{0,date}传入Instant会ClassCastException;中文locale需显式传入避免格式错乱;固定pattern应staticfinal复用以提升性能。
-
必须在启动JVM时添加-XX:NativeMemoryTracking=detail,否则无法获取原生内存数据;仅支持off/summary/detail三级,生产环境推荐detail;参数须置于java命令最前,不可写为on或放在-jar后。
-
Java是否仍在运行需先执行java-version和javac-version验证;若提示命令不存在,可能已卸载或环境变量失效,须检查“应用和功能”中所有Java相关条目并卸载,再清理JAVA_HOME、Path、注册表JavaSoft项及磁盘残留文件夹。
-
URLConnection.setConnectTimeout控制建立TCP连接的最长时间,单位毫秒,涵盖TCP三次握手及HTTPS的SSL/TLS握手,但不包括DNS解析;设为0将无限等待,易致线程卡死。
-
数组实现栅格地图路径规划本质是将环境建模为二维整数矩阵,通过赋予0(通行)、1(障碍)、负数或浮点数(变量代价)等语义值承载拓扑关系与动态权重,并结合Dijkstra或A*等图搜索算法求解最短路径;关键在于归一化变量、动态计算邻接边权、合理选择算法及优化工程实现。
-
Java枚举单例的唯一性由JVM类加载与序列化机制保障:枚举实例在类初始化时创建且唯一,序列化仅保存名称,反序列化直接查表返回原实例,反射、克隆、重写序列化等攻击均被语言机制拦截。
-
答案:实现Java留言板评论排序需设计合理数据模型,支持按时间、点赞数、层级等多维度排序,通过Comparator自定义规则,构建树形结构并递归排序,结合数据库索引、分页、Redis缓存与异步更新优化性能。
-
Java中“一切皆对象”是设计哲学而非绝对断言,以Object为根统一类型系统,基本类型为性能例外,异常、数组、注解等均被对象化,体现一致性与工程权衡的平衡。
-
不能真正修改编译期常量字段:因编译器内联使其运行时不存在;JDK9+模块化与JVM写屏障禁止staticfinal反射写入;非staticfinal虽可临时覆盖,但受JIT优化和JMM可见性限制。
-
JPMS通过module-info.java显式声明依赖与导出,用requirestransitive固化传递路径、exports/qualifiedexports限制包可见性、opens控制反射权限、uses/provides实现服务解耦,并在启动时强制验证模块图,彻底杜绝classpath隐式依赖风险。
-
扰动函数的核心作用是将hashCode高16位异或到低16位,使高位信息参与低位索引计算,弥补(n−1)&hash仅依赖低位导致的分布不均问题,从而降低哈希冲突概率。
-
封装是将数据与操作打包为类并私有化成员变量,通过publicgetter/setter方法控制访问;目的是防止非法状态、隔离变化和降低耦合,体现为默认private属性、按需提供带校验的存取方法。