1-MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发、海量数据、高扩展性场景。它以BSON格式存储数据,灵活支持复杂数据结构,广泛应用于社交、游戏、物联网、物流和视频直播等领域。适合无需事务、需快速迭代、高读写负载及大规模地理查询的应用,相较MySQL可大幅降低开发运维成本。
MongoDB常用命令
本文介绍MongoDB数据库操作,包括创建与删除数据库、集合的显式与隐式创建、文档的增删改查及分页排序查询。以文章评论数据存储为例,演示了实际CRUD操作与注意事项。
MongoDB索引知识
MongoDB索引基于B树结构,提升查询效率,避免全集合扫描。支持单字段、复合、地理空间、文本及哈希索引,优化相等匹配、范围查询与排序操作,显著提升大数据量下的查询性能。
MyBatis常见配置
本文介绍 MyBatis 核心配置与多环境管理,涵盖属性加载优先级(方法参数 > resource/url > properties 元素)、关键配置项如缓存、延迟加载、执行器类型等,并详解 environments 环境配置及事务管理机制(JDBC 与 MANAGED),适用于多数据源场景。
3-MongoDB常用命令
本文介绍如何使用MongoDB存储文章评论数据,涵盖数据库与集合的创建、增删改查操作及分页排序查询。使用`use`创建数据库,通过`insert()`插入文档,`find()`查询数据并支持投影与条件筛选,`update()`结合`$set`实现局部更新,`remove()`删除文档,配合`limit()`、`skip()`和`sort()`实现分页排序功能。所有操作均基于BSON格式,适用于高效管理非结构化数据。
ArrayList扩容机制
ArrayList的add方法添加元素时,先调用ensureCapacityInternal()确保容量。首次添加时,最小容量设为10,触发扩容;后续添加若超出当前容量,则调用grow()将容量扩为原来的1.5倍。grow()通过位运算高效计算新容量,确保集合动态扩展性能。注意:length用于数组,length()用于字符串,size()用于集合。
2.映射关系(1-1 1-n n-n)
MyBatis中通过resultMap实现关联映射:一对一使用基本映射或resultMap解决字段不一致;一对多在“一”方配置`<collection>`,如用户关联多个角色;多对一通过`<association>`实现,如博客关联作者;多对多借助中间类,双方均用`<collection>`维护关系,如用户与部门的双向关联。
MongoDB实战演练
本文介绍某头条文章评论系统的设计与实现,基于MongoDB和SpringDataMongoDB构建微服务。内容涵盖需求分析、表结构设计、技术选型、实体类编写及增删改查功能开发,并实现按文章ID查询评论、分页查询子评论、评论点赞等功能,重点利用MongoTemplate提升点赞操作效率。
2-MongoDB单机部署
本文介绍MongoDB在Windows与Linux系统中的安装启动及连接方法。涵盖下载安装包、解压配置、命令行或配置文件启动服务,以及通过mongo shell和Compass图形化工具连接数据库。同时提供Linux环境下部署单机MongoDB的详细步骤,包括目录创建、配置文件编写、防火墙设置与服务启停操作,确保快速上手并稳定运行。
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep(0)并非无用,它会触发操作系统立即重新进行CPU竞争,让其他线程获得执行机会,避免界面假死。而Sleep(1000)也不保证精确唤醒,因线程调度受优先级和系统负载影响。理解其原理有助于编写更高效的多线程程序。
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,泛型信息被移除,仅保留原始类型(如Object或限定类型)。擦除后,List<String>和List<Integer>均变为List,导致getClass()相等;反射可绕过泛型限制,证明类型检查基于引用而非对象。静态成员不能使用类的泛型参数,因泛型实例化依赖对象创建,而静态上下文无此支持。
Eclipse运行SSM/SSH项目教程
本文介绍了Eclipse环境下项目运行的完整流程,包括JDK、Tomcat等基础软件的配置,项目导入步骤,以及Eclipse与Tomcat的绑定方法。通过图文指导,帮助开发者快速搭建Java Web开发环境并成功启动项目。
如何做好SQL质量监控
git-poison基于go-git实现分布式bug追溯,解决多分支开发中bug漏修、漏发问题。通过“投毒-解毒-银针”机制,自动化卡点发布流程,降低协同成本,提升发布安全性与效率,已在大型团队落地应用。
One Trick Per Day
本文总结Java开发中六大关键规范:避免HashMap初始化容量设置不当,禁用Executors创建线程池以防OOM,Arrays.asList不可变操作,优先使用entrySet遍历Map,SimpleDateFormat非线程安全需避免static,以及并发修改记录时合理加锁。遵循这些实践可提升系统稳定性与性能。
Eclipse运行SSM/SSH项目教程
本文介绍如何在Eclipse中配置并运行Java Web项目,涵盖基础软件安装(Eclipse、JDK、Tomcat)、项目导入步骤、Eclipse与Tomcat的绑定方法及常见问题解决。提供SSH/SSM框架案例项目与配置讲解视频,助力快速搭建开发环境。
基于yolov8的深度学习水果识别检测系统
在农业现代化与消费升级背景下,基于YOLOv8的水果智能检测系统应运而生。该系统利用计算机视觉技术,实现高效、精准的水果识别与分级,广泛应用于生产、流通与零售环节,显著提升分拣效率、降低人工成本,并推动农业智能化发展。
京东商品列表 API使用指南
京东商品列表API是京东开放平台提供的核心接口,支持按关键词、分类、价格、销量等条件筛选商品,返回标题、价格、库存、销量等结构化信息,适用于店铺管理、价格监控、竞品分析等场景。需认证开发者身份并获取appkey、access_token及相应权限后调用,接口以JSON格式传输,部分按量计费。
实用程序:进度可视化文件大小计算(从卡顿到高效——文件夹大小统计的优化之路)
针对大规模文件夹统计卡顿问题,本文提出优化方案:通过分步遍历、实时进度反馈与多线程并行计算,结合`os.scandir`高效IO操作,实现秒级响应与倍速计算,显著提升大目录统计效率,解决传统方法卡顿无反馈的痛点。
实用程序:无需付费软件!自制音视频转字幕工具,复制代码直接运行
一款基于Whisper模型的音视频转字幕工具,支持多格式文件,提供可视化界面与实时进度反馈,可自动识别语音并生成简体SRT字幕,操作简单,开源免费,显著提升字幕制作效率。
基于yolov8的深度学习垃圾分类检测系统
本研究针对传统垃圾分类效率低、准确率不高等问题,提出基于YOLOv8与Python的深度学习检测系统。通过构建高质量标注数据集,利用YOLOv8强大的目标检测能力,实现垃圾的快速精准识别,提升分类自动化水平,助力环境保护与资源回收。
大数据与机器学习
大数据领域前沿技术分享与交流,这里不止有技术干货、学习心得、企业实践、社区活动,还有未来。