-
线程池未关闭会导致JVM无法退出和RejectedExecutionException异常;应先调用shutdown()再配合awaitTermination()等待终止,超时后可shutdownNow();推荐使用AutoCloseable封装或Spring的destroyMethod自动管理。460 收藏 -
JVM通过热点探测(方法调用计数器和回边计数器)触发JIT分层编译:先C1编译基础优化,再C2编译激进优化;内联受字节码长度、虚方法特性等约束;去优化机制保障正确性但影响性能。324 收藏 -
合理拆分职责、使用提前返回、StreamAPI和局部变量可提升Java方法的可读性与维护性,让代码逻辑更清晰。425 收藏 -
最稳用CFR反编译插件:兼容Java17新特性,需禁用IDEA自带解码器;遇“Decompiledcodenotavailable”需检查module-info、混淆或JDK类配置;var丢失因编译未加-g:vars;空方法体是CFR对不支持字节码的兜底处理。295 收藏 -
本文详解如何通过Mockito模拟InetAddress.getLocalHost()抛出异常,结合@SneakyThrows的实际行为,编写可覆盖异常分支的单元测试,并推荐使用AssertJ进行更精准的异常断言。389 收藏 -
JavaAgent必须在premain中调用instrumentation.addTransformer注册ClassFileTransformer才能生效,且需在MANIFEST.MF中声明Premain-Class和Can-Retransform-Classes;否则agent静默失效。462 收藏 -
InvocationTargetException是反射调用异常的包装器,真实异常需通过getCause()获取;多层嵌套时应循环解包,推荐使用Spring的ExceptionUtils.unwrapInvocationTargetException()。373 收藏 -
volatile失效并非语法失效,而是因误用(如循环缓存变量、误信字段可见性)或JIT将未观测的volatile读移出循环所致;排查需验证代码语义、JIT行为及运行时环境。466 收藏 -
synchronized锁的是对象而非代码块或方法名,本质是给对象加监视器锁;实例方法锁this,静态方法锁类对象,同步代码块锁指定非null对象;锁自动获取释放,可重入但易因耗时操作拖长锁周期,JVM会按竞争动态升级锁。216 收藏 -
本文详解Drools在Kubernetes微服务中因KieContainer非预期重复加载导致的MVELCompilationUnit内存堆积问题,涵盖诊断方法、典型误用模式、修复方案及云原生迁移建议。345 收藏 -
Java15+使用三重双引号"""创建文本块,编译期语法糖,自动按最小公共缩进裁剪空格、保留源文件换行符,不支持嵌套和插值,需手动处理"""转义或拼接。460 收藏 -
map将函数结果包装进Optional,flatMap要求函数返回Optional并自动展平一层,是避免嵌套Optional的唯一机制。134 收藏 -
静态初始化适用于已知元素值的场景,如int[]arr={1,2,3};2.动态初始化用于运行时确定长度,如int[]arr=newint[5];3.声明与初始化可分离,提升灵活性;4.多维数组支持规则与不规则结构,如int[][]matrix={{1,2},{3,4}}或动态分配行列。258 收藏 -
工厂模式通过解耦对象创建提升可维护性。简单工厂集中创建逻辑,适用于类型少的场景;工厂方法模式由子类决定实例化,符合开闭原则;抽象工厂用于创建相关产品族,支持复杂依赖。215 收藏 -
Objects.equals能防NPE,因其内部先判空:二者同为null返回true,仅一者为null返回false,均非null才调用a.equals(b),彻底避免空指针异常。303 收藏