-
@ControllerAdvice不生效需检查三处:未被组件扫描、优先级冲突、SpringBoot默认错误页启用;异常应分层处理,区分业务异常与系统异常;@ExceptionHandler参数类型须具体,返回值推荐ResponseEntity<Result>。
-
finally中的return会覆盖try/catch的返回值,包括正常值、异常和对象引用;IDE警告但编译通过;应将return移至finally外,用try-with-resources或手动关闭资源确保不干扰返回。
-
百度翻译API需实名认证后在fanyi-api.baidu.com创建“通用”类型应用获取APP_ID和SECRET_KEY;签名须用MD5(APP_ID+q+salt+SECRET_KEY)生成,q要URL编码,salt每次随机;请求用POST、设UTF-8头,语言代码如"jp";注意52001超时、54000缺参、空q导致trans_result为空;限流2QPS,密钥勿硬编码。
-
首先安装JProfiler并配置-agentpath参数加载Agent,然后通过GUI连接指定端口监控应用性能,远程环境建议使用SSH隧道安全连接。
-
Fastjson1.2.68+默认禁用autoType引发拒绝或ClassNotFoundException,需显式白名单开启;Jackson静默失败因字段不可见或无参构造器缺失;日期格式、并发性能差异需统一配置与复用实例。
-
可用removeAll和retainAll提取增删元素:新增为newArrayList(listB).removeAll(listA),删除为newArrayList(listA).removeAll(listB);需注意保序、避副作用、处理重复元素及类型可比性。
-
抽象类能有构造方法,接口不能;抽象类用于“is-a”关系和状态共享,接口用于“can-do”能力与多实现;二者应协作而非互斥。
-
不能直接改系统环境变量切换JDK,因为会全局生效、需重启终端和IDE、易导致构建失败或UnsupportedClassVersionError;推荐按需临时修改PATH前缀、IDE单独配置项目JDK、构建工具指定JDK及封装PowerShell函数快速切换。
-
Object.clone()默认浅拷贝:基本类型值复制,引用类型只复制地址;String和包装类因不可变性表现类似深拷贝;基础类型本身无引用,故深/浅拷贝无区别。
-
同步锁的核心是保障多线程环境下共享数据的安全,通过互斥机制保证原子性,确保操作不被中断;释放锁时刷新修改到主内存,获取锁时重新读取最新值,实现内存可见性;同时建立happens-before关系,约束指令重排序,维护执行有序性;结合wait/notify机制还可实现线程间协作,控制执行顺序,广泛应用于生产者-消费者等并发场景。
-
配置Linux服务器上的Java环境,核心步骤如下:1.下载OpenJDK安装包,推荐使用长期支持版本如Java11、17或21,从Adoptium等可信源获取;2.创建安装目录(如/usr/local/java),解压下载的.tar.gz文件;3.设置环境变量,在/etc/profile中配置JAVA_HOME和PATH;4.执行source/etc/profile使配置生效;5.验证安装,通过java-version、javac-version和echo$JAVA_HOME确认是否成功。选择OpenJ
-
final修饰变量仅保证引用不可变,对象内部仍可变;修饰方法禁止重写但允许重载;修饰类禁止继承且所有方法隐式final;它是不可变设计的必要非充分条件。
-
本文详解如何在AndroidStudio中编写代码,准确判断设备是否启用了仅移动数据(蜂窝网络)连接,避免将Wi-Fi误判为有效网络,从而实现更精确的网络状态提示与API调用控制。
-
本文介绍如何在Java8StreamAPI中,对两个并行列表(如domain和code)进行按索引配对映射,替代静态参数调用,解决map()无法直接访问外部循环变量的问题。
-
Java接口支持多重继承,类仅支持单继承。通过extends关键字可使接口继承多个接口,用逗号分隔,如interfaceCextendsA,B;实现类必须实现所有继承的抽象方法,否则需声明为抽象类;当父接口存在同名同参方法时视为同一方法,实现一次即可;若默认方法冲突,子接口或实现类必须显式重写以解决歧义。该机制提升代码复用与灵活性,但需注意方法冲突处理。