-
finally在System.exit、致命错误、Thread.stop()、kill-9时完全不执行;finally中return会无条件覆盖try/catch的返回值;try-with-resources比手动finally更可靠,因编译器自动处理异常抑制且无需判空。
-
Calendar.add()需配合setLenient(false)防意外进位,操作月份用Calendar.MONTH而非数字1,获取当月天数优先用getActualMaximum(),多线程下须每次newInstance或clone,Calendar虽过时但在跨时区、历法细节等场景仍不可替代。
-
构造方法不能有返回类型,因其设计目的是初始化对象而非返回结果。语法规则要求构造方法名与类名相同、无返回类型(包括void)、可重载且由new自动调用;若添加返回类型,将被视为普通方法,破坏对象创建机制的清晰性与可靠性。
-
wait/notify必须在synchronized块中调用,否则抛IllegalMonitorStateException;推荐用while而非if防虚假唤醒;Condition提供更清晰的等待队列;BlockingQueue是生产者-消费者首选;volatile不能替代同步机制。
-
JavaStream无显式Pipeline类,其流水线机制由惰性中间操作和触发执行的终端操作构成;应优先用无状态操作、前置filter、拆分长链路,并避免重复消费、修改集合、误用并行流与peek。
-
SpringBoot3.0+需用Freemarker2.4.0+以兼容JakartaEE,配置需指定模板路径、编码和共享变量,Java对象访问须遵循BeanWrapper规则,路径问题优先检查classpath加载策略。
-
在Java等高级语言中,所有数据结构最终都基于数组或链式结构(即内存块与指针引用)实现;而从计算机底层看,二者可统一归约为“连续内存块”与“地址偏移”,本质上是同一物理内存的不同抽象方式。
-
Arrays.sort()对自定义对象排序报ClassCastException是因为未实现Comparable接口或未传Comparator;基本类型用双轴快排,引用类型用TimSort;binarySearch未找到时返回-(insertionPoint+1);fill填引用会导致共享同一实例;toString只展一层,deepToString才处理嵌套数组。
-
首先下载并解压ApacheAnt,然后设置ANT_HOME、JAVA_HOME环境变量并将Ant的bin目录添加到PATH中,接着通过ant-version验证安装成功,再在项目根目录创建包含compile目标的build.xml文件,最后运行ant命令执行自动化编译,确保路径与项目结构一致。
-
Java黑名单机制核心是“拦截+校验+持久化”,应置于请求进入业务逻辑前(如Web层Interceptor、RPC层Filter、服务内敏感操作前),避免DAO层硬编码;存储依规模与实时性选型。
-
HashMap允许null作为key和value,这是设计选择而非bug;但get()返回null时存在二义性:既可能键不存在,也可能键存在而值为null,易引发逻辑误判和偶发异常。
-
NumberFormat.getPercentInstance()将比率值(0.0–1.0)自动×100并添加本地化百分号,需传入0.75而非75;默认舍入为整数,可通过setMinimum/MaximumFractionDigits控制小数位;必须指定Locale以确保多语言正确性;parse()会自动÷100还原为比率。
-
调小max.poll.records是最快速有效的手段,但需结合业务处理速度、消息大小和内存资源系统性调整,并协同优化fetch.max.bytes、max.partition.fetch.bytes及JVM堆内存分配。
-
Java中HashMap通过链地址法处理哈希冲突,辅以红黑树优化(链表≥8且容量≥64时转换)、哈希扰动(h^(h>>>16))和动态扩容(负载因子0.75)协同提升性能。
-
嵌套三元运算符语法合法但易读性差,如a?b:c?d:e易导致逻辑混乱、维护困难及CodeReview反复被拒。