上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页
摘要: 日常开发中,我们经常遇到这种业务场景,如:外卖订单超 30 分钟未支付,则自动取订单;用户注册成功 15 分钟后,发短信息通知用户等等。这就是延时任务处理场景。 在电商,支付等系统中,一设都是先创建订单(支付单),再给用户一定的时间进行支付,如果没有按时支付的话,就需要把之前的订单(支付单)取消掉。 阅读全文
posted @ 2025-04-07 08:15 程序员Seven 阅读(2665) 评论(7) 推荐(8)
摘要: MoreExecutors directExecutor ExecutorService executor = Executors.newSingleThreadExecutor(); SettableFuture<Integer> future = SettableFuture.create(); 阅读全文
posted @ 2025-04-04 08:15 程序员Seven 阅读(342) 评论(0) 推荐(1)
摘要: 引言 Guava 使用术语 流来表示可关闭的,并且在底层资源中有位置状态的 I/O 数据流。字节流对应的工具类为 ByteSterams,字符流对应的工具类为 CharStreams。 Guava 中为了避免和流直接打交道,抽象出可读的 源 source 和可写的 汇 sink 两个概念,指可以从中 阅读全文
posted @ 2025-04-03 08:15 程序员Seven 阅读(317) 评论(0) 推荐(3)
摘要: Collections2 private Collections2() { } 私有构造器,也没有静态构造器,所以可以很明确它是一个纯工具类了。 filter过滤方法 传入一个带过滤的容器,和一个实现过滤规则的函数类,返回一个带有过滤动作的容器 public static <E extends @N 阅读全文
posted @ 2025-04-02 08:15 程序员Seven 阅读(77) 评论(0) 推荐(0)
摘要: BiMap Map 可以实现 key -> value 的映射,如果想要 value -> key 的映射,就需要定义两个 Map,并且同步更新,很不优雅。Guava 提供了 BiMap 支持支持双向的映射关系,常用实现有HashMap, EnumBiMap, EnumHashBiMap...。 而 阅读全文
posted @ 2025-04-01 08:15 程序员Seven 阅读(253) 评论(2) 推荐(1)
摘要: Immutable 如《Effective Java》Item1)所述,在设计类的时候,倾向优先使用静态工厂方法(static factory method)而非构造函数(constructor)创建对象,优点在于: 静态工厂方法多了一层名称信息,比构造函数更富表达性。 可以更灵活地创建对象,比如缓 阅读全文
posted @ 2025-03-31 08:15 程序员Seven 阅读(303) 评论(0) 推荐(2)
摘要: Java 24作为2025年3月发布的最新版本,延续了Java平台每半年发布一次的节奏,带来了24项重要改进。本文将按照核心改进领域分类,详细解析每个特性的技术原理和实际价值,帮助开发者全面了解这一版本的能力边界和应用场景。 不过Java24是自Java 21 以来的第三个非长期支持版本,下一个长期 阅读全文
posted @ 2025-03-30 14:03 程序员Seven 阅读(758) 评论(0) 推荐(0)
摘要: 方法 49、检查参数的有效性 每次编写方法或构造函数时,都应该考虑参数存在哪些限制,并在文档中记录下来,然后在方法的开头显式地检查。 如果没有在方法开头就验证参数,可能会违反故障原子性。因为方法可能会在执行过程中出现让人困惑的异常而失败,或者计算出错误的结果然后返回,甚至可能埋藏隐患,导致将来在不确 阅读全文
posted @ 2025-03-28 08:15 程序员Seven 阅读(467) 评论(0) 推荐(0)
摘要: 创建和销毁对象 1、静态工厂方法代替构造器 优点 静态工厂方法有名称,能确切地描述正被返回的对象。 不必每次调用都创建一个新的对象。 可以返回原返回类型的任何子类对象。 创建参数化类型实例时更加简洁,比如调用构造 HashMap 时,使用 Map < String,List < String > m 阅读全文
posted @ 2025-03-25 08:15 程序员Seven 阅读(597) 评论(0) 推荐(1)
摘要: String相关工具 Strings Guava 提供了一系列用于字符串处理的工具: 对字符串为null或空的处理 nullToEmpty(@Nullable String string):如果非空,则返回给定的字符串;否则返回空字符串 public static String nullToEmpt 阅读全文
posted @ 2025-03-24 08:15 程序员Seven 阅读(326) 评论(0) 推荐(0)
摘要: Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法,方便我们对集合进行各种操作,算是集合框架的一个大管家。 大致看一下方法名和参数就能知道这个方法是干嘛的: 排序操作 reverse(List list):反转顺序 shuffle(List 阅读全文
posted @ 2025-03-20 08:15 程序员Seven 阅读(206) 评论(0) 推荐(0)
摘要: Java 的 Objects 类是一个实用工具类,包含了一系列静态方法,用于处理对象。它位于 java.util 包中,自 Java 7 引入。Objects 类的主要目的是降低代码中的空指针异常(NullPointerException) 风险,同时提供一些非常实用的方法供我们使用。 Object 阅读全文
posted @ 2025-03-18 08:15 程序员Seven 阅读(250) 评论(0) 推荐(0)
摘要: 数组专用工具类指的是 java.util.Arrays 类,基本上常见的数组操作,这个类都提供了静态方法可供直接调用。毕竟数组本身想完成这些操作还是挺麻烦的,有了这层封装,就方便多了。 package java.util; /** * @author Josh Bloch * @author Nea 阅读全文
posted @ 2025-03-17 08:15 程序员Seven 阅读(453) 评论(0) 推荐(0)
摘要: 认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。 单体架构的优缺点如下: 优点: 架构简单 部署成本低 缺点: 耦合度高(维护困难、升 阅读全文
posted @ 2025-03-13 08:15 程序员Seven 阅读(967) 评论(2) 推荐(3)
摘要: 概述 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int add(int a,int b){ return a + b; } //用于两个整数相加 public static int add(i 阅读全文
posted @ 2025-03-12 20:15 程序员Seven 阅读(66) 评论(1) 推荐(0)
摘要: 概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件都提供了撤销(Undo)操作,如 Word、记事本、Photoshop、IDEA等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操作 阅读全文
posted @ 2025-03-12 20:09 程序员Seven 阅读(94) 评论(0) 推荐(0)
摘要: 概述 定义:封装一些作用于某种数据结构中的各元素的操作(将数据结构于元素进行分离),它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 结构 访问者模式包含以下主要角色: 抽象访问者(Visitor)角色:定义了对每一个元素(Element)访问的行为,它的参数就是可以访问的元素,它的 阅读全文
posted @ 2025-03-12 20:04 程序员Seven 阅读(123) 评论(0) 推荐(0)
摘要: 概述 定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 结构 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具体迭代 阅读全文
posted @ 2025-03-12 19:56 程序员Seven 阅读(67) 评论(0) 推荐(0)
摘要: 概述 一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。也就是说 阅读全文
posted @ 2025-03-12 12:33 程序员Seven 阅读(83) 评论(0) 推荐(0)
摘要: 概述 定义:又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。 结构 在观察者模式中有如下角色: Subject:抽象主题(抽象被观察者),抽象 阅读全文
posted @ 2025-03-12 12:28 程序员Seven 阅读(100) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页