-
MongoDB单文档严格限制为16MB,超限文档无法直接写入;GridFS虽可存储大文件,但原生不支持聚合管道操作。本文介绍一种兼顾存储容量与查询能力的生产级方案:将大文档拆分为GridFS文件+元数据集合,并通过ObjectId关联实现无缝聚合查询。
-
Nacos配置项必须写在spring.cloud.nacos.config下,而非spring.nacos或spring.cloud.nacos;server-addr必填且不带http://,namespace和group需显式指定,依赖、@RefreshScope、鉴权等缺一不可,多环境需对齐dataId命名规则。
-
应使用HashMap存储资产以实现O(1)查找,键用String等不可变对象并重写equals/hashCode;操作封装为独立方法;统一用nextLine().trim()处理输入;退出前必须持久化到文件。
-
EnumMap的get/put是O(1)且无哈希开销,因其直接用枚举ordinal()作数组下标访问内部values数组,省去HashMap全套哈希计算与结构维护流程。
-
在SpringMVC中,可通过为@RequestParam添加required=false属性,使其变为可选参数;当请求未携带该参数时,其值将为null(或通过defaultValue指定默认值),从而避免400BadRequest错误。
-
BitSet比boolean[]节省8倍内存因其按位存储,1字节存8个布尔值;但存在线程不安全、无泛型、随机访问有位运算开销、大索引可能OOM等问题。
-
Java中判断数组是否为空需先检查arr==null再检查arr.length==0,或用Objects.isNull(arr)||arr.length==0;基本类型和引用类型数组判断逻辑相同,禁用Arrays.asList()。
-
Java日志配置核心是SLF4J门面+Logback实现,需引入slf4j-api和logback-classic依赖,放置logback.xml于resources目录,通过LoggerFactory获取Logger,注意依赖完整、配置文件名正确及路径准确。
-
应根据执行顺序需求选择:andThen先执行当前函数再执行参数函数,compose则相反;类型必须严格衔接,需主动处理null,避免混用Predicate/Consumer,性能敏感时宜内联而非过度组合。
-
清空ArrayList最推荐使用clear()方法,它会直接移除所有元素并释放引用,使所有指向该列表的引用均生效,而重新newArrayList()仅让变量指向新对象,原列表若无其他引用才会被回收;clear()不创建新对象,性能更高,适用于共享列表场景,优先推荐使用clear()。
-
synchronized不是乐观锁,也不是纯悲观锁,而是阻塞式悲观同步机制;它无冲突检测重试循环,不返回失败信号,直接阻塞线程,依赖JVMmonitor与锁升级。
-
Java字符串拼接需按场景选择:常量用+(编译优化),循环用StringBuilder(高效可变),集合连接用String.join()(语义清晰),模板化用String.format()/formatted()(可读性强),混合场景应灵活组合。
-
按回车没反应是因为nextInt()等不消费换行符,导致nextLine()读到空行;解决方法是在其后加nextLine()清缓冲,或统一用nextLine()配合parseXXX转换。
-
该任务打卡应用通过Java面向对象设计实现,包含Task、Record、TaskManager和MainApp四个类,支持添加任务、打卡、查看记录等功能,具备清晰的交互式命令行界面,可进一步扩展数据持久化与图形界面。
-
该指定capacity。默认16容量易致频繁扩容,引发Arrays.copyOf开销和GC增加;应按总长预估并加余量,避免过大浪费内存;StringBuffer扩容行为相同但性能更低;固定拼接优先用+、String.join等优化方案。