-
ReentrantLock需手动管理锁的获取与释放,必须在try中lock、finally中unlock;支持可中断、超时、公平性;需统一加锁顺序防死锁;通过Condition实现精准唤醒。
-
ConcurrentModificationException由迭代时直接修改集合触发,Java通过fail-fast机制检测并发修改。使用Iterator.remove()、并发集合如CopyOnWriteArrayList、StreamAPI的removeIf或filter、加锁同步可避免该异常,核心是避免遍历时直接调用集合的结构修改方法。
-
Tomcat通过重写WebAppClassLoader的loadClass()方法调整双亲委派顺序:先加载本应用/WEB-INF/classes与lib中的类,未找到再委托父加载器;各应用独享类加载器实现类隔离;共享库由SharedClassLoader统一加载;线程上下文类加载器确保框架能访问应用类。
-
throws是Java中声明受检异常的强制语法,仅对继承Exception而非RuntimeException的异常(如IOException、SQLException)生效,用于明确告知调用者需处理异常,而非逃避责任。
-
本文介绍一种简洁可靠的Java实现方法,用于从任意字符串中移除数量相等且可完全配对的最外层括号字符(如[和]),不依赖栈、不处理嵌套结构,仅按出现顺序删除前N个左括号和前N个右括号(N为二者最小频次),适用于教学场景与基础文本清洗任务。
-
本文介绍在SpringBoot的@RestControllerAdvice中,如何根据HTTP请求头(如sourceid)动态决定错误响应格式,实现多部门差异化异常处理。
-
中介者模式是协调微服务边界行为的轻量层,不替代注册中心或网关,专解多服务交叉调用导致的局部耦合;它仅编排调用、转换上下文、兜底重试,不处理业务逻辑、不持数据、不决策事务,应保持纯事件驱动与单一职责。
-
CodeCache满时JIT编译器被硬性禁用而非停顿:达到-XX:ReservedCodeCacheSize上限后,JVM立即停止所有新方法的JIT编译并输出禁用日志,已编译代码仍执行,新热点全部退至解释执行,性能下降5–10倍。
-
必须重写Product的equals()和hashCode()方法,否则list.contains()等操作因默认比较对象地址而失效;查删改需规避空指针、越界及并发修改异常,推荐用stream查找、按属性删除、直接修改引用对象属性。
-
确认内存泄漏需观察老年代使用率“只涨不跌”、FGC频次激增且回收无效、OOM频繁复现、特定类实例持续增长;jmap加live可导出纯净堆快照;MAT中通过PathtoGCRoots查强引用链,DominatorTree定位真正内存支配者。
-
Collectors.reducing提供三种重载形式:无初始值归约、带初始值归约、映射后归约,适用于求和、最值及自定义累积,提升Stream操作灵活性与可读性。
-
module-info.java文件必须放在模块根目录Java模块系统不会自动发现或扫描子包里的module-info.java,它只认顶层源码根目录(即src/main/java或src下直接放的)下的那个文件。放错位置会导致编译器完全无视模块声明,还可能报error:modulenotfound或静默退化为非模块化运行。正确路径:src/main/java/module-info.java错误路径:src/main/java/com/example/module-inf
-
短路运算符的核心是“一旦结果确定,剩余部分不执行”。Java中&&和||从左到右求值,左侧能确定结果时右侧不再计算;而&和|为非短路运算符,始终计算两侧。例如false&&(++i>0)不执行右侧,i保持0;false&(++i>0)则执行右侧,i变为1。该机制常用于避免空指针异常(如obj!=null&&obj.isValid())和性能优化(将耗时操作置于右侧)。此外,&&优先级高于||,建议使用括号明确逻辑分组以提升可读性。掌握短路规则有助于编写安全高效的代码。
-
Map.computeIfAbsent可简化条件赋值,避免null检查,支持惰性求值以提升性能,适用于初始化、嵌套结构构建与缓存场景,需注意无副作用和线程安全问题。
-
RecursiveTask是ForkJoinPool中用于实现有返回值分治算法的抽象类,需继承并重写compute()方法。它适用于将大任务拆为子任务并行执行后合并结果,如数组求和、最大值查找等场景。通过fork()异步提交任务,join()等待结果,结合阈值控制避免过度拆分,利用工作窃取提升并发效率。使用时需注意任务粒度、无共享状态及异常处理,适合归并排序、数据聚合等可递归分解的问题,能有效提升计算密集型任务性能。