-
高并发大促下库存扣减失败的补偿必须快、准、可追溯、不扰主链路:采用异步扫描+状态机驱动,三元状态标识(pending/confirmed/done),幂等回滚,超时熔断,分级降级。
-
Filter是Servlet规范组件,作用于容器层,用于请求响应拦截;Interceptor是SpringMVC组件,作用于HandlerMapping后,依赖Spring上下文,用于Controller前后处理。
-
Map.merge()仅在键已存在时调用remappingFunction;键不存在则直接put,不执行函数;返回null会删除该键;多线程需用ConcurrentHashMap保证原子性。
-
应按使用者和使用场景拆分接口:谁在用、为什么用,识别方法调用不重叠、未被调用超40%、测试中大量mock等信号;按业务角色(如UserAuthenticator)而非CRUD命名;用组合代替全能接口继承;老接口迁移需渐进式三步走。
-
命令行输入java-version提示“不是内部或外部命令”,根本原因是JAVA_HOME和Path环境变量未正确配置:JAVA_HOME需指向JDK根目录(不含\bin),Path需添加%JAVA_HOME%\bin,且须重启命令行验证。
-
shutdown()后已入队未执行的任务仍会运行,正在运行的任务也会完成;它仅停止接收新任务,不中断线程或清空队列。
-
从支付网关慢调用复盘 Resilience4j TimeLimiter、Retry、CircuitBreaker、Bulkhead 的顺序、预算和上线检查。
-
成功执行java-jarxxx.jar的前提是:JRE/JDK已安装且版本兼容,java命令可用;JAR包为可运行格式,即MANIFEST.MF中含正确Main-Class属性;依赖已内置(fatjar)或显式指定;文件有读取权限,路径无空格或中文。
-
ClassLoader.getResource按classpath声明顺序“先到先得”加载首个同名资源;Web容器强制优先加载WEB-INF/classes和WEB-INF/lib;需用getResources获取全部匹配项并手动处理;建议通过前缀隔离、外部化配置、Maven排除等方式避免冲突。
-
锁粗化是JVMJIT编译器自动将同一锁、同一线程、连续无干扰的多次加锁解锁合并为一次大范围同步的操作,典型场景是循环内对未逃逸局部对象(如StringBuffer)的反复同步调用。
-
Termux无法直接运行JavaGUI程序,因其纯终端环境缺失XServer和DISPLAY变量,Java默认启用headless模式且openjdk-17不含AWT原生库;可行方案是通过proot-distro部署Ubuntu,安装XFCE与TightVNC,配置xstartup并启动vncserver,再在VNC桌面中安装OpenJDK并设置DISPLAY=:1运行Java程序。
-
系统功能包括发布、查看列表与详情及管理操作;2.采用SpringBoot、Thymeleaf、JPA与MySQL;3.定义Article实体与仓库接口;4.控制器处理请求并交互页面;5.Thymeleaf渲染前端;6.可扩展富文本、登录、分类等。
-
final字段的可见性保障是“一次性但确定”的:对象正确构造后,其他线程首次读取其final字段必见构造器所赋值,无需synchronized或volatile;该保障依赖构造器末尾的StoreStore屏障,且以无this逃逸为前提。
-
PECS原则下动态缓冲区核心是类型安全归集:声明List<?superEvent>接收子类型,生产者产出List<?extendsBusinessEvent>,用collectTo工具方法自动推导类型并高效归集,结合Kafka实现异步削峰。
-
Collection.isEmpty()不能代替null检查,因null调用会抛NullPointerException;必须先判null再调用isEmpty(),或使用Objects.nonNull()、CollectionUtils.isEmpty()等null-safe方案。