-
可通过命令行直接调用指定JRE路径运行程序,如/path/to/jre/bin/java-jarMyApp.jar;2.配置JAVA_HOME和PATH环境变量指向目标JRE;3.在IntelliJIDEA或Eclipse中设置项目SDK;4.使用脚本硬编码JRE路径启动应用。根据场景选择方式可确保Java版本一致性。
-
高并发下应关闭偏向锁,优先用synchronized处理短临界区,分布式锁需带clientID和Lua校验,本地缓存TTL须短于锁过期时间。
-
Java不支持尾递归优化,所有版本均无TCO,标称“尾递归”的方法仍会栈溢出;Kotlin的@TailRec由编译器转为循环,非JVM支持;Java中需手动转为迭代,如阶乘将参数转为循环变量并更新状态。
-
在Android12(SDK31)及以上版本中,TelephonyManager.listen()已被弃用,需改用registerTelephonyCallback()配合TelephonyCallback.CallStateListener实时监听通话状态变化,从而准确捕获呼叫挂断(CALL_STATE_IDLE)事件。
-
ClassCircularityError是JVM在类加载链接阶段检测到类定义存在直接或间接自引用时主动抛出的LinkageError,不抛StackOverflowError因其发生在字节码执行前、无递归调用栈。
-
JDK17是当前最稳妥的生产基线,因其LTS成熟度高、主流框架适配稳定;应避免使用模糊镜像标签如“openjdk:17”,优先选用明确版本和OS的镜像如“openjdk:17-jre-slim-bullseye”,并注意JAVA_HOME、时区、编码及JVM参数配置。
-
为什么@Valid不生效?常见拦截链断点在这里SpringBoot中@Valid看似开箱即用,但实际常因缺少触发点而静默失效。它不会自动在任意方法上起作用,必须落在SpringMVC的参数绑定流程里——也就是@RequestBody或@ModelAttribute标记的入参上。Controller方法参数没加@RequestBody,只写了@ValidMyDtodto→校验完全不触发用了@Validated但没配分组,而自定义注解指定了groups→
-
super只能访问直接父类中被覆盖或隐藏的非private成员,且调用父类构造器必须是子类构造器第一行;不能赋值、instanceof或传参。
-
Resilience4j的CircuitBreaker不会一直OPEN,需显式配置waitDurationInOpenState(建议30000毫秒)并合理设置eventConsumerBufferSize(如1024),同时确保@CircuitBreaker注解在SpringAOP代理下生效、正确区分fallbackMethod与ignoreExceptions。
-
Collectors.toList()返回有序可变ArrayList(JDK15前)或不可修改视图(JDK16+),toSet()返回无序HashSet且不支持null;groupingBy分类函数返回null会直接抛NPE;averagingDouble等对空流返回默认值易掩盖数据缺失;自定义Collector用于并行流时combiner须满足结合律且无副作用。
-
Java继承是一把双刃剑:它提升复用与结构清晰,但易引发紧耦合、脆弱基类、语义失真和测试爆炸等问题;推荐优先使用组合+接口、策略模式等更可控的替代方案。
-
Java多版本共存时JAVA_HOME不可全局硬编码,应通过SDKMAN!/asdf等工具动态管理,并确保Maven/Gradle配置、IDE设置、Docker镜像及子进程环境均与项目所需JDK版本严格一致。
-
提前返回、提取方法、策略模式和Optional可降低Java多层嵌套。通过尽早处理边界条件减少层级,将复杂判断封装为独立方法提升可读性,用策略模式替代多重if-else,利用Optional避免null链式检查,使代码更清晰易维护。
-
应继承RuntimeException而非Exception,因其为unchecked异常,避免强制捕获污染业务逻辑;继承Exception会导致编译期强制处理,违背统一异常拦截设计。
-
使用事件、接口与监听器实现模块间松耦合通信,提升系统可维护性与扩展性。通过观察者模式定义事件、监听器及事件分发器,实现模块异步通信;订单模块依赖积分服务接口而非实现,遵循依赖倒置原则;Spring项目可利用@EventListener与ApplicationEventPublisher简化事件处理,支持事务与异步监听;小型项目可自建事件总线,中大型项目推荐SpringEvent框架;需关注异常处理、事件版本控制与监听器生命周期管理。