`
arcticfox9902
  • 浏览: 108417 次
  • 性别: 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工具包

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

    google guava

    Google Guava是一个由Google开发并维护的开源Java库,它为Java开发者提供了许多实用的工具类和集合框架,极大地简化了常见的编程任务。这个框架包含了多个模块,如基础(base)、缓存(cache)、I/O(io)以及并发...

    Google Guava 官方教程

    **Google Guava官方教程** Google Guava 是一个广泛使用的 Java 库,它提供了一系列现代编程实用工具,旨在简化常见的编程任务。Guava 提供了集合框架的扩展、并发支持、缓存机制、字符串处理工具、I/O 工具以及...

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

    在IT行业中,Google Guava库是一个非常强大的工具集,它为Java开发人员提供了一系列实用的集合、缓存、并发和I/O工具。本篇文章将详细探讨如何利用Guava库实现定时缓存功能,以提高应用的性能和效率。 首先,Guava...

    Getting Started with Google Guava

    《Getting Started with Google Guava》是Bill Bejeck所著,旨在帮助Java开发者通过Google Guava库编写更优质、更高效的代码。Bill Bejeck是一位拥有10年经验的资深软件工程师,专注于各种项目的开发工作。在写作...

    google guava 中文教程

    Google Guava是Google开发的一个开源Java库,它包含了一系列高级且实用的集合类、缓存机制、并发工具、字符串处理、I/O工具等,极大地提升了Java开发者的工作效率。Guava的目标是通过提供一系列现代实用工具,帮助...

    google开源项目guava.jar包

    谷歌的Guava库是Java开发中的一个非常重要的开源项目,它提供了一系列的高效、实用的工具类,大大简化了常见的编程任务。Guava的核心特性包括集合框架、缓存、原生类型支持、并发库、字符串处理、I/O操作等。这个...

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

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

    guavapdf-ch_GoogleGuava官方教程_

    **Google Guava官方教程概述** Google Guava 是一个开源库,为Java开发人员提供了一组核心库,包括集合、缓存、并发工具、I/O工具、字符串处理、实用方法等。这个官方教程主要针对Guava库的使用进行详细介绍,帮助...

    83丨开源实战三(下):借GoogleGuava学习三大编程范式中的函数式编程1

    例如,Guava的`com.google.common.base.Function`接口和`com.google.common.collect.Lists.transform`方法可以让开发者方便地转换和操作列表,实现函数式编程风格的数据处理。 【总结】 函数式编程虽不能完全替代...

    Google Guava

    Google Guava库是由Google开发的一个开源项目,旨在提供Java开发中常用的基础功能。它的目标是简化Java编程,为开发者提供更加清晰、高效的代码编写方式。通过使用Guava库,开发者可以不必在每次项目中重复编写相同...

    Google Guava 多版本集合

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

    Getting Started with Google Guava code

    **Google Guava简介** Google Guava 是一个广泛使用的开源库,为Java开发人员提供了一系列实用工具类和集合框架。这个库旨在简化常见的编程任务,提高代码的可读性和可维护性。Guava 提供了丰富的功能,包括缓存、...

    google 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.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.jar

    《谷歌Guava库详解》 谷歌Guava,全称为Google Guava,是Google推出的一款Java库,它包含一系列基础工具类,旨在简化Java开发工作,提高代码效率和可维护性。Guava的核心特性包括集合框架、缓存、原始类型支持、...

    Getting Started with Google Guava.pdf

    Google Guava 是一个由Google提供的开源Java库,它包含了许多强大的工具类和集合类,这些类可以帮助开发者更高效地编写Java代码。Guava的目标是提供一种更加简洁、优雅的方式来处理常见的编程任务,并且在很多情况下...

    com.google.guava_1.6.0.jar.zip

    《深入解析Google Guava库:Ints模块》 在Java编程中,Google Guava库是一个不可或缺的工具集合,它提供了大量的高效、实用的类和方法,极大地提升了开发效率。本次我们将聚焦于Guava中的`Ints`模块,通过分析`...

    谷歌guava的jar包和源码,值得收藏

    **谷歌Guava库详解** 谷歌Guava库是一个广泛使用的Java库,它提供了许多核心库的实用工具类,包括集合、缓存、并发、I/O、字符串处理、泛型 utilities、错误处理、网络、数学运算以及类加载器支持等多个方面。Guava...

Global site tag (gtag.js) - Google Analytics