java教程技术文章
-
高峰期GC停顿突增本质是对象创建速率远超回收能力,导致年轻代频繁填满、晋升加速、老年代压力上升;变量池化通过复用高频短命对象(如DTO、缓冲区)切断临时对象生成链路,需满足生命周期绑定请求、结构稳定、创建开销明显三标准,并避开线程安全与池大小设计陷阱,配合禁用TLAB动态调整等JVM协同优化。319 收藏 -
区块链区块头链接本质是用哈希指针替代普通指针的防篡改链表:每个区块的prev_hash存储前一区块头的SHA-256哈希值,内容篡改将导致哈希变更、后续链接断裂,验证自动且无需第三方。319 收藏 -
Java无法实现无懈可击的高性能强类型DI容器,因JVM泛型擦除导致运行时无泛型信息,强类型注入需依赖反射、类型推断与元数据补全;泛型类仅提供编译期类型安全契约,内部存储仍需Map。319 收藏 -
暴力反射不能用于清理资源或关闭连接池,因其不安全、不可靠且跳过关键清理步骤,易致连接泄漏、线程卡死;正确方式是调用公开close()方法、委托容器管理或封装代理实现Closeable。319 收藏 -
maximumPoolSize是线程池最大线程数,用于应对突发流量的弹性缓冲带;设小导致任务拒绝率高,设大引发上下文切换与OOM;需按IO/CPU密集型任务特征、QPS与耗时估算,并配合监控、动态配置及合理拒绝策略。318 收藏 -
ProcessHandle无法实现优雅回收,仅负责触发信号和观察状态;真正优雅终止须由子进程自行响应SIGTERM等信号完成清理,否则destroy()在Linux/macOS发SIGTERM、Windows等效强杀,不等待清理也不执行shutdownhook。318 收藏 -
高并发大促下库存扣减失败的补偿必须快、准、可追溯、不扰主链路:采用异步扫描+状态机驱动,三元状态标识(pending/confirmed/done),幂等回滚,超时熔断,分级降级。318 收藏 -
Filter是Servlet规范组件,作用于容器层,用于请求响应拦截;Interceptor是SpringMVC组件,作用于HandlerMapping后,依赖Spring上下文,用于Controller前后处理。318 收藏 -
Map.merge()仅在键已存在时调用remappingFunction;键不存在则直接put,不执行函数;返回null会删除该键;多线程需用ConcurrentHashMap保证原子性。318 收藏 -
应按使用者和使用场景拆分接口:谁在用、为什么用,识别方法调用不重叠、未被调用超40%、测试中大量mock等信号;按业务角色(如UserAuthenticator)而非CRUD命名;用组合代替全能接口继承;老接口迁移需渐进式三步走。318 收藏 -
命令行输入java-version提示“不是内部或外部命令”,根本原因是JAVA_HOME和Path环境变量未正确配置:JAVA_HOME需指向JDK根目录(不含\bin),Path需添加%JAVA_HOME%\bin,且须重启命令行验证。318 收藏 -
shutdown()后已入队未执行的任务仍会运行,正在运行的任务也会完成;它仅停止接收新任务,不中断线程或清空队列。318 收藏 -
文章 · java教程 | 2个月前 | Spring Boot · 生产实践 · Java教程 · Resilience4j · 微服务治理 · java 微服务 spring boot 熔断重试 Resilience4j
从支付网关慢调用复盘 Resilience4j TimeLimiter、Retry、CircuitBreaker、Bulkhead 的顺序、预算和上线检查。318 收藏 -
多态产生的前提是继承或接口实现、方法重写、父类/接口类型引用;运行时通过invokevirtual指令查虚方法表动态绑定;static、private、final方法及字段访问不具多态性。317 收藏 -
LinkedList基于双向链表实现,支持高效插入删除和双向遍历,适用于栈、队列及浏览器历史等场景,但随机访问性能较差,需注意避免频繁get操作和线程安全问题。317 收藏