-
模块描述符(module-info.java)是模块化系统信任起点,需配合编译约束、签名机制与运行时校验保障变量库交付完整性,包括精确导出控制、版本签名、服务声明、哈希注入及静态断言。
-
协变返回类型允许子类重写方法时返回更具体的引用类型子类,提升类型安全与代码简洁性;仅适用于引用类型,不适用于基本类型及其包装类,需配合@Override确保正确重写。
-
离线安装JDK前必须确认系统架构、清除旧Java残留、核对JDK包名后缀;JAVA_HOME须指向JDK根目录且配置生效;离线推荐硬链接法管理java命令,避免alternatives依赖问题。
-
System.in.read()以阻塞方式逐字节读取原始stdin字节,返回0–255的int值(-1表示EOF),不处理换行、空白或UTF-8解码,适合简易按键监听但不适合字符串输入。
-
局部变量表不实现内存高效分配,它只是编译期确定大小的固定结构;真正提升内存效率的是减少局部变量数量、复用变量、控制参数规模、避免逃逸,并配合逃逸分析实现栈上分配。
-
Math.abs()返回参数绝对值,Math.max()返回两数中较大值;二者均支持基本数值类型,需注意NaN处理和空指针风险。
-
Java对象生命周期始于类加载完成,终于垃圾回收清除,历经创建、使用、不可达、回收四阶段;类加载含加载、验证、准备、解析、初始化五步,初始化后方可new实例;实例化时分配堆内存、设对象头、默认初始化字段,再执行父类构造器→字段显式初始化→构造体;强可达时对象可正常使用;不可达后经GC标记清除,现代JVM通常跳过finalize直接回收。
-
Optional.ifPresent仅用于本地空值防护,不能解决微服务迁移中的上下文断裂、分布式容错等问题;它适用于DTO转换、配置读取等轻量场景,需配合契约定义、统一结果封装和降级机制保障变量安全。
-
Collections.binarySearch()是Java中专为已排序List设计的O(logn)查找方法,要求列表严格升序或按指定Comparator有序,否则结果未定义;返回≥0为找到元素的索引,<0则表示未找到且可推导插入位置。
-
用createElement()创建并添加元素需三步:创建节点、设置内容/属性、插入到DOM;关键在插入位置与方式,推荐用DocumentFragment批量插入以提升性能。
-
Runtime.addShutdownHook实现优雅停机的核心是将线程池、数据库连接、文件流、网络通道及临时缓存等需手动管理的资源绑定到JVM关闭流程中,通过静态变量引用并在钩子内按序执行shutdown()、awaitTermination()、close()、flush()、clear()等清理操作,避免资源泄漏。
-
本文介绍在SpringBoot项目中基于Log4j2实现“每个类输出到专属日志文件”的完整方案,涵盖Logger初始化规范、log4j2.xml配置要点,并提供可运行示例与关键注意事项。
-
try-catch无法捕获语法错误、异步错误(如setTimeout/Promise中未await的reject)、跨域/CORS错误、资源加载失败及未处理的Promise拒绝;需分别用编辑器检测、异步内嵌try、onerror事件、.catch()或async/await修复。
-
Proxy.getProxyClass()仅生成代理类,不检查是否已被代理;判断对象是否为代理实例应使用Proxy.isProxyClass()和Proxy.getInvocationHandler()。
-
ServiceLoader.load()返回空迭代器却不报错,主因是类加载器隔离或路径错误:检查META-INF/services/接口全限定名文件是否在jar根路径、文件名无.class后缀、内容无空格/BOM、实现类public且含public无参构造器,并显式传入匹配的ClassLoader。