标签 - guava

java guava    2018-09-01 00:12:57    0    0    0

  应用场景

  • 你愿意花些内存来提高应用的速度
  • 你所要查询的数据需要花较多时间查询且需要经常查
  • 缓存数据所需要的内存不大于应用的内存

  数据加载

  From a CacheLoader

当缓存不存在时,通过调用loader的load方法去加载缓存
LoadingCache<Key, Graph> graph
java guava    2018-09-01 00:12:01    0    0    0
Multimaps.index(Iterable, Function) 索引、分组

ImmutableSet<String> digits = ImmutableSet.of("zero", "one", "two", "three", "four",
  "five", "six", "seven", "eight", "nine");
Function<String, Int
java guava    2018-09-01 00:09:34    0    0    0

Service代表一个对象的可运行状态和提供的启动和关闭方法。这是一个管理服务生命周期的框架对象

如何使用

Service的生命周期

Service提供的其他方法
  • addListener()用于监听服务状态变化
  • awaitRunning()阻塞直到服务的状态变为Running
  • awaitTerminated()阻塞直到服务的状态变为Termin
java guava    2018-09-01 00:08:12    0    0    0
不可变集合有以下好处:
  • 使用安全,不必担心被篡改
  • 线程安全
  • 能够节约时间和空间
  • 可以被作为常量使用


不可变集合类型和可变类型的对应关系
InterfaceJDK or Guava?Immutable Version
CollectionJDKImmutableCollection
ListJDKImmu
java guava    2018-09-01 00:07:52    0    0    0
Iterables大多数方法直接调的是Iterators的方法
该类主要使用场景是用于非Collection体系中的Iterable对象,以下的大部分方法在Collections工具类中都能找到相应的方法

MethodDescription
all(Iterable<T> iterable, Predicate<? super T> predicate)

java guava    2018-09-01 00:06:54    0    0    0

Guava ListenableFuture

与JDK自带的Future相比,ListenableFuture提供一个当执行完成时的异步回调方法,addListener(Runnable, Executor)。 用Future的地方最好能用ListenableFuture来代替

创建ListenableFuture的方法

  • 通过
java guava    2018-09-01 00:04:07    0    0    0

Joiner

Joiner joiner = Joiner.on("; ").skipNulls();
return joiner.join("Harry", null, "Ron", "Hermione");
Joiner 实例是不可变对象,其每一次的配置都是返回一个新的对象,这个能保证其线程安全

Splitter

java guava    2018-09-01 00:02:58    0    0    0

Guava Primitives(原型类相关的工具类)

Primitive Type
Guava Utilities
byte
Bytes, SignedBytes, UnsignedBytes
short
Shorts
int
Ints, UnsignedInteger, UnsignedInts
lon
java guava    2018-09-01 00:02:35    0    0    0
Multiset 是
  •  一个允许添加重复元素的SET
  • Multiset中元素的顺序是无关的,即 {a, a, b} 和{a, b, a}是相等的
  • 它像是一个无顺序约束的ArrayList
  • 它像是一个Map<String, Integer>数据结构

以下提供一些常用的API用法

MethodDescription
count(E)Co
java guava    2018-09-01 00:02:24    0    0    0
ByteStreams and CharStreams
ByteStreams处理的是字节, 对应的是InputStreamOutputStream CharStreams处理的是字符, 对应的是ReaderWriter注意:Guava提供的流操作方法都不需要用户去close流
ByteStreams
Char
闽ICP备19014535号-1