-
受检异常必须显式处理,否则编译不通过;运行时异常继承自RuntimeException,编译器不检查;Error代表JVM严重问题,一般不捕获。
-
多重边界指泛型类型参数必须同时满足多个上界约束,语法为<TextendsA&B&C>,其中A必须是唯一类(排最前),B/C等为接口;用于组合多种能力,如Comparable与Serializable并存。
-
答案:while循环在条件为真时重复执行代码块,需确保循环变量更新以避免死循环。示例中用i从1到5打印数字,循环体每次递增i;若忽略更新则导致无限循环。实际用于读取输入、处理数据流等场景,如持续接收用户命令直至输入“exit”退出,关键在于合理设置初始值、条件判断和变量更新机制。
-
Map.merge()仅在键已存在时调用remappingFunction;键不存在则直接put,不执行函数;返回null会删除该键;多线程需用ConcurrentHashMap保证原子性。
-
static静态代码块适用于类加载时轻量级核心初始化,如JDBC驱动注册、本地配置加载、不可变常量构建等,但严禁用于网络IO、连接池创建或依赖容器上下文的操作。
-
可通过main方法args参数直接接收命令行配置字符串,启动时用空格分隔、程序内按key=value格式解析并存入Map,支持--key=value或-kvalue等增强写法,需注意Shell转义与引号包裹。
-
StreamAPI对视频元数据文本流分词聚合共四步:1.明确VideoMetadata等结构化数据源;2.用flatMap和splitAsStream扁平化分词并过滤;3.用groupingBy+counting统计频次;4.排序后取Top-N生成TagWithCount列表。
-
ThreadLocalRandom明显快于Random,因其为每个线程维护独立种子,避免CAS竞争与伪共享;Random依赖AtomicLong+CAS更新共享种子,高并发时自旋重试导致性能骤降。
-
本文详解暴力解法的时间复杂度(O(m×n))与空间复杂度(O(1)),并对比更优的双指针算法(O(m+n)/O(1)),附可运行代码与关键注意事项。
-
LocalDate.plusDays()语义上只支持加正数天数,负数虽可运行但属隐式兼容而非官方承诺;应改用minusDays()实现减法,以保证语义清晰、可读性强且避免静态分析警告。
-
高位泄漏指高优先级线程因上下文错置长期持有TraceContext/Span/MDC,导致内存增长、GC压力升高等问题;本质是ThreadLocal强引用锁死引发的带业务语义泄漏。
-
核心是ThreadLocal存键、取键、清键:因AbstractRoutingDataSource为单例,必须用ThreadLocal隔离线程上下文,否则线程复用会导致串库;determineCurrentLookupKey()需兜底返回默认key,remove()须在finally中调用防污染。
-
要启用SpringCloudConfig的配置加密功能,必须在ConfigServer端进行操作。1.引入必要的依赖:确保项目中包含spring-cloud-starter-config,若使用RSA加密还需添加spring-security-rsa;2.启用加密功能:在ConfigServer的配置文件中设置spring.cloud.config.server.encrypt.enabled:true;3.配置密钥:选择对称加密(通过encrypt.key指定密钥)或非对称加密(通过encrypt.ke
-
Character.isWhitespace()不能用于正则表达式中清理控制字符,因其仅判断单个字符是否为空白(如空格、换行等),不识别\u0000–\u001F等需清除的Unicode控制符;推荐直接用replaceAll("\\p{Cntrl}","")或更精确范围[\u0000-\u001F\u007F]。
-
复用CharsetEncoder实例、预估缓冲区大小、配置错误策略并避免新建对象是高性能编码的关键:使用ThreadLocal缓存编码器,按maxBytesPerChar()预分配ByteBuffer,用CharBuffer.wrap()零拷贝,设置CodingErrorAction容错。