Immutable(不可变)集合 一、概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开。Collections是jdk提供的一个工具类。 Guava中不可变对象和Collections工具类的unmodifiableSet/List/ ...
分类:
编程语言 时间:
2018-08-02 01:48:43
阅读次数:
170
Google 出的 Guava 是 Java 核心增强的库,应用非常广泛。 我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Google 大牛们是如何设计的。 ...
分类:
系统相关 时间:
2018-08-01 11:48:01
阅读次数:
188
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotat ...
分类:
其他好文 时间:
2018-07-31 13:18:19
阅读次数:
169
一、引子 Guava 对JDK集合的拓展,是最成熟且最受欢迎的部分。本文属于Guava的核心,需要仔细看。 二、Guava 集合 2.1 Immutable Collections不可变集合 1.作用 用不变的集合进行防御性编程和性能提升。 2.简单使用 打印: 2.2 新集合类型 1.作用 提供m ...
分类:
其他好文 时间:
2018-07-27 19:32:09
阅读次数:
216
一、引子 Guava的经典很大一部分原因来源于对于基础工具类的封装,使用这些类能够让我们的代码更加优雅且完善,这些类大部分都在com.google.common.base包下。 注:JDK有很多借鉴guava的地方,本文只讲解guava,如果jdk中有相同的想法,不必疑虑。 二、基本工具 按照官网介 ...
分类:
其他好文 时间:
2018-07-25 13:13:56
阅读次数:
171
guava是google的一个开源java框架,其github地址是 https://github.com/google/guava。guava工程包含了若干被Google的 Java项目广泛依赖的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [prim ...
分类:
系统相关 时间:
2018-07-22 19:27:01
阅读次数:
199
multiset:多重集合,和set唯一的不同是 set 集合中一个值只能出现一次,而multiset多重集合中一个值可以出现多次。 一个典型的应用就是统计单词出现次数 举例: 结果: ...
分类:
其他好文 时间:
2018-07-18 10:14:04
阅读次数:
128
Guava Cache [toc] 一、概述 1、内存缓存 可看作一个 jdk7的concurrentHashMap ,核心功能get,put 但是比一般的map多了一些功能,如: ??过限失效(根据不同的维度失效,读后N秒,写后N秒,最大size,最大weight) 自动刷新 支持软引用和弱引用 ...
分类:
系统相关 时间:
2018-07-07 01:11:25
阅读次数:
197
一、概述1、内存缓存2、核心数据结构二、具体实现0、一览众山小1、CacheBuilder 构建器2、LocalCache1)初始化2)put3)get4)清理软/弱引用一、概述1、内存缓存可看作一个jdk7的concurrentHashMap,核心功能get,put但是比一般的map多了一些功能,... ...
分类:
系统相关 时间:
2018-07-06 13:15:28
阅读次数:
225
一个简单的幂等工具类 在日常的工作中,业务的去重幂等场景属于比较常见的需求,一般来讲简单的幂等工具类可以基于内存或者基于redis进行,本篇简单介绍下,如何使用Guava的缓存来实现一个幂等工具类 <! more I. 基本思路与实现 利用Guava的内存缓存来缓存,如果执行完毕,则在缓存中添加一个 ...
分类:
其他好文 时间:
2018-07-05 23:13:49
阅读次数:
149