The standard Java library is quite powerful, but some things take a long time to write using it or they are simply missing. There are a number of extensions to the standard library, and the most prominent libraries are Apache Commons (a collection of libraries) and Google Guava. They make it easier to use the standard API or extend it, for example, by adding new collections or implementations.
To begin with, we will briefly go over the most relevant parts of these libraries, and later on we will see how they are used in practice.
Apache Commons is a collection of open source libraries for Java, with the goal of creating reusable Java components. There are quite a few of them, including Apache Commons Lang, Apache Commons IO, Apache Commons Collections, and many others.