首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
趣味编程芝士
桦说编程
创建于2025-04-22
订阅专栏
编程技巧与有趣的知识
等 2 人订阅
共14篇文章
创建于2025-04-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
使用注解写出更优雅的代码,以CFFU为例
CFFU中有很多良好的代码实践,如果你追求更优雅、更健壮的代码,不妨学习一下CFFU中使用到的代码注解。本文内容涉及避免空指针bug相关注解,纯函数注解,提示用户使用结果注解等。
数据丢失,而且不抛出并发异常,多线程使用HashMap踩坑
最近踩了一个别人挖的坑,遂写本文。在多线程环境中使用 `HashMap` 进行并发操作时,可能会导致数据丢失或不一致的问题。特别是,`HashMap` 的 `put` 方法在并发情况下不会抛出异常。
函数一定要有返回值 \ o /
方法的返回值不仅是一个简单的设计原则,更是提高代码质量和系统可靠性的重要手段。在设计和使用API时,开发者应充分利用返回值,以减少副作用带来的不良影响。通过关注方法的返回值,我们可以更好地理解和管理。
一文帮你掌握集合类库常见工具方法
本文旨在帮助读者建立Java集合类库相关工具方法的印象,有需要的读者可以收藏,待有具体需要时查阅。本文将侧重于容易被忽略的静态方法,同时会给出很多最佳实践。
并发编程与视图——简单方法返回异步 Map<Key, Data>
我们在业务开发中常遇到这种场景,执行业务时需要获取一些异步数据,后续使用时为同步方式,实际上,超时和异常恢复逻辑可以统一实现。本文将展示如何结合Guava实现,知识点涉及视图,延迟计算,职责分离思想等
配置快照实现之持久化数据结构
持久化数据结构是一种不可变的数据结构,适用于并发编程和版本控制,而且天然支持分布式链路追踪配置快照。本文介绍其特点、优缺点及应用场景,并探讨Vavr和PCollections在Java中的实现。
深入理解 Arrays.asList():视图与常见陷阱
Arrays.asList() 是常见的方法,但在使用时容易遇到问题。许多文章讲解时没有从视图的角度出发,从而使问题复杂化了。本文将通过视图的概念,深入解析其行为、陷阱及解决方案。
消灭空指针异常,Lombok 给我们的优雅解决方案
Java中NPE传统的解决方案包括显式的null检查和使用Optional类。然而,这些方法可能会导致代码冗长且不易阅读。Lombok提供了一种更简洁的方式。
没有杯子的世界:OOP设计思想的应用实践
最近看到一个有趣的问题:Person类具有Hand,Hand可以操作杯子Cup,但是在石器时代是没有杯子的,这个问题用编程怎么解决?
Java 单元测试实战——编写可测试代码的技巧
本文讨论了Java如何编写可测试代码,结合实践,给出了相关代码demo。内容涉及如何将依赖外置,避免对数据库的模拟测试,ServiceImpl类长代码优化等。
函数式编程中函数有哪些玩法?(以Vavr为例)
Java8 引入了函数式相关概念,比如函数接口,方法引用,lambda表达式等等。本文中我们看看如何在 Java 语言的基础上实现更加复杂的函数式思想。
函数式编程如何消除副作用——Monad 入门与总结
本文详细解释了函数式编程中的核心概念——单子(monad),对于其特性进行了详细的解释和分析,不论对于初学者还是实践都很有帮助。内容涉及monad的定义、特性、解包、单子转换器等内容。
把 CompletableFuture 当做 monad 使用的潜在问题与改进
Java异步编程中,可以把 CompletableFuture 当做单子monad 使用,但是其不能实现快速失败方式的任务编排。本文将详细讨论如何应用单子,附有代码分析,内容还涉及模式匹配与最佳实践。
告别强制转换:使用设计模式实现 Guava ListenableFuture 与 TTL 优雅融合
1. 通过装饰器模式为 TTL 原生支持 Guava 的 ListenableFuture,消除类型强转风险; 2. 结合适配器模式解决多层装饰导致的接口丢失问题,实现类型安全与代码简洁性的双重提升。