-
泛型运行时类型参数虽被擦除,但类结构、字段名、方法签名及注解等元数据仍保留在字节码中;ORM利用反射获取的泛型声明(如ParameterizedType)、泛型类独立Class对象、泛型边界约束及工厂注入Class<T>实现高效映射与类型安全。
-
Eclipse中直接导出为ZIP会导致导入后丢失包结构和构建路径;应使用“ExportasJAR”功能生成标准JAR文件,并确保Manifest中配置Main-Class,才能保证项目可导入、可编译、可执行。
-
Collections.checkedCollection是Java运行时类型安全包装器,通过在add、addAll等写入操作时用getClass()与指定Class精确匹配校验元素类型,防止ClassCastException,但不检查已有元素、不支持协变、不可绕过原始引用操作。
-
最常见报错是“Nosuitabledriverfound”,因未加载对应JDBC驱动JAR;执行卡住多因连接被占用;中文乱码源于URL缺编码参数;导入SQL后需Reloaddatabase刷新元数据;驱动与数据库版本须严格匹配。
-
应关注路径分隔符、换行符、文件权限等底层行为而非os.name;配置文件需分层加载并避免硬编码路径;容器中须显式设置时区;数据库连接host不可写localhost,且注意JDBCSSL配置。
-
ConcurrentHashMap迭代器是弱一致性的,它不加锁、无死锁风险,遍历时按桶顺序读取当前头节点,已扫位置的修改不可见,未扫位置的新写入可能被后续捕获,结果为近似快照叠加部分增量。
-
类是对象的模板,定义属性和方法;对象是类的实例,通过new创建并独立存储数据;构造方法初始化对象,访问修饰符控制成员可见性,实现封装。
-
hasNextBigDecimal()不适合财务校验,因其仅做基础词法识别,不检查科学计数法、小数位数、非负性、无穷值及非法字符;应先用正则预检再安全解析。
-
Integer缓存池可扩容至-128~200000,通过-XX:AutoBoxCacheMax=200000实现;Long等类型缓存不可调,需用ConcurrentHashMap显式代理;验证用JFR或-XX:+PrintClassHistogram,判等必须用equals()。
-
多级缓存故障时需通过显式、可观测、可验证的异常处理契约保障系统韧性:每级失效场景须定义受控异常及对应兜底行为,各层标注fallback语义标签(如[[fallback-to:redis]]),确保降级路径可预期、状态可回滚、日志可追溯,并通过静态扫描、混沌注入与线上熔断联动三重机制验证契约有效性。
-
ServiceLoader.reload()不会重新加载SPI实现类,仅清空缓存并重建迭代器;已加载类无法卸载,JVM不支持热替换,且reload()不触发资源重读或类加载,故修改后需重启应用才生效。
-
StringBuilder适用于频繁字符串拼接场景,核心价值是避免重复创建对象;单次拼接由编译器优化,无需手动使用;需预设容量、注意append()参数陷阱、toString()后应清空或弃用实例。
-
JavaRobot类通过发送原生输入事件实现跨技术栈GUI自动化,但需手动处理坐标、时序与等待;初始化须捕获AWTException、确保图形界面、macOS授权;鼠标操作需完整执行移动/按下/释放三步;键盘输入依赖虚拟键码,组合键须严格按序压放;测试中必须结合轮询、截图比对或合理delay应对界面异步渲染。
-
Java项目统一开发环境需通过可执行配置落地:锁定JDK版本、使用MavenWrapper、统一编码与换行符、提交IDE格式化规则及脚本,确保新成员gitclone后五分钟内开箱即编译。
-
flatMap更适合处理嵌套Optional,因为它能将Optional<Optional<T>>“压平”为Optional<T>,而map会逐层包装导致嵌套;其参数必须返回Optional,否则编译失败,且在上游为空时自动短路,语义更精准。