Guava is an extended project of Google's java1.6-based class library collection, including collections, caching, primitives support, concurrency libraries, common Annotati ONS, string processing, I/O, and so on. These high-quality APIs can make your Java code more elegant and concise, making your work easier and more enjoyable. Let's start the elegant Java programming learning journey!
Project related information:
official homepage: http://code.google.com/p/guava-libraries
Official Download: http://code.google.com/p/guava-libraries/downloads/list
Official documents: Http://docs.guava-libraries.googlecode.com/git/javadoc
http://www.ostools.net/apidocs/apidoc?api=guava
simple description of the source package:
com.google.common.annotations: Common annotation type.
Com.google.common.base: Basic tools class libraries and interfaces.
Com.google.common.cache: Caching toolkit, a very easy-to-use and powerful in-JVM cache.
Com.google.common.collect: A collection interface extension and implementation with generics, and a tool class, where you'll find a lot of fun collections.
Com.google.common.eventbus: The event bus that publishes the subscription style.
Com.google.common.hash: Hash toolkit.
COM.GOOGLE.COMMON.IO:I/O Toolkit.
Com.google.common.math: The original arithmetic type and the arithmetic toolkit for the extra-large number.
Com.google.common.net: Network toolkit.
Com.google.common.primitives: Eight static toolkits of primitive types and unsigned types.
Com.google.common.reflect: Reflection Toolkit.
Com.google.common.util.concurrent: Multithreading toolkit.
Class Library User manual:
I. Basic TOOLS class: make using the Java language more enjoyable.
1. The use and avoidance of null:null language ambiguity can create puzzling errors, which he always makes people uncomfortable. Many guava tool classes reject or fail directly when they encounter NULL, rather than accepting them silently.
2. Prerequisites: It is easier to test your approach with preconditions.
3. Common Object methods: Simplified implementation of object common methods, such as Hashcode () and toString ().
4. Sort: Guava powerful "fluent Comparator" comparator, providing multi-keyword sorting.
5. Throwable class: Simplifies exception checking and error propagation.
two. Collection class: The Collection Class library is an extension of the JDK collection class guava, which is the most complete and well-known part of the Guava project.
1. Immutable Collections (Immutable collection): Defensive programming, non-modifiable collections, and increased efficiency.
2. New collection types (collection type): JDK collections does not have some collection types, mainly: Multisets,multimaps,tables, bidirectional maps, etc.
3. Powerful collection utilities (powerful Collection tool Class): Common operations Tool classes not included in Java.util.Collections
4. Extension Utilities (Extension tool Class): Add an adorner to the Collection object? Implement iterators? We can use these methods more easily.
three. cache : Local cache, easy to operate cache objects, and support a variety of cache failure behavior patterns.
Four. Functional Idioms (functional): Concise, guava implements the functional programming of Java, which can significantly simplify the code.
five. Concurrency (concurrency): powerful, simple abstraction that makes it easier to implement simple and correct concurrency code.
1. Listenablefuture (Can monitor the future): Futures, callback for asynchronous completion.
2. Service: Controls the start and shutdown of events, and manages complex state logic for you.
six. Strings: A very useful string tool class: Provides splitting,joining, padding and other operations.
Seven. Primitives: extends operations that are not provided in the JDK to native types (such as int, char, and so on), including some types of unsigned variables.
eight. Ranges: Guava A powerful API that provides range processing for comparable types, including continuous and discrete scenarios.
Nine. I/O: simplifies I/O operations, especially for I/O streams and files, for Java 5 and 6.
10. Hashing: provides a more complex hashing method than Object.hashcode (), providing Bloom filters.
11. Eventbus: component communication based on the publish-subscribe pattern, but does not need to be explicitly registered in the delegate object.
12. Math: optimized Math tool class, fully tested.
13. Reflection: Guava's Java reflection mechanism tool class.
(Java) Guava Learning Note: Introduction to Google Guava Class library