2.14 FinalizableSoftReference<T>:
抽象类,只有构造函数。
继承了
SoftReference<T>类,实现了
FinalizableReference接口,是有
finalizeReferent()方法的软引用。
2.15 FinalizableWeakReference<T>:
抽象类,只有构造函数。
继承了
WeakReference<T>类,实现了
FinalizableReference接口,是有
finalizeReferent()方法的弱引用。
2.16 FinalizablePhantomReference<T>:
抽象类,只有构造函数。
继承了
PhantomReference<T>类,实现了
FinalizableReference接口,是有
finalizeReferent()方法的虚引用。
2.17 FinalizableReferenceQueue
:引用队列,引用出列时,它的
finalizeReferent()
方法将会被调用。
以下关于Reference的相关知识引自:
http://www.blogjava.net/mlzry0612/articles/349967.html,在此对
daniel表示感谢!
SoftReference
类
SoftReference
类的一个典型用途就是用于内存敏感的高速缓存。
SoftReference
的原理是:在保持对对象的引用时保证
在
JVM
报告内存不足情况之前将清除所有的软引用。关键之处在于,垃圾收集器在运行时可能会(也可能不会)释放软可及对象。对象是否被释放取决于垃圾
收集器的算法以及垃圾收集器运行时可用的内存数量。
WeakReference
类
WeakReference
类的一个典型用途就是规范化映射(
canonicalized mapping
)。另外,对于那些生存期相对较长而且重新创
建的开销也不高的对象来说,弱引用也比较有用。关键之处在于,垃圾收集器运行时如果碰到了弱可及对象,将释放
WeakReference
引用的对象。
然而,请注意,垃圾收集器可能要运行多次才能找到并释放弱可及对象。
PhantomReference
类
PhantomReference
类只能用于跟踪对被引用对象即将进行的收集。同样,它还能用于执行
pre-mortem
清除操作。
PhantomReference
必须与
ReferenceQueue
类一起使用。需要
ReferenceQueue
是因为它能够充当通知机
制。当垃圾收集器确定了某个对象是虚可及对象时,
PhantomReference
对象就被放在它的
ReferenceQueue
上。将
PhantomReference
对象放在
ReferenceQueue
上也就是一个通知,表明
PhantomReference
对象引用
的对象已经结束,可供收集了。这使您能够刚好在对象占用的内存被回收之前采取行动。
2.18 Functions
:提供了与
Function
的实例相关的静态的实用工具方法。
静态方法:
toStringFunction()
:返回
Function<Object,
String>
,该
Function
的
apply(Object
o)
方法调用了参数
o
的
toString()
方法。
apply(Object
o)
的参数
o
如果为
null
,会抛出异常。
identity()
:返回
Function<E,
E>
,该
Function
的
apply(Object
o)
方法直接返回参数
o
。
forMap(Map<K,
V> map)
:返回
Function<K,
V>
,该
Function
的
apply(K
key)
方法在
map
中查找键值为参数
key
的
value
,并返回
value
,如果
key
不在
map
中会抛出异常。
forMap(Map<K,
? extends V> map
,
@Nullable
V defaultValue)
:与上面的方法类似,但是如果
apply()
方法的参数
key
不在
map
中,会返回
defaultValue
。
compose(Function<B,
C> g, Function<A, ? extends B> f)
:返回
Function<A,
C>
,该
Function
定义的方法是方法
g
和方法
f
的组合,对于输入参数,先对其调用方法
f
,然后对结果调用方法
g
。
forPredicate(Predicate<T>
predicate)
:返回
Function<T,
Boolean>
,将一个
Predicate
转换为
Function
,该
Function
返回值与
Predicate
相同。
constant(@Nullable
E value)
:返回
Function<Object,
E>
,该
Function
返回常量
value
。
2.19 Joiner:将文本片段连结起来。
静态方法:
on(String/char
separator):返回一个以
separator为分隔的
Joiner。
成员方法:
appendTo(A appendable,
Iterable<?> parts):返回
A,将
parts中的元素的字符串表示添加到
appendable中。
join(Iterable<?>
parts):返回字符串。
useForNull(String
nullText):返回
Joiner,如果某个被添加的元素为
null,用
nullText代替。
skipNulls():返回
Joiner,如果某个被添加的元素为
null,则跳过该与元素。
withKeyValueSeparator(String
keyValueSeparator):返回一个
MapJoiner,
用
keyValueSeparator作为
MapEntity的
key和
value的分隔。
2.20 Objects:为
Object操作提供辅助功能。
静态方法:
equal(Object a, Object
b):判断
a和
b是否相等。
hashCode(Object...
objects):返回
objects数组的哈希码。
toStringHelper():返回
ToStringHelper的实例,
ToStringHelper是个内部类,有三个
public成员方法:
add(String
name, Object value)、
addValue(Object
value)、
toString(),
toString()返回的字符串类似于:
MyClass{name1=value1,
name2=value2}。
firstNonNull(T first, T
second):如果
first不为
null就返回
first,否则返回
second。
Second也为
null时会抛出异常。
2.21 Platform:
2.22 Preconditions:提供简单的静态方法来验证参数和状态。
静态方法:
checkArgument(boolean
expression):如果
expression为
false则抛出异常。
checkArgument(boolean
expression, String errorMessageTemplate, Object...
errorMessageArgs):如果
expression为
false则抛出异常,异常信息由
errorMessageTemplate和
errorMessageArgs决定。例如:
checkArgument(count
> 0, "must be positive: %s",
count)
,如果
count
为
-5
,则抛出异常,异常信息为:“
must
be positive
:
-5”
。
checkState(boolean
expression):如果
expression为
false则抛出异常。它的重载方法类似与
checkArgument()。
checkNotNull(T
reference):如果
reference为
null则抛出异常,否则返回
reference。
checkElementIndex(int
index, int size):如果
index大于等于
0且小于
size,则返回
index,否则抛出异常。
checkPositionIndex(int
index, int size):与上面的方法类似,区别在于这个方法是检查数组中的位置,因此
index可以等于
size。
checkPositionIndexes(int
start, int end, int size):判断
start-end是否是有效的位置。
2.23 Predicates:提供了与
Predicate相关的静态实用工具方法。
静态方法:
alwaysTrue():返回
Predicate<T>,该谓词对任何输入都返回
true。
alwaysFalse():返回
Predicate<T>,该谓词对任何输入都返回
false。
isNull():返回
Predicate<T>,该谓词判断输入是否为
null。
notNull():返回
Predicate<T>,与
isNull()相反。
not(Predicate<T>
predicate):返回与
predicate效果相反的
Predicate<T>。
and(Iterable<? Extends
Predicate<? super T>>
components):返回
Predicate<T>,效果是
components中所有
Predicate的
&&运算
(与
)。
or(Iterable<? Extends
Predicate<? super T>>
components):返回
Predicate<T>,效果是
components中所有
Predicate的
||运算
(或
)。
equalTo(T
target):返回
Predicate<T>,该谓词判断输入是否与
target相等。
instanceOf(Class<>
clazz):返回
Predicate<T>,该谓词判断输入是否是
clazz的实例。
in(Collection<? Extends
T> target):返回
Predicate<T>,该谓词判断输入是否在
target中。
compose(Predicate<B>
predicate, Function<A, ? extends B>
function):返回
Predicate<T>,该谓词先对输入调用
function的
apply()方法,在对结果用谓词
predicate进行判断。
containsPattern(String
pattern):返回
Predicate<T>,该谓词封装了一个以
pattern为正则表达式的
Pattern,用于判断输入的字符串是否能被
Pattern匹配。
contains(Pattern
pattern):返回
Predicate<T>,与上面的方法类似。
2.24 Splitter:用于将字符串分为子串的工具。
2.25 Strings:提供了与
String相关的静态实用工具方法。
静态方法:
nullToEmpty(String
string):如果
string为
null则返回“”,否则返回
string。
emptyToNull(String
string):如果
string为
null或“”则返回
null,否则返回
string。
isNullOrEmpty(String
string):如果
string为
null或“”则返回
true,否则返回
false。
padStart(String string, int
minLength, char
padChar):如果
string的长度小于
minLength,则在
string的头部补
minLength-string.length()个
padChar。
padEnd(String string, int
minLength, char padChar):与上面的方法类似,只是
padChar会被补在
string的尾部。
repeat(String string, int
count):重复
count次
string。
2.26 Suppliers:提供了一些有用的
Supplier。
静态方法:
compose(Function<? super
F, T> function, Supplier<F> supplier):返回一个
Supplier<T>,
当调用它的
get()方法时,先调用
supplier的
get(),把结果作为参数调用
function的
apply()方法,返回最终的结果。
memoize(Supplier<T>
delegate):返回一个
Supplier<T>,当调用它的
get()方法时,先判断有没有缓存的对象,如果有则直接返回对象,否则用
delegate新建一个对象。
memoizeWithExpiration(Supplier<T>
delegate, long duration, TimeUnit unit):与上面的方法类似,但是要判断缓存中的对象是否过期。
ofInstance(T
instance):返回一个
Supplier<T>,当调用它的
get()方法时,始终返回
instance。
supplierFunction():返回一个
Function<Supplier<T>,
T>,当调用它的
apply(input)方法时,返回
input.get()。
2.27 Throwables:提供了与
Throwable相关的静态实用工具方法。
以上。
分享到:
相关推荐
├─Google Guava 第10讲-Guava之Files讲解第三部分.wmv ├─Google Guava 第11讲-Guava之CharSource和CharSink源码剖析.wmv ├─Google Guava 第12讲-Guava之ByteSource和ByteSink源码剖析.wmv ├─Google Guava...
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...
Google Guava是一个由Google开发并维护的开源Java库,它为Java开发者提供了许多实用的工具类和集合框架,极大地简化了常见的编程任务。这个框架包含了多个模块,如基础(base)、缓存(cache)、I/O(io)以及并发...
**Google Guava官方教程** Google Guava 是一个广泛使用的 Java 库,它提供了一系列现代编程实用工具,旨在简化常见的编程任务。Guava 提供了集合框架的扩展、并发支持、缓存机制、字符串处理工具、I/O 工具以及...
在IT行业中,Google Guava库是一个非常强大的工具集,它为Java开发人员提供了一系列实用的集合、缓存、并发和I/O工具。本篇文章将详细探讨如何利用Guava库实现定时缓存功能,以提高应用的性能和效率。 首先,Guava...
《Getting Started with Google Guava》是Bill Bejeck所著,旨在帮助Java开发者通过Google Guava库编写更优质、更高效的代码。Bill Bejeck是一位拥有10年经验的资深软件工程师,专注于各种项目的开发工作。在写作...
Google Guava是Google开发的一个开源Java库,它包含了一系列高级且实用的集合类、缓存机制、并发工具、字符串处理、I/O工具等,极大地提升了Java开发者的工作效率。Guava的目标是通过提供一系列现代实用工具,帮助...
谷歌的Guava库是Java开发中的一个非常重要的开源项目,它提供了一系列的高效、实用的工具类,大大简化了常见的编程任务。Guava的核心特性包括集合框架、缓存、原生类型支持、并发库、字符串处理、I/O操作等。这个...
标签:google、guava、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
**Google Guava官方教程概述** Google Guava 是一个开源库,为Java开发人员提供了一组核心库,包括集合、缓存、并发工具、I/O工具、字符串处理、实用方法等。这个官方教程主要针对Guava库的使用进行详细介绍,帮助...
例如,Guava的`com.google.common.base.Function`接口和`com.google.common.collect.Lists.transform`方法可以让开发者方便地转换和操作列表,实现函数式编程风格的数据处理。 【总结】 函数式编程虽不能完全替代...
Google Guava库是由Google开发的一个开源项目,旨在提供Java开发中常用的基础功能。它的目标是简化Java编程,为开发者提供更加清晰、高效的代码编写方式。通过使用Guava库,开发者可以不必在每次项目中重复编写相同...
Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法...
**Google Guava简介** Google Guava 是一个广泛使用的开源库,为Java开发人员提供了一系列实用工具类和集合框架。这个库旨在简化常见的编程任务,提高代码的可读性和可维护性。Guava 提供了丰富的功能,包括缓存、...
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...
Google Guava 官方教程 v1.1 2018-07-22 https://github.com/tianbian224/GuavaLearning/blob/master/Google%20Guava%20%E5%AE%98%E6%96%B9%E6%95%99%E7%A8%8B%20-%20v1.1.pdf
《谷歌Guava库详解》 谷歌Guava,全称为Google Guava,是Google推出的一款Java库,它包含一系列基础工具类,旨在简化Java开发工作,提高代码效率和可维护性。Guava的核心特性包括集合框架、缓存、原始类型支持、...
Google Guava 是一个由Google提供的开源Java库,它包含了许多强大的工具类和集合类,这些类可以帮助开发者更高效地编写Java代码。Guava的目标是提供一种更加简洁、优雅的方式来处理常见的编程任务,并且在很多情况下...
《深入解析Google Guava库:Ints模块》 在Java编程中,Google Guava库是一个不可或缺的工具集合,它提供了大量的高效、实用的类和方法,极大地提升了开发效率。本次我们将聚焦于Guava中的`Ints`模块,通过分析`...
**谷歌Guava库详解** 谷歌Guava库是一个广泛使用的Java库,它提供了许多核心库的实用工具类,包括集合、缓存、并发、I/O、字符串处理、泛型 utilities、错误处理、网络、数学运算以及类加载器支持等多个方面。Guava...