
FAQ JavaConsultez toutes les FAQ
Nombre d'auteurs : 53, nombre de questions : 231, dernière mise à jour : 7 juin 2009
Cette faq a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette faq ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
FAQ lues fois.
Table des matières
1. Informations générales
(5)
2. Concepts fondamentaux
(53)
- Qu'est-ce que Java ?
- Que sont le JRE, le JDK et le SDK ?
- Comment installer le JDK ?
- Où puis-je trouver le jre/jdk pour Mac ?
- Quelle sont les différences entre application, applet et servlet ?
- Où peut-on trouver les sources des classes de l'API de Sun ?
- Qu'est-ce que Java Web Start ?
- Comment connaître la version de la JVM installée ?
- Quelles sont les convention de nommage en Java ?
- Qu'est ce qu'un décompilateur ?
- Qu'est qu'un obfuscateur ?
- Qu'est-ce que le PATH ?
- Qu'est-ce que le CLASSPATH ?
- Comment modifier le CLASSPATH ?
- Qu'est-ce que le BOOTCLASSPATH ?
- Quelle est la taille maximum du code d'une méthode ?
- Quels sont les différents modes d'invocation de méthode ?
- [Java 5.0] Comment spécifier qu'un paramètre doit implémenter plusieurs interfaces ?
- Qu'est-ce que la compatibilité ascendante ? Est-elle toujours respectée ?
2.1. Les mots-clés
(17)
- Quels sont les différents mot-clés du langage Java ?
- Que signifient les mots-clés public, private et protected ?
- Que signifie le mot-clé static ?
- Que signifie le mot-clé final ?
- Que signifient les mots-clés this et super ?
- Que signifie le mot-clé strictfp ?
- Que signifie le mot-clé transient ?
- Que signifie le mot-clé volatile ?
- Et le goto en Java ?
- Comment utiliser les mots-clés break et continue ?
- Pourquoi mon switch ne veut-il pas compiler ?
- [Java 5.0] Comment fonctionne l'ellipse (nombre d'arguments variable) ?
- [Java 5.0] Comment fonctionne la boucle for étendu ?
- [Java 5.0] Comment parcourir un tableau à 2 dimensions avec un for étendu ?
- [Java 5.0] Qu'est-ce que l'import static ?
- Quelle est la différence entre 'import' et 'import static' ?
- Qu'est-ce que l'opérateur ternaire?
2.2. Les notions
(17)
- Qu'est-ce que l'héritage ?
- Qu'est ce qu'une classe abstraite ?
- Qu'est-ce qu'une classe interne ?
- Quels sont les différents types de classes internes (nested classes) ?
- Qu'est ce qu'une interface ?
- Qu'est ce qu'une méthode 'deprecated' ?
- Qu'est-ce que la sérialisation ?
- Quelles sont les règles à respecter pour redéfinir/implémenter une méthode ?
- C'est quoi la surcharge (ou encore overload)des méthodes ?
- Comment cloner un objet ?
- [Java 5.0] Qu'est-ce que les Generics (types paramétrés) ?
- [Java 5.0] Qu'est-ce que l'auto-boxing / auto-unboxing ?
- [Java 5.0] Qu'est-ce qu'une annotation ?
- [Java 5.0] Qu'est-ce qu'une enum (type énuméré) ?
- Qu'est-ce qu'une constante ?
- Qu'est-ce qu'un membre 'synthetic' ?
- [Java 5.0] Qu'est-ce qu'une méthode 'bridge' ?
3. Généralités
(79)
3.1. Gestion des nombres et chaînes de caractères
(25)
- Comment comparer des chaînes de caractères ?
- Comment comparer des chaînes de caractères selon la Locale ?
- Comment convertir une chaîne en nombre ?
- Comment convertir un nombre en chaîne ?
- Comment convertir un nombre en chaîne formatée ?
- Comment convertir un nombre entier décimal en une chaîne représentant ce nombre dans une autre base ?
- Comment convertir une chaîne représentant un nombre entier en base quelconque en un entier décimal ?
- Comment convertir une date en chaîne ?
- Comment convertir une chaîne en Date ?
- Comment convertir des 'char' en ASCII ?
- Comment gérer l'encodage d'un tableau de bytes dans des String ?
- Comment découper facilement une chaîne ?
- Comment utiliser des caractères bizarres tels que : ? ?
- Quelle est la longueur maximale d'une chaîne de caractères ?
- Comment concatener des chaînes de caractères ?
- Comment faire des calculs de précision corrects avec des floats ou des doubles ?
- Comment arrondir un nombre ?
- Quelles API utiliser pour faire des maths ?
- Comment obtenir des nombres aléatoires ?
- Comment empêcher les expressions régulières d'interpréter une sous-chaînes ?
- Comment remplacer une sous-chaîne en la reportant dans la chaîne de remplacement ?
- Pourquoi dois-je doubler/quadrupler le caractère anti-slash ('\') ?
- Comment déterminer précisément le nombre de caractères d'une chaîne ?
- Comment effectuer un tirage aléatoire ?
- Comment supprimer les accents d'une chaîne ?
3.2. Gestion des dates
(8)
- Comment connaître l'heure courante ?
- Comment mettre à jour l'heure courante du système ?
- Comment faire des opérations sur des dates ?
- Comment convertir une date en chaîne ?
- Comment convertir une chaîne en Date ?
- Comment connaître la date de création d'un fichier ?
- Comment forcer le parsing d'une Date à échouer en cas de Date incorrecte ?
- Comment vérifier la validité d'une date ?
3.3. Gestion des threads
(6)
3.4. Structures de données -Tableaux et collections
(18)
- Comment bien utiliser les collections ?
- Quel différence entre HashSet, TreeSet et LinkedHashSet ?
- Quelles différences entre ArrayList, LinkedList et Vector ?
- Quels sont les différents types de Map ?
- Comment créer une pile (LIFO) ?
- Comment augmenter la taille d'un tableau ?
- Comment fonctionne un ArrayList ?
- Comment trier une List (ArrayList, Vector, ...) ou un tableau?
- Comment déterminer si un objet est un tableau ?
- Comment déterminer le nombre de dimensions d'un tableau ?
- Comment instancier un tableau?
- Comment agrandir un tableau ?
- Comment parcourir tous les éléments d'un tableau ?
- Comment caster un type non-paramétré vers son équivalent paramétré ?
- Pourquoi ne peut-on pas instancier de tableau paramétré ?
- Comment trier un Map selon les valeurs et non pas les clés ?
- Comment parcourir une Map ?
- Pourquoi ne faut-il pas employer la classe Vector ?
3.5. La reflexivité
(16)
- A quoi sert l'introspection ou la réflexivité, et comment l'utiliser ?
- Comment connaître l'ensemble des classes dont hérite une classe ?
- Comment connaître l'ensemble des interfaces qu'implémente une classe ?
- Comment connaître le nom du paquetage dans lequel se situe une classe ?
- Comment récupérer la liste des méthodes d'une classe ?
- Comment connaître la signature d'une méthode ?
- Comment récupérer la liste des champs d'une classe ?
- Comment savoir si une méthode ou un champ est de classe ?
- Comment déterminer l'ensemble des informations concernant un champ ?
- Comment accéder dynamiquement à la valeur d'un champ donné d'un objet ?
- Comment lancer dynamiquement une méthode donnée d'un objet ?
- Comment passer les types primitifs en paramètre lors de l'utilisation de la réflexivité ?
- Comment lancer dynamiquement une méthode de classe donnée ?
- Y a-t-il un moyen de consulter et/ou de modifier la valeur d'un champ privé ?
- Est-il possible d'avoir la liste des champs/méthodes privés et protégés d'une classe ?
- [Java 5.0] Comment connaitre les annotations d'un élément ?
3.6. De C++ à Java
(4)
3.7. JNI
(2)
4. Fichiers, flux et réseaux
(32)
4.1. Flux et fichiers
(21)
- Comment connaître les racines des arborescences de fichiers ?
- Comment parcourir une arborescence de fichiers ?
- Comment copier ou déplacer un fichier ?
- Comment supprimer un fichier ou un répertoire ?
- Comment renommer/déplacer un fichier ?
- Comment créer un fichier temporaire ?
- Comment écrire à la fin d'un fichier ?
- Comment connaître le type MIME d'un fichier ?
- Comment connaître la date de création d'un fichier ?
- Comment connaître la taille d'un fichier ?
- Comment connaître l'espace libre d'un disque ?
- Comment indiquer la position d'un fichier en conservant la portabilité ?
- Comment lire des informations sur l'entrée standard ?
- Comment rediriger les flux standards dans des fichiers ?
- Comment charger une ressource présente dans le CLASSPATH (répertoire ou jar) ?
- Comment changer l'encodage d'un fichier texte ?
- Comment connaître les Charset disponibles et leurs alias ?
- Peut-on modifier l'encodage de la sortie standard ?
- Comment libérer proprement les ressources (ou comment utiliser proprement les bloc try/finally) ?
- Comment lire les éléments d'un fichier en utilisant un délimiteur aproprié ?
- Comment lire un fichier ligne par ligne ?
4.2. Sérialisation
(4)
4.3. Réseaux
(7)
- Comment établir une connexion FTP ?
- Comment puis-je faire un 'ping' en Java ?
- Comment connaître l'adresse IP de sa machine ?
- Comment spécifier un proxy pour se connecter à un serveur ?
- Comment envoyer une requête de type POST en utilisant une URL ?
- Comment établir une communication entre une applet et une servlet ?
- Pourquoi mes sockets sont plus longues à se connecter depuis java 5.0 ?
5. Le développement
(23)
5.1. Installation et compilation
(2)
5.2. Exécution
(6)
5.3. Les erreurs et exceptions
(7)
5.4. Les warnings
(8)
- [Java 5.0] Comment activer/désactiver les warnings avec javac ?
- [Java 5.0] finally : 'finally clause cannot complete normally'
- [Java 5.0] serial : 'serializable class Main has no definition of serialVersionUID'
- [Java 5.0] path : 'bad path element'
- fallthrough : 'possible fall-through into case'
- [Java 5.0] unchecked : 'uses unchecked or unsafe operations'
- deprecation : 'uses or overrides a deprecated API'
- [Java 5.0] Comment supprimer un warning en particulier ?
6. Système
(14)
- Comment connaître le système d'exploitation depuis le programme ?
- Comment accéder aux valeurs des variables d'environnement ?
- Comment exécuter une application externe ?
- Comment lancer une application sans le terminal (Windows uniquement) ?
- Comment lire/écrire du texte dans le presse-papier ?
- Comment lire/écrire une Image dans le presse-papier ?
- Comment connaitre la mémoire utilisable de la carte graphique ?
- Comment ouvrir une page web avec le navigateur par défaut en restant portable ?
- Comment ouvrir un fichier avec le programme par défaut en restant portable ?
- Comment ouvrir la boite de dialogue d'envoi d'email du logiciel de messagerie par défaut en restant portable ?
- Comment trouver le répertoire contenant le jar où est ma classe ?
- Comment créer un service Windows en Java (Solution open-source) ?
- Comment connaître le nombre de processeurs disponibles ?
- Où télécharger les anciennes versions de Java ?
7. Astuces et divers
(25)
- Comment utiliser une police True Type n'importe où en Java ?
- Comment mettre mon application dans le 'systray' ?
- Comment gérer facilement les préférences de l'utilisateur ?
- Où trouver de l'aide sur JavaMail ?
- Comment lire et générer des documents aux formats spécifiques (pdf, rtf, html, doc, etc.) ?
- Comment créer son propre Listener ?
- Comment faire en sorte que le paramètre int de ma méthode soit modifié en retour ?
- Comment gérer les fermetures accidentelles ( Contrôle-C, kill -2, kill -15) ?
- Comment forcer le passage du 'Garbage collector' ?
- Comment faire une énumération en Java ?
- Comment annuler la construction d'un objet lors de la construction ?
- Comment recharger dynamiquement une classe ?
- Qu'est-ce qu'un singleton ?
- Qu'est ce que le double-check locking ?
- Comment avoir un Singleton sûr en environnement multithread ?
- Comment afficher la réference d'un objet redéfinissant la méthode toString()?
- Comment déterminer le temps écoulé entre deux points d'un programme ?
- Comment connaitre la mémoire utilisée par notre application pendant son exécution ?
- Pourquoi et comment redéfinir la méthode equals() ?
- Pourquoi et comment redéfinir la méthode hashCode() ?
- Pourquoi est-ce que mon application se bloque à l'éxécution d'un programme externe ?
- Comment intercepter tous les elements Throwable ?
- Comment vérifier la validité d'une URL ?
- Comment placer des commentaires javadoc ou des annotations au niveau du package ?
- Quelle est la liste des paramètres (options/arguments) de la JVM ?















