-
MyBatis插件通过JDK动态代理拦截Executor、StatementHandler、ParameterHandler、ResultSetHandler四大接口对象,仅在Configuration创建对象时经InterceptorChain.pluginAll()包装才生效。487 收藏 -
SpringBoot2.x默认仅暴露/actuator/health(仅status),/actuator/metrics完全不暴露,需显式配置management.endpoints.web.exposure.include等参数启用端点并确保Micrometer和HealthIndicator正确集成。350 收藏 -
静态链接发生在类加载的解析阶段,即类首次主动使用前,JVM将符号引用(如类名、方法名)替换为内存中确定位置(如常量池索引、vtable偏移等),且只执行一次。332 收藏 -
不能用String.compareTo()比较版本号,因其按字典序导致"2.10"<"2.9"错误;应拆分"."后逐段转整数比较,注意空段处理与需求对齐。500 收藏 -
ForkJoinPool适合可递归分解的CPU密集型任务,如归并排序、树遍历、分治计算和并行聚合;不适合阻塞I/O、强顺序依赖、频繁共享写入或超短耗时任务。137 收藏 -
SQLException是checkedexception,因数据库操作天然不可靠,JDBC规范强制处理以避免静默失败;它不自动触发回滚,需显式调用rollback()或配置Spring的rollbackFor。338 收藏 -
三元运算符适用于选择值而非执行分支逻辑;对if-else递增计数这类副作用操作,强行使用三元运算符会降低可读性与安全性,应优先保留传统if-else结构。446 收藏 -
实现区间判定需用关系运算符界定边界、逻辑运算符组合条件,区分闭/开/半开区间符号组合,注意优先级、空值、浮点误差,封装函数并结合业务语义化扩展。104 收藏 -
SpringBoot默认使用Jackson的SNAKE_CASE命名策略时,会将Java驼峰字段(如firstName)自动映射为下划线格式(如first_name)的JSON键,导致直接发送{"firstName":"John"}时字段值为null。491 收藏 -
用ArrayList实现内存版CRUD适合初学者练手,但不可上线:数据随JVM退出丢失,多线程不安全;建议定义User类并手动管理id、重写equals/hashCode;增删改查需注意空值、并发和索引越界。324 收藏 -
用ArrayList+Student类可快速搭建内存版成绩管理系统,Student需含id、name和subjectScores(Map),用Stream操作增删查,录入时校验分数≥0。482 收藏 -
控制台菜单需用Scanner配合while(true)循环与switch分支实现,注意nextInt()后调用nextLine()清缓冲区,避免换行符残留;推荐用enum+Map管理选项,解耦菜单展示与业务逻辑,统一处理中文编码问题。203 收藏 -
Javafor循环三种写法:①传统型(控制索引/跳步/反向);②增强型(遍历集合/数组,简洁安全);③for-each变体(Lambda或方法引用,函数式风格)。117 收藏 -
Serial收集器仅适用于资源受限且延迟不敏感的轻量级场景,如嵌入式设备(≤128MB堆、单核)、命令行工具、CI/CD临时Java任务、教学演示;需显式启用-XX:+UseSerialGC,禁用于线上服务,因其单线程STW无法伸缩。118 收藏 -
值类型是无身份的数据块,不参与GC、不可锁、字段强制final,支持方法调用和字段比对;JDK21+预览特性,需--enable-preview启用,数组连续存储提升缓存命中率与性能。195 收藏