-
从滚动发布偶发 5xx 复盘 Spring Boot graceful shutdown、readiness 摘流量、线程池收口、MQ 消费暂停和停机压测。390 收藏 -
jemalloc是排查堆外内存泄漏最实用的生产级工具,它绕过JVM直接追踪原生分配路径,能精准定位malloc/free不匹配、mmap匿名页增长及bump分配器未释放等问题。389 收藏 -
exports是落实接口分离原则的关键声明手段:它通过仅导出接口包、隐藏实现包,配合调用方只依赖接口的实践,实现编译期隔离与契约约束。389 收藏 -
System.arraycopy()不提供擦除语义,仅高效复制内存块;所谓“模拟缓存行擦除”是用0或null等默认值批量覆盖目标区域,实现逻辑重置,常用于环形缓冲区、滑动窗口等场景。389 收藏 -
成员变量声明位置和访问修饰符怎么选Java里成员变量必须定义在类的大括号内、方法外,不能写在main里或某个if块里——否则就变成局部变量了,生命周期和作用域完全不同。常见错误是把本该是成员变量的Stringname写在publicvoidprintInfo()里面,结果别的方法根本访问不到,还报cannotresolvesymbol。private最安全:绝大多数情况用它,配合getXXX/setXXX控制读写protected只在有继承且子类需直接访问时考虑,别为了省事设成publ389 收藏 -
<p>C#中没有provides关键字;它不属于C#语法,常见于Kotlin或Java模块系统。C#实现接口提供语义靠interface+internal实现类+DI注册三要素协同。</p>389 收藏 -
乱码主因是编码意图与实际解码行为不一致。需显式指定UTF-8等编码构造字符串,避免平台默认编码差异;读写文件、HTTP响应、JSON解析时均须统一编码;禁用char/byte直接强转;输出端须设置对应字符集。389 收藏 -
Long.expand并非Java或Kotlin标准API,JDK21/Kotlin1.9中不存在该方法;它可能源于拼写错误、教学代码中的自定义扩展、或对硬件指令(如PDEP)的误称;典型位展开需手动实现或借助未来VectorAPI。388 收藏 -
直接继承ClassLoader并重写findClass是最稳妥的自研类加载器方式;loadClass负责双亲委派流程控制,findClass专注字节码读取与defineClass调用,二者解耦且各司其职。388 收藏 -
文章 · java教程 | 1星期前 | reactor · netty · 生产实践 · Java教程 · Spring WebFlux · java 性能优化 netty reactor Spring WebFlux
一次 Spring WebFlux 线上 p99 飙升复盘:解释 block()、JDBC 等阻塞调用为什么会卡住 Netty EventLoop,并给出 Java 17/21、Spring Boot 3.x 下的诊断、代码修复和上线检查清单。388 收藏 -
本文详解如何对try-catch中静默处理异常(不re-throw)的方法进行有效单元测试,重点通过Mock日志器验证异常捕获逻辑,满足Jacoco行/分支覆盖率要求。387 收藏 -
BlockingQueue提供开箱即用的线程安全队列,内置阻塞、唤醒与JMM语义保障;无需手写wait/notify,避免虚假唤醒、死锁等错误;ArrayBlockingQueue适合固定容量场景,LinkedBlockingQueue吞吐更高但有GC压力;关闭需配合结束标记或中断机制。387 收藏 -
Double.compare()是处理double排序的推荐方式,它天然支持NaN、正无穷和负无穷,保证排序行为一致可预测,避免了直接使用==或<等运算符导致的异常。387 收藏 -
打破双亲委派是为了满足类隔离、热更新和跨层级服务加载三类刚性需求;OSGi通过Bundle模块化契约控制可见性,Tomcat以Web应用为单位反转加载顺序,线程上下文类加载器则在调用链中动态注入子加载器能力。386 收藏 -
必须用CyclicBarrier而不是CountDownLatch的场景是多轮重复同步,即每轮所有线程必须互相等待到齐才共同推进,因其可自动重置复用,而CountDownLatch一次性不可重用。386 收藏