-
必须用name()。因name()不可重写、值稳定且跨版本一致,而toString()可被重写,用于持久化会导致反序列化失败、数据错位及隐性崩溃风险。345 收藏 -
数组实现拓扑排序的核心是用inDegree[]记录各节点入度、successors[]存储后继列表,结合队列执行Kahn算法,按依赖关系确定执行顺序,适用于轻量级调度场景。271 收藏 -
compareAndExchange总返回当前值(无论是否成功),而compareAndSet仅返回布尔结果;前者支持响应式反馈(如获取实际版本号),后者仅指示成功与否。451 收藏 -
ServiceLoader是JDK原生SPI机制,通过META-INF/services/下接口全限定名配置文件加载实现类,懒加载、无参构造、不支持依赖注入,与Spring完全隔离,适用于简单插件场景。154 收藏 -
ServiceLoader.load不能用于运行时确定类型的“变量接口”,因其要求接口类型编译期已知;若需按字符串名动态加载,须绕过泛型限制、显式指定类加载器并手动校验类型,或改用SpringFactories等更灵活方案。112 收藏 -
G1MixedGC的触发取决于堆总占用达IHOP阈值(默认45%)并完成并发标记,而非老年代单独占比;其回收Region数量由垃圾价值、停顿约束和空间压力动态权衡决定。307 收藏 -
Comparable是类自身定义的唯一自然排序规则,要求compareTo与equals一致以避免TreeSet/Map异常;Comparator是外部独立的灵活比较器,支持同一类多种排序且无需修改源码。447 收藏 -
Eden区是TLAB的母体而非后备,TLAB从Eden中划分,其稳定性依赖Eden足够大、结构健康;Eden过小会限制TLAB伸缩空间,导致频繁refill或fallback至共享区竞争分配。415 收藏 -
synchronized代码块应只包裹真正需要互斥的语句:锁对象推荐privatefinalObjectlock,避免用this或可变对象;禁放IO、耗时计算、外部调用等无关操作;细粒度锁需权衡死锁与开销。270 收藏 -
用异步生成器封装游标分页流,内部维护cursor状态,按需yield整页数据,前端用forawait消费,支持中断、错误捕获与取消,避免状态复用和无限请求。250 收藏 -
Paths类通过Paths.get()方法创建Path对象,用于跨平台文件操作;支持相对路径、绝对路径的创建,自动处理不同系统的路径分隔符,并可与Files类结合实现文件存在性检查等操作。299 收藏 -
AtomicIntegerFieldUpdater的核心作用是通过反射对volatileint字段进行无锁原子更新。适用于无法修改类结构但需线程安全更新int字段的场景,如高并发计数器、状态码等;使用前须满足字段为volatileint、非static/final、具访问权限等条件。462 收藏 -
泛型抽象工厂通过类型参数统一管理业务实体创建,以TypeRegistry维护抽象类型到具体实现的映射关系,支持命名注册与运行时按名创建,实现解耦与灵活切换。490 收藏 -
首先引入Log4j2依赖并创建log4j2.xml配置文件,接着在代码中通过LogManager获取Logger实例记录日志,最后引入Disruptor库并配置AsyncRoot启用异步日志以提升性能。173 收藏 -
本文详解Resilience4j各核心注解(@Bulkhead、@TimeLimiter、@CircuitBreaker、@Retry)的嵌套执行顺序,结合CompletableFuture场景说明异常传播路径,并指导如何通过retryExceptions、ignoreExceptions和自定义Predicate实现“仅对服务端异常重试”的精准控制。172 收藏