- 博客(20)
- 收藏
- 关注
原创 Java集合知识总结
Java集合总结:数组是固定大小、连续存储的基础结构,适合存储同类型数据,提供排序、填充等操作。集合框架包括List(有序可重复)、Set(无序不重复)和Map(键值对)。ArrayList基于数组查询快,LinkedList基于链表插入删除快,HashSet/TreeMap分别基于哈希表和红黑树实现高效查找和排序。线程安全集合包括Collections.synchronizedXxx和JUC并发集合。数组与集合可相互转换,常见算法题涉及双指针、哈希去重等技巧。
2025-08-19 15:46:46
666
原创 Java并发相关
本文介绍了线程基础概念及Java线程创建方式。线程是进程的执行单元,共享内存资源,相比进程切换开销更小。Java中创建线程主要有四种方式:1)继承Thread类,重写run方法;2)实现Runnable接口,推荐使用可避免单继承限制;3)实现Callable接口,通过FutureTask获取返回值;4)使用线程池管理线程资源。文章通过代码示例展示了每种方式的实现,并对比了它们的适用场景,其中Runnable和Callable方式更灵活,适合任务与线程分离的场景,而线程池则是管理多线程的高效方案。
2025-08-19 08:55:38
634
原创 Mysql常见的查询总结
SQL查询语法摘要:包含基础查询(单表查询、条件过滤、排序分页)、聚合查询(GROUP BY分组与COUNT/SUM/AVG等函数)、多表连接(INNER/LEFT/RIGHT JOIN)、子查询(WHERE/FROM/EXISTS嵌套)、联合查询(UNION合并结果集)以及MySQL 8.0+的特殊查询(递归WITH RECURSIVE和窗口函数)。
2025-08-17 09:30:54
793
原创 Mysql常见的优化方法
数据库优化是提升系统性能的基础,主要从架构设计、存储引擎、表结构、索引和配置参数等方面入手。架构层面可采用读写分离、分库分表、缓存等策略;存储引擎选择需匹配业务场景,如InnoDB适合事务型应用;表结构设计要精简合理,平衡范式与反范式;索引优化需遵循最左匹配原则,避免失效场景;配置调优涉及内存、IO和连接参数设置。SQL语句优化核心是通过EXPLAIN分析执行计划,避免全表扫描,优化查询字段、JOIN操作、子查询、排序分组和分页查询等。综合运用这些优化手段,可有效减少数据库资源消耗,提升系统整体性能。
2025-08-16 16:59:08
765
原创 Mysql基础知识总结
事务是一组不可分割的SQL操作,要么同时成功要么同时失败(如:转账操作 扣钱和加钱必须同时成功)。底层因素,目标是减少资源消耗(CPU、IO、内存)提升吞吐量。通过选择合适的数据类型,可以减少存储空间,提高性能。数据库层面的优化是性能的基础,3、索引失效场景(重点)
2025-08-16 11:05:39
697
原创 AI常识介绍
本文介绍了AI智能体与AI模型的核心区别与协同关系。智能体强调"感知-决策-执行"闭环,实现环境交互与目标达成;模型则侧重海量数据处理与知识表征。二者相互增强:模型提升智能体的认知能力,智能体赋予模型交互功能。同时解释了AI领域关键概念:AGI、AIGC、NLP、LLM等,并梳理了多模态模型、提示工程、检索增强生成(RAG)、微调等前沿技术。最后以关系图展示各概念间的逻辑关联,为理解人工智能技术体系提供了清晰框架。
2025-08-14 16:43:35
407
原创 并发容器 介绍
并发容器:在Java并发编程中,经常听到Java集合类、同步容器、并发容器。它们之间具体的区别和优劣势介绍。在Java的集合框架中,主要分为四类:List、Set、Map、Queue。其中ArrayList、LinkedList、Hash Map都是。在多线程环境中使用。否则可能导致ConcurrentModificationException、元素丢失等。因此Java提供了供用户使用。同步容器:简单理解就是使用Synchronized来实现同步的容器。
2025-08-14 11:31:30
795
原创 线程同步与锁机制
本文总结了Java中的锁机制,重点对比了Synchronized和Lock的异同。Synchronized是JVM内置关键字,自动管理锁的获取和释放,适用于简单同步场景;Lock是API接口,提供手动控制、公平锁、条件变量等高级功能。文章详细分析了两者的实现原理(对象头/Monitor vs AQS)、核心区别(自动/手动、公平性、性能等)以及使用场景。同时介绍了volatile、原子类等替代方案,并探讨了死锁预防和锁优化策略。
2025-08-13 16:27:56
637
原创 Java线程池 概念
摘要: 线程池是Java并发编程的核心组件,通过复用线程资源降低创建销毁开销,提高响应速度。核心参数包括线程数配置、任务队列和拒绝策略,需根据任务类型(CPU/IO密集型)合理设置。Executors工具类提供的预设线程池存在资源风险,推荐手动创建ThreadPoolExecutor并定制参数。线程池包含5种状态,可通过监控指标进行调优,关闭时应区分温和关闭(shutdown)和强制终止(shutdownNow)。实际开发中需结合业务场景设置队列容量和拒绝策略,避免内存溢出等问题。
2025-08-12 18:06:17
607
原创 线程池常见使用场景
本文介绍了线程池在四种典型场景下的应用:1)异步任务处理:通过线程池异步执行非实时任务(如通知发送),提升用户体验;2)批量数据处理:采用多线程并行处理大批量操作(如数据迁移),显著提高吞吐量;3)网络请求并发:并发调用多个外部服务(如API接口),缩短总体响应时间;4)定时任务执行:利用ScheduledThreadPoolExecutor实现周期性任务(如缓存清理)。每种场景都提供了Java代码示例,展示了如何配置线程池参数及处理策略,以优化不同业务场景下的系统性能。
2025-08-12 17:55:58
341
原创 超卖问题,兜底策略
总量兜底是 “最后一道防线”,通过数据库触发器和定时任务强制保证领取量不超过总发行量,彻底杜绝超卖;库存对账与修正是 “一致性保障”,通过定时对比 Redis 与数据库库存,以数据库为准修正偏差,确保缓存与存储的一致性。
2025-08-12 10:32:15
808
原创 超卖问题,Redis和数据库同步
在高并发优惠券领取场景中,系统采用Redis快速扣减库存并异步同步到数据库的方案。核心流程分为三部分:1)Redis快速校验并扣减库存,立即返回结果;2)通过RabbitMQ可靠发送库存变更消息,包含唯一ID防重复消费;3)消费端幂等处理消息,完成数据库同步。该方案通过消息确认机制、指数退避重试策略和Redis待同步记录三重保障,确保在高并发下快速响应的同时,最终实现数据一致性。
2025-08-12 10:30:16
897
原创 超卖问题详解
摘要:优惠券超卖问题的解决方案 优惠券超卖问题本质是并发场景下库存扣减的原子性被破坏。解决方案需从四个层面构建防护体系: 库存存储设计:在数据层明确定义优惠券库存边界,通过数据库表结构和唯一索引实现基础防重。 并发控制: 数据库层面:使用事务+行锁(SELECT FOR UPDATE)确保库存检查与扣减的原子性 Redis层面:利用DECR命令的原子性进行高效库存扣减,通过消息队列保证最终一致性 业务限制:设置单用户限领、领取时段控制等规则,从源头降低超卖风险。 异常处理:建立对账机制,确保缓存与数据库一致
2025-08-12 10:28:59
757
原创 Mysql的隔离级别
隔离级别越高,数据一致性越好,但并发性能越差(因锁机制更严格)。MySQL 默认使用 可重复读(RR),兼顾了一致性和性能,适合大多数业务。选择隔离级别时需权衡:低级别(如 RC):适合高并发、对一致性要求不极致的场景(如社交、内容平台)。高级别(如 RR、Serializable):适合对一致性要求高的场景(如金融、库存)。
2025-08-12 10:25:08
427
原创 分库分表的使用场景及注意事项
分库分表是解决单库单表性能问题的有效方案,主要适用于单表数据量过大(千万级)、单库并发压力高、业务隔离需求及冷热数据分离等场景。核心挑战包括分片策略设计(避免数据倾斜)、分布式事务处理、跨分片查询优化、平滑扩容及运维复杂度增加等问题。实施时需权衡性能与复杂性,优先考虑SQL优化和硬件升级,合理选择分片键和中间件工具(如ShardingSphere),减少对业务代码的侵入。分库分表本质是以架构复杂度换取性能提升,应在明确瓶颈后再采用。
2025-08-11 17:26:22
980
原创 发布SDK与旧版本不兼容问题
SDK接口参数变更升级的平滑过渡方案 摘要:当SDK接口参数变更时,需通过四步策略实现平滑升级:1)接口层采用多版本并行或参数默认值保证向后兼容;2)SDK层通过语义化版本和兼容适配层降低升级成本;3)采用灰度发布和分阶段过渡期强制升级;4)提供详细升级指南和检测工具帮助老用户迁移。方案强调保留老接口、明确版本差异、渐进式升级和降低用户适配成本,确保业务连续性。(149字)
2025-08-11 16:45:10
919
原创 上传大文件处理流程
大文件分片上传方案摘要 大文件上传采用分片处理方案,核心流程分为前端分片处理和服务端合并两大部分: 前端实现要点: 使用File.slice将文件分割成固定大小分片(如5MB) 通过MD5哈希生成文件唯一标识,支持断点续传 并发上传分片(控制并发数),失败自动重试 上传前查询服务端获取已上传分片信息 服务端实现要点: 按文件MD5+分片索引存储临时分片 提供已上传分片查询接口 合并时按索引顺序拼接分片 合并后校验文件完整性并清理临时文件
2025-08-11 16:24:03
977
原创 Guava限流实现
本文介绍了基于Guava的RateLimiter实现两种限流方案:多用户限流管理和全局限流管理。在多用户限流方案中,使用ConcurrentHashMap存储每个用户的RateLimiter实例,通过定时任务清理长时间不活跃的用户,每个用户限制为每秒2次请求。全局限流方案则采用共享RateLimiter,提供了阻塞式获取(tryAcquire)、非阻塞式获取(acquire)和带超时获取(tryAcquire(timeout))三种方式,并支持动态调整速率。
2025-08-10 21:04:42
845
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人