Gängige Java-Klassenbibliotheken
Java bietet einen umfangreichen Satz an Klassenbibliotheken. Im Folgenden sind einige der am häufigsten verwendeten Klassen aufgeführt.
1. Java-Kernklassenbibliotheken
Die Java-Standardbibliothek bietet eine umfangreiche Sammlung integrierter Bibliotheken. Im Folgenden sind einige häufig verwendete Kernbibliotheken aufgeführt:
| Kategorie | Bibliotheksname | Hauptfunktionalität |
|---|---|---|
| Sammlungsframework | java.util.ArrayList |
Implementierung eines dynamischen Arrays |
java.util.LinkedList |
Implementierung einer doppelt verketteten Liste | |
java.util.HashMap |
Hashtabellenbasierte Map | |
java.util.Vector |
Implementiert ein dynamisches Array | |
java.util.HashSet |
Hashtabellenbasiertes Set | |
java.util.Scanner |
Benutzereingabe abrufen | |
java.util.regex.Pattern |
Reguläre Ausdrücke | |
java.util.regex.Macher |
Reguläre Ausdrücke | |
| IO/NIO | java.io.File |
Datei- und Verzeichnisoperationen |
java.nio.file.Files |
Hilfsklasse für Dateioperationen | |
java.io.InputStream |
Basisklasse für Byte-Streams | |
java.io.OutputStream |
Basisklasse für Byte-Streams | |
| Multithreading | java.lang.Thread |
Thread-Operationsklasse |
java.util.concurrent.ExecutorService |
Thread-Pool-Verwaltung | |
| Datum und Uhrzeit | java.time.LocalDate |
Datumsverarbeitung |
java.time.LocalDateTime |
Handhabung von Datum und Uhrzeit | |
java.time.ZonedDateTime |
Datum und Uhrzeit mit Zeitzone | |
java.util.Date |
Aktuelles Datum | |
java.text.SimpleDateFormat |
Formatierung von Datum und Uhrzeit | |
java.util.Calendar |
Datum und Uhrzeit behandeln | |
java.util.GregorianCalendar |
Implementiert den gregorianischen Kalender | |
java.time.Instant |
Stellt einen momentanen Zeitpunkt auf der Zeitachse dar | |
java.time.ChronoUnit |
Standardeinheit zur Zeitmessung | |
java.time.Period |
Stellt das Zeitintervall zwischen zwei Datumsangaben dar | |
java.time.Duration |
Stellt einen zeitbasierten Zeitraum dar (Stunden, Minuten, Sekunden, Nanosekunden) | |
| Netzwerkprogrammierung | java.net.URL |
URL-Verarbeitung |
java.net.Socket |
Socket-Programmierung |
2. Gängige Bibliotheken von Drittanbietern
Die folgenden sind in der Java-Welt weit verbreitete Bibliotheken von Drittanbietern:
| Kategorie | Bibliotheksname | Hauptfunktionalität | Offizielle Website |
|---|---|---|---|
| JSON-Verarbeitung | Jackson |
JSON-Serialisierung/Deserialisierung | https://github.com/FasterXML/jackson |
Gson |
Googles JSON-Bibliothek | https://github.com/google/gson | |
| Unit-Testing | JUnit |
Java-Unit-Testing-Framework | https://junit.org/junit5/ |
Mockito |
Mock-Testing-Framework | https://site.mockito.org/ | |
| Protokollierung | Log4j |
Logging-Framework | https://logging.apache.org/log4j/ |
SLF4J |
Logging-Fassaden-Framework | https://www.slf4j.org/ | |
| Webentwicklung | Spring Framework |
Enterprise-Anwendungs-Framework | https://spring.io/projects/spring-framework |
Spring Boot |
Framework für schnelle Anwendungsentwicklung | https://spring.io/projects/spring-boot | |
| Datenbank | Hibernate |
ORM-Framework | https://hibernate.org/ |
MyBatis |
SQL-Mapping-Framework | https://mybatis.org/mybatis-3/ | |
| Build-Tools | Maven |
Projekt-Build- und Abhängigkeitsverwaltung | https://maven.apache.org/ |
Gradle |
Flexibles Build-Tool | https://gradle.org/ |
3. Wie man die richtige Bibliothek auswählt
3.1 Bewertungskriterien
- Funktionale Anforderungen: Zuerst klären, welche Funktionalität das Projekt benötigt
- Community-Unterstützung: Eine aktive Community bedeutet bessere Unterstützung und Dokumentation
- Performance: Für performancekritische Anwendungen sind besondere Überlegungen erforderlich
- Lernkurve: Den Lernaufwand des Teams berücksichtigen
- Wartungsstatus: Prüfen, ob das Projekt noch aktiv gepflegt wird
3.2 Empfehlungen zur Versionsauswahl
- LTS-Versionen (Long-Term Support) priorisieren
- Die Verwendung nicht mehr gepflegter Versionen vermeiden
- Neue Projekte können neuere stabile Versionen in Betracht ziehen
4. Verwendungsbeispiele
4.1 JSON mit Jackson verarbeiten
Beispiel
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// Objekt in JSON umwandeln
String json = mapper.writeValueAsString(new User("Zhang San", 25));
System.out.println(json);
// JSON in Objekt umwandeln
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// Objekt in JSON umwandeln
String json = mapper.writeValueAsString(new User("Zhang San", 25));
System.out.println(json);
// JSON in Objekt umwandeln
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.2 JUnit für Unit-Tests verwenden
Beispiel
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}