-
G1MixedGC的触发取决于堆总占用达IHOP阈值(默认45%)并完成并发标记,而非老年代单独占比;其回收Region数量由垃圾价值、停顿约束和空间压力动态权衡决定。
-
Comparable是类自身定义的唯一自然排序规则,要求compareTo与equals一致以避免TreeSet/Map异常;Comparator是外部独立的灵活比较器,支持同一类多种排序且无需修改源码。
-
Eden区是TLAB的母体而非后备,TLAB从Eden中划分,其稳定性依赖Eden足够大、结构健康;Eden过小会限制TLAB伸缩空间,导致频繁refill或fallback至共享区竞争分配。
-
synchronized代码块应只包裹真正需要互斥的语句:锁对象推荐privatefinalObjectlock,避免用this或可变对象;禁放IO、耗时计算、外部调用等无关操作;细粒度锁需权衡死锁与开销。
-
用异步生成器封装游标分页流,内部维护cursor状态,按需yield整页数据,前端用forawait消费,支持中断、错误捕获与取消,避免状态复用和无限请求。
-
Paths类通过Paths.get()方法创建Path对象,用于跨平台文件操作;支持相对路径、绝对路径的创建,自动处理不同系统的路径分隔符,并可与Files类结合实现文件存在性检查等操作。
-
AtomicIntegerFieldUpdater的核心作用是通过反射对volatileint字段进行无锁原子更新。适用于无法修改类结构但需线程安全更新int字段的场景,如高并发计数器、状态码等;使用前须满足字段为volatileint、非static/final、具访问权限等条件。
-
泛型抽象工厂通过类型参数统一管理业务实体创建,以TypeRegistry维护抽象类型到具体实现的映射关系,支持命名注册与运行时按名创建,实现解耦与灵活切换。
-
首先引入Log4j2依赖并创建log4j2.xml配置文件,接着在代码中通过LogManager获取Logger实例记录日志,最后引入Disruptor库并配置AsyncRoot启用异步日志以提升性能。
-
本文详解Resilience4j各核心注解(@Bulkhead、@TimeLimiter、@CircuitBreaker、@Retry)的嵌套执行顺序,结合CompletableFuture场景说明异常传播路径,并指导如何通过retryExceptions、ignoreExceptions和自定义Predicate实现“仅对服务端异常重试”的精准控制。
-
happens-before是可见性契约而非时间先后,核心是“谁的结果必须被谁看见”;程序顺序、监视器锁、volatile变量、线程启动/终止四条规则最常用,缺一导致读不到最新值或出现半构造对象。
-
HashedWheelTimer适合单机百万级轻量延时任务(如心跳检测),但不适用于订单关闭等强一致性场景,因其任务仅存JVM内存、不可持久化、无容错与状态协同能力。
-
OperatingSystemMXBean.getTotalSwapSpaceSize()返回操作系统交换空间理论总容量(字节),仅适用于Linux/macOS等Unix-like系统,Windows及容器中常返回0;需结合getFreeSwapSpaceSize()计算使用率,不可单独用于内存压力判断。
-
自定义注解驱动深层属性映射通过@CopyField声明字段拷贝规则,结合反射实现动态、可控的深拷贝,支持嵌套路径、类型转换、循环引用防护等,适用于运行时灵活控制场景。
-
Java对象头的MarkWord动态决定synchronized锁行为:无锁(01,存哈希码)、偏向锁(01但biased=1,存线程ID)、轻量级锁(00,存栈中LockRecord指针)、重量级锁(10,存ObjectMonitor指针),升级由线程竞争触发且不可逆。