首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
后端实践总结
桦说编程
创建于2023-05-05
订阅专栏
总结后端实践心得,包含以下内容:业务逻辑实现、数据库设计与优化、API编写、性能优化、技术框架等。
等 29 人订阅
共42篇文章
创建于2023-05-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
并发编程高级技巧:运行时检测死锁,告别死锁焦虑
Guava 的 CycleDetectingLockFactory 通过锁依赖图实时检测死锁,开发阶段立即抛异常而非等生产环境挂起,零侵入改造即可获得死锁检测能力。
滑动窗口实现线程池并发度控制详解
采用滑动窗口策略控制并发度,实现并发可控且立即返回Future列表,submitter单线程异步补充任务,实现高资源利用、简单易懂的并发控制。
Guava Forwarding系列类详解——装饰器模式实战
大家好,我是桦说编程。Fowarding系列类广义上涉及三种设计模式:装饰器模式、模版方法模式、委托模式。本文将介绍其用法
ConcurrentHashMap 弱一致性解读
大家好,我是桦说编程。 本文解读了ConcurrentHashMap 的迭代器采用弱一致性(Weakly Consistent)设计,分析了并发遍历时的诸多case。
适合新手的并发编程学习路线
大学时,我学习了一本国外的教科书,书名叫做《计算机网络——自顶向下方法》。本文总结了针对并发编程的自顶向下学习路线。
如何在Java中实现支持随机访问的固定窗口队列
本文介绍了一种在Java中实现的自定义滑动队列,利用了Google Guava库中的`EvictingQueue`。这种滑动队列允许以固定大小管理队列,并能够随机访问元素。我们将探讨这种数据结构的设计
CompletableFuture API 过于复杂?选取7个最常用的方法,解决95%的问题
截止 JDK25,CompletableFuture 已经支持68个实例方法,12个静态方法。这些方法虽然方便了使用者,但对于初学者来说无疑是过于复杂和难以记忆的。本文中,我将秉持极简和实用的原
爆赞!总结《软件设计的哲学》
最近读了《软件设计的哲学》(A Philosophy of Software Design),这本书中的很多思想深得我心。简单总结一下其内容,重要的内容在最前面。 这本书直指软件工程的核心挑战:管理复
数据丢失,而且不抛出并发异常,多线程使用HashMap踩坑
最近踩了一个别人挖的坑,遂写本文。在多线程环境中使用 `HashMap` 进行并发操作时,可能会导致数据丢失或不一致的问题。特别是,`HashMap` 的 `put` 方法在并发情况下不会抛出异常。
函数一定要有返回值 \ o /
方法的返回值不仅是一个简单的设计原则,更是提高代码质量和系统可靠性的重要手段。在设计和使用API时,开发者应充分利用返回值,以减少副作用带来的不良影响。通过关注方法的返回值,我们可以更好地理解和管理。
一文帮你掌握集合类库常见工具方法
本文旨在帮助读者建立Java集合类库相关工具方法的印象,有需要的读者可以收藏,待有具体需要时查阅。本文将侧重于容易被忽略的静态方法,同时会给出很多最佳实践。
并发编程与视图——简单方法返回异步 Map<Key, Data>
我们在业务开发中常遇到这种场景,执行业务时需要获取一些异步数据,后续使用时为同步方式,实际上,超时和异常恢复逻辑可以统一实现。本文将展示如何结合Guava实现,知识点涉及视图,延迟计算,职责分离思想等
写时复制COW核心原理解读
本文将以COWArrayList为例,详细解读COW思想,内容还涉及COWMap 的实现,版本管理如何使用COW,不可变实现与COW结合使用等。
配置快照实现之持久化数据结构
持久化数据结构是一种不可变的数据结构,适用于并发编程和版本控制,而且天然支持分布式链路追踪配置快照。本文介绍其特点、优缺点及应用场景,并探讨Vavr和PCollections在Java中的实现。
深入理解 Arrays.asList():视图与常见陷阱
Arrays.asList() 是常见的方法,但在使用时容易遇到问题。许多文章讲解时没有从视图的角度出发,从而使问题复杂化了。本文将通过视图的概念,深入解析其行为、陷阱及解决方案。
警惕AI幻觉!Deepseek对Java线程池中断机制的理解有误
最近,在与DeepSeek的对话中,我发现其AI模型对Java线程池中断机制存在错误理解,如果参照AI的回答,编写的代码会相当脆弱。
编程原则不是目的,而是手段
当100%测试覆盖率导致项目延期,当设计模式变成代码累赘,当"最佳实践"阻碍技术创新——你是否正在被自己信奉的编程原则所绑架?
告别强制转换:使用设计模式实现 Guava ListenableFuture 与 TTL 优雅融合
1. 通过装饰器模式为 TTL 原生支持 Guava 的 ListenableFuture,消除类型强转风险; 2. 结合适配器模式解决多层装饰导致的接口丢失问题,实现类型安全与代码简洁性的双重提升。
【硬核总结】如何轻松实现只计算一次、惰性求值?良性竞争条件的广泛使用可能超过你的想象!String实际上是可变的?
惰性求值和单次计算是优化程序性能的关键策略,广泛应用于Java中。通过惰性求值和缓存结果,这些技术在多线程环境中提高了效率,避免了不必要的资源消耗。
数组竟让项目崩溃!程序员深夜填坑的血泪教训!
业务代码中数组+泛型是“高危组合”:类型不安全、灵活性差,稍不留神就埋雷。血泪总结:集合类才是“救世主”——类型安全、内存可控,从此告别深夜填坑!(附真实翻车代码+避坑指南)
下一页