Google Guava | |
---|---|
Basisdaten
| |
Hauptentwickler | Google Guava Community |
Entwickler | Google Guava Community |
Aktuelle Version | 33.4.0[1] (16. Dezember 2024) |
Betriebssystem | plattformunabhängig |
Programmiersprache | Java |
Lizenz | Apache-Lizenz 2.0 |
github.com/google/guava |
Google Guava ist eine freie Sammlung von Programmbibliotheken für die Programmiersprache Java. Die Sammlung ist als Ergänzung zur Funktionalität der Java-Klassenbibliothek gedacht und erweitert diese beispielsweise bezüglich Collections, I/O-Unterstützung oder Stringmanipulationen.
Google Guava wird hauptsächlich von Google-Entwicklern gewartet und wird von Google in ihren Java-Projekten verwendet.[2]
Google Guava gilt als eine der populärsten Java-Bibliotheken.[3]
Google Guava wurde ursprünglich unter dem Namen Google Collections Library von Kevin Bourrillion und Jared Levy entwickelt.[4]
Die Umsetzung und Architektur der Google Collections Library war teilweise motiviert durch die mit Java 5 eingeführte Generische Programmierung in Java.[4] Obwohl die Einführung von Generics die Produktivität bei der Entwicklung verbesserte, gab es nicht genügend unterstützende Funktionalität in der Java-Klassenbibliothek. Die dafür meist eingesetzte Apache-Commons-Collections-Bibliothek wurde aber aus Gründen der Abwärtskompatibilität bis Version 4.0 Ende 2013 nicht für Generics angepasst.[4] Das motivierte Kevin Bourrillion und Jared Levy dazu, eine Erweiterung für das Java Collections Framework zu schreiben, welche generische Collection-Klasse wie Multisets, Multimaps, Bimaps oder unveränderliche Collections enthält.[4] Dabei wurden sie unterstützt von Joshua Bloch, dem Autor von „Effective Java“ sowie Doug Lea, einem der Lead Designers der Java Concurrency Utilities der Java-Klassenbibliothek.[4]
Google Guava kann grob in folgende Bestandteile aufgeteilt werden:[2]
hashCode()
- und toString()
-Methoden.Map<K, List<V>>
)Einige der Bestandteile (beispielsweise I/O-Unterstützung) wurden durch Java 7 obsolet, andere (funktionale Programmierung) werden durch Funktionalität in Java 8 (Closures) überflüssig.