Bibliothèques de classes courantes Java
Java fournit un riche ensemble de bibliothèques de classes. Voici quelques-unes des classes les plus couramment utilisées.
1. Bibliothèques de classes Java de base
La bibliothèque standard Java fournit un riche ensemble de bibliothèques intégrées. Voici quelques bibliothèques de base couramment utilisées :
| Catégorie | Nom de la bibliothèque | Fonctionnalité principale |
|---|---|---|
| Framework des collections | java.util.ArrayList |
Implémentation de tableau dynamique |
java.util.LinkedList |
Implémentation de liste doublement chaînée | |
java.util.HashMap |
Map basée sur une table de hachage | |
java.util.Vector |
Implémente un tableau dynamique | |
java.util.HashSet |
Set basé sur une table de hachage | |
java.util.Scanner |
Obtenir la saisie de l'utilisateur | |
java.util.regex.Pattern |
Expressions régulières | |
java.util.regex.Macher |
Expressions régulières | |
| IO/NIO | java.io.File |
Opérations sur les fichiers et les répertoires |
java.nio.file.Files |
Classe utilitaire d'opérations sur les fichiers | |
java.io.InputStream |
Classe de base des flux d'octets | |
java.io.OutputStream |
Classe de base des flux d'octets | |
| Multithreading | java.lang.Thread |
Classe d'opérations sur les threads |
java.util.concurrent.ExecutorService |
Gestion du pool de threads | |
| Date et heure | java.time.LocalDate |
Gestion des dates |
java.time.LocalDateTime |
Gestion de la date et de l'heure | |
java.time.ZonedDateTime |
Date et heure avec fuseau horaire | |
java.util.Date |
Date actuelle | |
java.text.SimpleDateFormat |
Formatage de la date et de l'heure | |
java.util.Calendar |
Gérer la date et l'heure | |
java.util.GregorianCalendar |
Implémente le calendrier grégorien | |
java.time.Instant |
Représente un point instantané sur la ligne de temps | |
java.time.ChronoUnit |
Unité standard de mesure du temps | |
java.time.Period |
Représente l'intervalle de temps entre deux dates | |
java.time.Duration |
Représente une période basée sur le temps (heures, minutes, secondes, nanosecondes) | |
| Programmation réseau | java.net.URL |
Gestion des URL |
java.net.Socket |
Programmation socket |
2. Bibliothèques tierces courantes
Les bibliothèques suivantes sont des bibliothèques tierces largement utilisées dans l'écosystème Java :
| Catégorie | Nom de la bibliothèque | Fonctionnalité principale | Site officiel |
|---|---|---|---|
| Traitement JSON | Jackson |
Sérialisation/désérialisation JSON | https://github.com/FasterXML/jackson |
Gson |
Bibliothèque JSON de Google | https://github.com/google/gson | |
| Tests unitaires | JUnit |
Framework de tests unitaires Java | https://junit.org/junit5/ |
Mockito |
Framework de tests avec objets simulés | https://site.mockito.org/ | |
| Journalisation | Log4j |
Framework de journalisation | https://logging.apache.org/log4j/ |
SLF4J |
Framework de façade de journalisation | https://www.slf4j.org/ | |
| Développement web | Spring Framework |
Framework d'application d'entreprise | https://spring.io/projects/spring-framework |
Spring Boot |
Framework de développement rapide d'applications | https://spring.io/projects/spring-boot | |
| Base de données | Hibernate |
Framework ORM | https://hibernate.org/ |
MyBatis |
Framework de mapping SQL | https://mybatis.org/mybatis-3/ | |
| Outils de build | Maven |
Gestion du build et des dépendances du projet | https://maven.apache.org/ |
Gradle |
Outil de build flexible | https://gradle.org/ |
3. Comment choisir la bonne bibliothèque
3.1 Critères d'évaluation
- Exigences fonctionnelles: Tout d'abord, clarifiez les fonctionnalités dont le projet a besoin
- Support communautaire: Une communauté active signifie un meilleur support et une meilleure documentation
- Performance: Une attention particulière est nécessaire pour les applications sensibles aux performances
- Courbe d'apprentissage: Tenez compte du coût d'apprentissage de l'équipe
- État de maintenance: Vérifiez si le projet est toujours activement maintenu
3.2 Recommandations de sélection de version
- Privilégiez les versions LTS (support à long terme)
- Évitez d'utiliser des versions qui ne sont plus maintenues
- Les nouveaux projets peuvent envisager des versions stables plus récentes
4. Exemples d'utilisation
4.1 Utilisation de Jackson pour gérer du JSON
Exemple
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// Objet vers JSON
String json = mapper.writeValueAsString(new User("Zhang San", 25));
System.out.println(json);
// JSON vers objet
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 {
// Objet vers JSON
String json = mapper.writeValueAsString(new User("Zhang San", 25));
System.out.println(json);
// JSON vers objet
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.2 Utilisation de JUnit pour les tests unitaires
Exemple
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));
}
}