浅谈Java库之‌Guava

一、Guava库介绍

Guava是Google开发的一个Java核心库,它包含了新的集合类型(如多集合、双端队列等)、并发库、常用工具类(如缓存、预处理和字符串处理)、I/O和时间库等。Guava库旨在提供简洁、高性能的解决方案来处理Java标准库中未涵盖或处理不够好的问题。

二、Guava的主要功能

1、集合 :提供了一系列扩展的集合类型,如MultisetBiMapTable等。

2、缓存:提供了一个强大的缓存机制,可以自动管理缓存的大小和过期时间。

3、并发 :提供了一些并发工具类,如ListeningExecutorServiceMoreExecutors等。

4、预处理 :提供了PreconditionsVerify等工具类,用于参数校验。

5、字符串处理 :提供了StringsCharMatcher等工具类,用于字符串操作。

6、I/O :提供了FilesByteStreams等工具类,用于文件和字节流操作。

7、时间 :提供了TimeLimiter Stopwatch等工具类,用于时间相关的操作。

8、函数式编程 :提供了FunctionPredicate等函数式接口的实现。

三、Guava的使用

添加Maven依赖

在项目的pom.xml文件中添加Guava依赖:

bash 复制代码
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version> <!-- 使用最新版本 -->
</dependency>
常用工具类和功能的示例
  • 集合操作
java 复制代码
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;

List<String> list = Lists.newArrayList("a", "b", "c");
Set<String> set = Sets.newHashSet("a", "b", "c");
  • 缓存
java 复制代码
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;

LoadingCache<String, String> cache = CacheBuilder.newBuilder()
    .maximumSize(100)
    .expireAfterWrite(10, TimeUnit.MINUTES)
    .build(CacheLoader.from(key -> compute(key)));

String value = cache.getUnchecked("key");
  • 并发工具
java 复制代码
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;

ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(4));
service.submit(() -> {
    // 执行任务
});
  • 预处理
java 复制代码
import com.google.common.base.Preconditions;

String name = "Kimi";
Preconditions.checkNotNull(name, "Name cannot be null");
  • 字符串处理
java 复制代码
import com.google.common.base.Strings;

String str = "  Google ";
boolean isNullOrEmpty = Strings.isNullOrEmpty(str);
  • I/O操作
java 复制代码
import com.google.common.io.Files;

Files.copy(new File("source.txt"), new File("destination.txt"));
  • 时间操作
java 复制代码
import com.google.common.base.Stopwatch;

Stopwatch stopwatch = Stopwatch.createStarted();
// 执行一些操作
stopwatch.stop();
System.out.println("Time elapsed: " + stopwatch.elapsed(TimeUnit.SECONDS) + "s");
相关推荐
Wx-bishekaifayuan14 天前
springboot市社保局社保信息管理与分析系统-计算机设计毕业源码03479
java·css·spring boot·spring·spring cloud·servlet·guava
鹏阿鹏16 天前
【SpringBoot】Guava包Cache缓存的使用
spring boot·缓存·guava
Wx-bishekaifayuan20 天前
django电商易购系统-计算机设计毕业源码61059
java·spring boot·spring·spring cloud·django·sqlite·guava
非往22 天前
五、Java并发 Java Google Guava 实现
java·开发语言·guava
gorgor在码农22 天前
Google Guava 发布订阅模式/生产消费者模式 使用详情
guava
鱼跃鹰飞25 天前
大厂面试真题-如果使用guava limiter实现实例级别的缓存
缓存·面试·guava
鱼跃鹰飞1 个月前
大厂面试真题-caffine比guava有什么提升?
数据库·mysql·面试·职场和发展·guava
ldxxxxll1 个月前
Guava使用指南2
java·算法·guava
电脑令人发狂的2 个月前
Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存
spring boot·jar·guava