软件求生_个人页

个人头像照片 软件求生
个人头像照片
148
0
53

个人介绍

从事软件开发,分享包括但不限于“技术”、“运营”、“产品”等。

擅长的技术

  • Java
  • 项目管理
  • 设计模式
  • 微服务
  • 敏捷开发
获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2024年09月

  • 09.22 09:55:28
    发布了视频 2024-09-22 09:55:28

    算法实战:手写归并排序,让复杂排序变简单!

    算法实战:手写归并排序,让复杂排序变简单!
  • 09.22 09:41:13
    发表了文章 2024-09-22 09:41:13

    项目实战:一步步实现高效缓存与数据库的数据一致性方案

    Hello,大家好!我是热爱分享技术的小米。今天探讨在个人项目中如何保证数据一致性,尤其是在缓存与数据库同步时面临的挑战。文中介绍了常见的CacheAside模式,以及结合消息队列和请求串行化的方法,确保数据一致性。通过不同方案的分析,希望能给大家带来启发。如果你对这些技术感兴趣,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!
  • 09.20 09:58:19
    发表了文章 2024-09-20 09:58:19

    秒杀系统优化:用解耦提升系统性能的秘诀!

    大家好,我是小米,一个热爱分享技术经验的29岁程序员。本文主要探讨了解耦的概念及其在秒杀系统中的应用,特别是如何通过解耦提升系统的扩展性和容错能力。文中对比了HTTP/RPC同步调用和消息队列两种方式,分析了各自的优缺点及适用场景,帮助大家更好地选择合适的解耦方案。希望本文能让大家对解耦有更深入的理解。
  • 09.19 10:47:29
    发表了文章 2024-09-19 10:47:29

    抢购不再卡顿!揭秘异步处理如何优化秒杀流程!

    本文由程序员小米分享,详细介绍了如何通过异步处理简化秒杀请求中的业务流程,提高系统效率与稳定性。主要内容包括秒杀场景的挑战、核心思路、核心业务(生成订单、扣减库存)及次要业务(发放优惠券、增加积分)的异步处理方法,并探讨了使用消息队列的优势及优化用户体验的策略。通过异步处理,系统能更好地应对高并发请求,提升响应速度和稳定性。
  • 09.19 10:30:40
    发布了视频 2024-09-19 10:30:40

    手写快排:教你用Java写出高效排序算法!

    手写快排:教你用Java写出高效排序算法!
  • 09.18 14:22:38
    发表了文章 2024-09-18 14:22:38

    高并发流量杀手锏:揭秘秒杀系统背后的削峰技术!

    本文介绍了秒杀场景下的“削峰填谷”策略,通过消息队列缓冲用户请求,避免高并发对系统造成冲击。文中详细解释了消息队列的工作原理及如何通过预扣减库存和分布式锁确保数据一致性,同时还提出了合理的消息队列配置、高可用性及数据库负载均衡等最佳实践。通过这些技术手段,可有效提升系统的稳定性和用户体验。
  • 09.18 11:24:41
    发布了视频 2024-09-18 11:24:41

    抢红包必看!算法决定你的红包大小

    抢红包必看!算法决定你的红包大小
  • 09.14 11:12:10
    发布了视频 2024-09-14 11:12:10

    挑战1G内存!如何在千万记录中找到最热TOP10查询串?

    挑战1G内存!如何在千万记录中找到最热TOP10查询串?
  • 09.14 10:27:12
    发表了文章 2024-09-14 10:27:12

    高并发下的生存之道:如何巧妙化解热Key危机?

    本文详细探讨了互联网高并发场景下的热Key问题及其解决方案。热Key即因频繁访问导致缓存压力激增,影响系统稳定性。作者小米介绍了多种应对策略,包括Redis集群、主从复制、本地缓存、限流及Key加随机值等技术手段,旨在帮助读者有效分散负载,确保服务稳定。此外,还提供了兜底逻辑如降级处理和预热机制,以应对突发流量。希望本文能帮助大家更好地理解和解决热Key问题。
  • 09.13 10:05:25
    发布了视频 2024-09-13 10:05:25

    实战算法篇:设计短域名系统,将长URL转化成短的URL.

    实战算法篇:设计短域名系统,将长URL转化成短的URL.
  • 09.13 09:49:09
    发表了文章 2024-09-13 09:49:09

    开发故事:一个 @Async 如何搞瘫整个微服务系统

    大家好,我是小米,一个热爱分享技术的29岁开发者。本文讲述了一个困扰我们团队的开发环境问题,最终发现罪魁祸首竟是 `@Async` 注解。我们通过详细分析错误日志和 Spring 的 Bean 代理机制,逐步排查并解决了这一难题。文章介绍了三种解决方案:调整依赖结构、使用 `@Lazy` 延迟加载以及禁用 `@Async` 的代理功能。希望对你有所帮助!欢迎关注我的微信公众号“软件求生”,获取更多技术干货!
  • 09.05 10:11:36
    发布了视频 2024-09-05 10:11:36

    从海量数据中挖出TOP100热词,这个算法太绝了!

    从海量数据中挖出TOP100热词,这个算法太绝了!
  • 09.05 09:54:52
    发表了文章 2024-09-05 09:54:52

    昵称重复怎么办?一招教你轻松搞定!

    本文介绍了如何使用布隆过滤器高效管理用户昵称重复问题。在互联网项目中,确保昵称唯一性至关重要,可避免混淆、增强安全性和保持数据一致性。布隆过滤器通过哈希函数和位数组实现快速查询,具有低内存占用和高速查询的优点。文中详细解释了其工作原理,并提供了Java代码示例,帮助读者理解和应用这一技术,提升项目性能。
  • 09.02 10:57:21
    发布了视频 2024-09-02 10:57:21

    算法实战:快速找到100亿个URL中的重复项!

    算法实战:快速找到100亿个URL中的重复项!
  • 09.02 10:43:37
    发表了文章 2024-09-02 10:43:37

    秒解答题系统的头号难题:防止重复提交的终极指南!

    小米,29岁技术爱好者,分享如何用Redis解决重复答题问题。在线考试系统常遇用户重复提交答案,导致数据异常。本文介绍利用Redis分布式锁特性防止重复提交,包括SETNX命令及Lua脚本实现方法,确保高并发下系统稳定可靠。适合线上考试或答题系统开发者参考。

2024年08月

  • 08.30 11:05:36
    发布了视频 2024-08-30 11:05:36

    极限挑战:40亿个非负整数中找到没有出现的数(bit数组)

    极限挑战:40亿个非负整数中找到没有出现的数(bit数组)
  • 08.30 10:33:33
    发表了文章 2024-08-30 10:33:33

    升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置

    本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
  • 08.29 10:55:00
    发表了文章 2024-08-29 10:55:00

    排行榜系统设计:高并发场景下的最佳实践

    本文由技术分享者小米带来,详细介绍了如何设计一个高效、稳定且易扩展的排行榜系统。内容涵盖项目背景、技术选型、数据结构设计、基本操作实现、分页显示、持久化与数据恢复,以及高并发下的性能优化策略。通过Redis与MySQL的结合,确保了排行榜的实时性和可靠性。适合对排行榜设计感兴趣的技术人员参考学习。
  • 08.28 11:30:52
    发表了文章 2024-08-28 11:30:52

    三种方法教你实现多线程交替打印ABC,干货满满!

    本文介绍了多线程编程中的经典问题——多线程交替打印ABC。通过三种方法实现:使用`wait()`和`notify()`、`ReentrantLock`与`Condition`、以及`Semaphore`。每种方法详细讲解了实现步骤和代码示例,帮助读者理解和掌握线程间的同步与互斥,有效解决并发问题。适合不同层次的开发者学习参考。
  • 08.27 13:58:40
    发表了文章 2024-08-27 13:58:40

    从基础到实战:如何用 Java 手写一个阻塞队列?

    大家好,我是小米!今天分享手写阻塞队列(Blocking Queue)教程,深入讲解并发编程中的 wait() 和 notifyAll() 机制,通过代码实战,让你轻松掌握生产者-消费者模型中的阻塞队列实现!
  • 08.24 10:00:56
    发布了视频 2024-08-24 10:00:56

    深入剖析操作系统死锁:不可不知的四大条件!

    深入剖析操作系统死锁:不可不知的四大条件!
  • 08.24 09:39:49
    发表了文章 2024-08-24 09:39:49

    缓存优化利器:5分钟实现 LRU Cache,从原理到代码!

    嗨,大家好!我是你们的技术小伙伴——小米。今天带大家深入了解并手写一个实用的LRU Cache(最近最少使用缓存)。LRU Cache是一种高效的数据淘汰策略,在内存有限的情况下特别有用。本文将从原理讲起,带你一步步用Java实现一个简单的LRU Cache,并探讨其在真实场景中的应用与优化方案,如线程安全、缓存持久化等。无论你是初学者还是有一定经验的开发者,都能从中受益。让我们一起动手,探索LRU Cache的魅力吧!别忘了点赞、转发和收藏哦~
  • 08.22 14:34:57
    发表了文章 2024-08-22 14:34:57

    堆排序实战:轻松实现高效排序,附详细Java代码

    嗨,大家好!我是小米,一名热爱技术分享的程序员。今天要带大家了解堆排序——一种基于二叉堆的数据结构,具有O(n log n)时间复杂度的选择排序算法。堆排序分为构建大顶堆和排序两个阶段:先建堆使根节点为最大值,再通过交换根节点与末尾节点并调整堆来逐步排序。它稳定高效,空间复杂度仅O(1),适合对稳定性要求高的场合。虽然不如快速排序快,但在避免递归和节省空间方面有优势。一起动手实现吧!如果有任何疑问,欢迎留言交流!
  • 08.21 10:21:36
    发布了视频 2024-08-21 10:21:36

    四大内存区域揭秘:你真的了解你的程序吗?

    四大内存区域揭秘:你真的了解你的程序吗?
  • 08.21 10:04:30
    发表了文章 2024-08-21 10:04:30

    算法实战:手写归并排序,让复杂排序变简单!

    归并排序是一种基于“分治法”的经典算法,通过递归分割和合并数组,实现O(n log n)的高效排序。本文将通过Java手写代码,详细讲解归并排序的原理及实现,帮助你快速掌握这一实用算法。
  • 08.20 13:53:13
    发表了文章 2024-08-20 13:53:13

    手写快排:教你用Java写出高效排序算法!

    快速排序(QuickSort)是经典的排序算法之一,基于分治思想,平均时间复杂度为O(n log n),广泛应用于各种场合。在这篇文章中,我们将手写一个Java版本的快速排序,从基础实现到优化策略,并逐步解析代码背后的逻辑。
  • 08.19 14:09:12
    发表了文章 2024-08-19 14:09:12

    抢红包必看!算法决定你的红包大小

    嗨,大家好!我是小米,热爱分享的技术程序员。今天聊聊红包算法——在保证公平、随机与乐趣的同时,如何巧妙分配红包金额。主要分为线性切割法与二倍均值法。前者通过随机切割区间,后者则确保金额在一定范围内随机,使分配更均匀。两种方法各有千秋,适用于不同场合,希望能给你带来灵感!
  • 08.19 11:18:52
    发布了视频 2024-08-19 11:18:52

    探索操作系统的核心:用户态与核心态的深度解析

    探索操作系统的核心:用户态与核心态的深度解析
  • 08.16 13:51:47
    发表了文章 2024-08-16 13:51:47

    Redis助力高并发网站:在线用户统计不再是难题!

    小米带你了解如何使用Redis高效统计网站的在线与并发用户数。通过维护用户的活跃时间,利用Redis有序集合(Sorted Set)特性,可实时更新在线用户列表并统计数量。具体实现包括记录用户上线时间、定期清理离线用户及统计特定时间窗口内的活跃用户数。这种方法适用于高并发场景,保证统计结果的实时性和准确性。跟着小米一起探索Redis的强大功能吧!
  • 08.15 15:44:48
    发表了文章 2024-08-15 15:44:48

    评论系统如何不崩溃?揭开海量评论背后的技术秘密

    小米介绍了一种高效处理海量新闻评论的技术方案。面对突发新闻带来的评论潮,通过采用消息队列异步入库、读写分离以及热点缓存等技术,不仅能有效减轻数据库压力,还能保证用户快速查看最新评论。消息队列如Kafka或RabbitMQ可缓存评论请求,后台异步处理入库,避免数据库过载。读写分离则通过主从数据库架构分散读取负载,配合热点评论的缓存机制进一步提升访问速度。这套架构确保了系统的稳定性和响应速度,适用于高并发的评论处理场景。
  • 08.14 15:39:07
    发布了视频 2024-08-14 15:39:07

    从零开始掌握进程间通信:管道、信号、消息队列、共享内存大揭秘

    从零开始掌握进程间通信:管道、信号、消息队列、共享内存大揭秘
  • 08.14 09:55:58
    发表了文章 2024-08-14 09:55:58

    实战算法篇:设计短域名系统,将长URL转化成短的URL.

    小米介绍了一种实用的短域名系统设计,用于将冗长的URL转化为简短链接。短链接不仅节省空间,便于分享,还能支持数据分析。系统通过唯一编号结合62进制转换生成短标识,并利用如Redis这样的数据库存储长链接与短标识的映射关系。最后,通过302重定向实现用户访问时的长链接恢复。这一方案适用于多种场景,有效提升用户体验与数据追踪能力。
  • 08.13 10:23:21
    发布了视频 2024-08-13 10:23:21

    如何区分进程、线程和协程?看这篇就够了!

    如何区分进程、线程和协程?看这篇就够了!
  • 08.13 10:10:33
    发表了文章 2024-08-13 10:10:33

    仅用10MB内存,你能从100亿个数中找到中位数吗?

    大家好,我是小米,一名热爱技术分享的程序员。今天探讨如何在内存有限(仅10MB)时找到100亿个整数的中位数。面对庞大的数据量(约400GB)及内存限制,我们将采用分治策略:先依据整数的最高二进制位将数据分为非负数与负数两个文件,逐步缩小范围直至能在内存中处理。当内存充足时,可直接加载所有数据并排序找到中位数。这一问题不仅考验算法能力,也是处理大数据时资源管理的关键。
  • 08.12 11:20:11
    发表了文章 2024-08-12 11:20:11

    从海量数据中挖出TOP100热词,这个算法太绝了!

    小米,一位热爱技术的29岁程序员,今天探讨如何在海量搜索词汇中找出最热的TOP100词汇。面对包含数百亿词汇的大文件,小米介绍了一种实用的方法:通过哈希分流将大文件拆分成小文件,接着利用哈希表统计词频,并运用小根堆选出每个小文件的TOP100词汇。最后通过外排序或再次使用小根堆选出全局TOP100。此外还提出了并行处理、内存优化及数据压缩等优化手段。这一系列技巧能有效应对大数据处理挑战。
  • 08.09 10:34:41
    发布了视频 2024-08-09 10:34:41

    一步步揭秘:浏览器输入URL后的那些事儿

    一步步揭秘:浏览器输入URL后的那些事儿
  • 08.09 10:06:02
    发表了文章 2024-08-09 10:06:02

    极限挑战:40亿个非负整数中找到没有出现的数(bit数组)

    大家好!我是小米,一名热衷于技术分享的29岁程序员。今天探讨的问题是在40亿个非负整数中找到未出现的数字。直接使用哈希表因内存限制而不可行。本文提出了一种解决方案——利用bit数组。通过标记出现过的数字,最终找出未被标记的位置所对应的数字即为答案。对于更严格的内存限制(如10MB),文章还介绍了分块处理的方法,先统计每个区间的数字数量,找到计数不足的区间后再精确处理。这种算法不仅展示了巧妙利用有限资源的能力,也为实际工程问题提供了解决思路。希望各位读者能从中受益,享受编程带来的乐趣!
  • 08.08 16:55:26
    发表了文章 2024-08-08 16:55:26

    小米教你:2GB内存搞定20亿数据的高效算法

    你好,我是小米。本文介绍如何在2GB内存中找出20亿个整数里出现次数最多的数。通过将数据用哈希函数分至16个小文件,每份独立计数后选出频次最高的数,最终比对得出结果。这种方法有效解决大数据下的内存限制问题,并可应用于更广泛的场景。欢迎关注我的公众号“软件求生”,获取更多技术分享!
  • 08.07 10:09:09
    发表了文章 2024-08-07 10:09:09

    布隆过滤器揭秘:让URL黑名单存储从640GB缩小到35.88GB!

    嗨,我是小米,热衷技术分享。今天探讨利用布隆过滤器处理100亿URL黑名单的高效存储与查询问题。传统散列表需640GB内存,而布隆过滤器仅占35.88GB,误判率0.01%,极大节省资源。通过计算位数组长度与哈希函数数量,实现高效查询。我还将分享其实现代码。希望对你有所帮助!
  • 08.06 09:59:47
    发表了文章 2024-08-06 09:59:47

    深入剖析操作系统死锁:不可不知的四大条件!

    大家好,我是小米。今天探讨操作系统中的死锁问题——两个或更多进程因争夺资源陷入相互等待的状态。死锁有四个必要条件:互斥、请求与保持、非剥夺及循环等待。解决策略包括:使用乐观锁破坏互斥条件;资源一次性分配避免请求与保持;允许资源剥夺;以及采用资源有序分配法消除循环等待。通过这些方法,可以有效预防和解决死锁,提升系统稳定性和效率。希望本文能帮助你更好地理解并处理死锁问题!
  • 08.05 10:50:03
    发布了视频 2024-08-05 10:50:03

    重定向和转发到底有啥区别?看这篇就够了!

    重定向和转发到底有啥区别?看这篇就够了!
  • 08.05 10:37:46
    发表了文章 2024-08-05 10:37:46

    理解操作系统内存管理:页面置换算法全解析

    大家好,我是小米,热爱分享技术的大哥哥!今天聊的是操作系统中的页面置换算法。它解决的是内存满载时,如何选择合适的页面移出以腾出空间的问题。主要有三种算法:FIFO(先进先出),简单但性能不佳;LRU(最近最久未使用),考虑时间局部性,性能较好但实现较复杂;OPT(最佳置换),理论上最优但无法实际应用。这些算法各有千秋,在实际应用中需根据场景选择最合适的方案。希望这能帮大家更好地理解内存管理的核心机制!
  • 08.02 10:32:21
    发布了视频 2024-08-02 10:32:21

    HTTP和HTTPS的区别,你真的了解吗?

    HTTP和HTTPS的区别,你真的了解吗?
  • 08.02 10:06:18
    发表了文章 2024-08-02 10:06:18

    探索操作系统的核心:用户态与核心态的深度解析

    本文介绍了操作系统中用户态与核心态的概念,两者分别代表程序执行的不同权限级别。用户态限制应用程序访问敏感资源以确保安全,而核心态赋予操作系统完全控制权以管理硬件和内存。文章详细解释了这两种状态的重要性、区别以及如何在二者之间进行切换,包括通过系统调用、异常和中断等方式。理解这些概念对于确保系统的稳定性和安全性至关重要。
  • 08.01 17:07:23
    发布了视频 2024-08-01 17:07:23

    从零开始掌握HTTP协议:全面详解1.0、1.1和2.0

    从零开始掌握HTTP协议:全面详解1.0、1.1和2.0
  • 08.01 11:40:51
    发表了文章 2024-08-01 11:40:51

    从零开始掌握进程间通信:管道、信号、消息队列、共享内存大揭秘

    在操作系统中,进程间通信(IPC)是至关重要的,它提供了多种机制来实现不同进程间的数据交换和同步。本篇文章将详细介绍几种常见的IPC方式,包括管道、信号、消息队列、共享内存、信号量和套接字,帮助你深入理解并合理应用这些通信方式,提高系统性能与可靠性。

2024年07月

  • 07.31 09:50:47
    发表了文章 2024-07-31 09:50:47

    如何区分进程、线程和协程?看这篇就够了!

    以下是内容摘要,已简化并保持在240字符以内: 嗨,我是小米!今天聊聊进程、线程和协程: - **进程**:资源分配基本单位,独立且隔离。 - **线程**:进程内执行单元,轻量级且共享资源。 - **协程**:比线程更轻量,适合I/O密集型任务。 每种都有独特特点和适用场景,选择合适可优化性能。希望对你有所帮助!更多内容,请关注我的公众号“软件求生”。
  • 07.30 10:50:54
    发布了视频 2024-07-30 10:50:54

    网络必修课:以太网报文格式详解

    网络必修课:以太网报文格式详解
  • 07.30 10:36:20
    发表了文章 2024-07-30 10:36:20

    一步步揭秘:浏览器输入URL后的那些事儿

    大家好,我是小米!你有没有好奇过,当你在浏览器输入一个网址并按下回车键后,到底发生了什么神奇的过程?从DNS解析到TCP连接,从发送HTTP请求到浏览器渲染,本文将带你深入了解这个复杂而又迷人的过程,让我们一起探索吧!
  • 07.29 14:40:02
    发表了文章 2024-07-29 14:40:02

    Cookie和Session的区别,99%的程序员都不知道的细节!

    大家好,我是小米,在Web开发中,Cookie和Session是两种重要的状态管理工具。它们有着不同的存储位置、安全性和应用场景。本篇文章将详细解析它们的区别和应用,让你在开发过程中能够更加游刃有余。让我们一起深入了解吧!
  • 发表了文章 2024-11-25

    Java面试高频题:用最优解法算出2乘以8!

  • 发表了文章 2024-11-22

    DDD新手入门:领域模型设计的七个核心概念

  • 发表了文章 2024-11-21

    从0到1打造秒杀系统:一文掌握领域建模精髓!

  • 发表了文章 2024-11-20

    还原真实世界,领域模型教你让系统自然生长

  • 发表了文章 2024-11-15

    事件驱动+推拉结合:智慧社区服务解耦新玩法

  • 发表了文章 2024-11-14

    微服务如何实现低耦合高内聚?架构师都在用的技巧!

  • 发表了文章 2024-11-13

    全网最全压测指南!教你如何测试和优化系统极限性能

  • 发表了文章 2024-11-12

    大厂面试必看!Java基本数据类型和包装类的那些坑

  • 发表了文章 2024-11-11

    Java基础的灵魂——Object类方法详解(社招面试不踩坑)

  • 发表了文章 2024-11-08

    Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?

  • 发表了文章 2024-11-07

    add()方法导致NPE?不可变集合singletonList的隐藏陷阱!

  • 发表了文章 2024-11-06

    面试高频考点!关于构造方法的那些事儿

  • 发表了文章 2024-11-01

    一篇搞懂!Java对象序列化与反序列化的底层逻辑

  • 发表了文章 2024-10-31

    高并发神器!ConcurrentHashMap为何如此高效?

  • 发表了文章 2024-10-30

    Java面试加分点!一文读懂HashMap底层实现与扩容机制

  • 发表了文章 2024-10-29

    深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制

  • 发表了文章 2024-10-28

    Java集合之战:ArrayList vs LinkedList,谁才是你的最佳选择?

  • 发表了文章 2024-10-25

    揭开Java反射的神秘面纱:从原理到实战应用!

  • 发表了文章 2024-10-23

    抽象类 vs 接口:如何在实际项目中做出正确选择?

  • 发表了文章 2024-10-22

    Java 面试高频考点:static 和 final 深度剖析

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
滑动查看更多