`
arcticfox9902
  • 浏览: 107191 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

[Google Guava笔记](三)base

阅读更多

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视频教程.txt

    ├─Google Guava 第10讲-Guava之Files讲解第三部分.wmv ├─Google Guava 第11讲-Guava之CharSource和CharSink源码剖析.wmv ├─Google Guava 第12讲-Guava之ByteSource和ByteSink源码剖析.wmv ├─Google Guava...

    google guava

    google guava框架,包括Getting Started with Google Guava、google cache、base、io等介绍

    使用google guava 实现定时缓存功能

    使用google guava 实现定时缓存功能

    Google Guava 官方教程

    Google Guava 官方教程 - 详情:https://blog.csdn.net/Dream_Weave/article/details/86252213

    Getting Started with Google Guava

    Getting Started with Google Guava, guava的技术参考文档

    guavapdf-ch_GoogleGuava官方教程_

    Google Guava 官方教程 - v1.1

    Google的Guava工具包

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...

    Google Guava 多版本集合

    Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法...

    google Guava集合工具类(超实用)

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...

    Getting Started with Google Guava code

    Getting Started with Google Guava code

    Google Guava 官方教程 - v1.1.2018-07-22.pdf

    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

    google guava 中文教程

    此文档为Guava中最流行和最强大的功能,提供更具可读性和解释性的说明

    Google Guava

    Getting Started with Google Guava.pdf -Bill Bejeck

    guava-17.0-API文档-中文版.zip

    标签:google、guava、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    google guava 官方教程pdf下载

    Google Guava 官方教程

    com.google.guava_1.6.0.jar.zip

    com.google.guava_1.6.0.jar.zip com.google.guava_1.6.0.jar.zip

    Google Guava Sources.jar

    19的guava包 希望对大家有帮助

    Google Guava 官方教程 - v1.1.epub

    Google Guava 官方教程,电子书,epub格式,可用在手机端阅读

    guava-20.0-API文档-中文版.zip

    标签:google、guava、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    guava-23.0-API文档-中文版.zip

    标签:google、guava、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

Global site tag (gtag.js) - Google Analytics