Page de garde Classes de base du JDK

Page de garde Classes de base du JDK Novembre 2000 Yannis. BRES@cma. inria. fr

Présentation des classes de base Les classes de base Réification du langage : java. lang Réification des différents types de références : java. lang. ref "Réflectivité" (en fait introspection) : java. lang. reflect Mathématiques sur les grands nombres : java. math Entrées / sorties : java. io Classes utiles : java. util Classes graphiques : java. awt et javax. swing

java. lang Réification des types primitifs Chaque type primitif du langage possède une classe associée dans le package java. lang. Boolean, java. lang. Character, java. lang. Integer, … Ces classes possèdent des constructeurs ou des méthodes effectuant les conversions Les classes dérivant de java. lang. Number : Définissent les bornes des plages de valeur (MIN_VALUE et MAX_VALUE) Permettent la conversion de chaînes de caractères en nombre (parse. XXX(…)) Permettent la conversion inverse (en différentes bases pour les entiers) Les classes de flottants (java. lang. Float et java. lang. Double) définissent : La constante Na. N (Not a Number) Les constantes NEGATIVE_INFINITY et POSITIVE_INFINITY Ainsi que les prédicats correspondants

java. lang Classes et interfaces "systèmes" Le package java. lang contient aussi les classes et interfaces "connues" du compilateur Ces classes sont traitées de manière spécifique par le compilateur java. lang. Object java. lang. String et java. lang. String. Buffer java. lang. Throwable, java. lang. Error et java. lang. Exception java. lang. Runnable et java. lang. Thread …

java. lang Les chaînes de caractères java. lang. String stocke un tableau fixe de caractères java. lang. String. Buffer stocke un ensemble mutable de caractères Ces classes proposent de nombreuses méthodes : De comparaison D’extraction de caractères De modification de la casse … Lorsque l’on effectue une concaténation de chaînes à l’aide de l’opérateur +, le système effectue de nombreuses conversion String. Buffer… Pensez lorsque nécessaire à utiliser String. Buffer dans vos expressions !

java. lang. Math Cette classe donne accès à de nombreuses fonctions (méthodes statiques) mathématiques : Valeur absolue, arrondissement, troncature par défaut ou excès Maximum et minimum Valeurs aléatoires Logarithmes et exponentielles Conversions angulaires Fonctions trigonométriques … Constantes e et (java. lang. Double)

java. math Le package java. math Contient deux classes permettant une arithmétique de précision arbitraire : java. math. Big. Integer Jamais d’overflow Méthodes pour les performances (décalages, négations, opérations logiques…) Congruence Test (grossier) de primalité java. math. Big. Decimal Valeur entière "infinie", jusqu’à 32 chiffres après la décimale

java. util Le package java. util Contient des abstractions et implémentations de : Collections génériques Calendriers Contient quelques interfaces / classes utiles : Itérateur Vecteur de bits Générateur de nombre pseudo-aléatoires Décomposition de chaînes en lexèmes Manipulation de ressources Aide à la localisation d’applications …

java. util Les Collections Aussi appelées Containers : tableaux, vecteurs, hashtables, … Les interfaces appartiennent à deux hiérachies distinctes : Un Set est un ensemble d’objets distincts Une List est une séquence d’objets ordonnés Une Map associe des paires (clef , valeur), les clefs étant uniques

java. util Les Collections Définissent des méthodes pour : Ajouter et supprimer des éléments (add. . . (. . . ), remove. . . (. . . )) Tester la présence d’éléments (contains. . . (. . . )) Effectuer une itération sur les éléments (iterator()) … L’implémentation "complète" des méthodes n’est pas obligatoire : l’appel de méthodes non supportées déclenche java. lang. Unsupported. Operation. Exception Les objets stockés dans une collection ordonnée ou un Set doivent implémenter l’interface java. lang. Comparable Note : les collections par défaut ne sont pas thread-safe !

java. util Les Collections Implémentations des Collections Hash Table Set Hash. Set List Map Resizable Array Balanced Tree. Set Array. List Hash. Map A connaître également : java. util. Vector java. util. Stack java. util. Bit. Set Linked List Linked. List Tree. Map

java. util Les Collections Wrappers Les Wrappers de Collections Méthodes statiques de la classes java. util. Collections Génèrent, à partir de collections, de nouvelles collections : Pour les rendre thread-safe public static List synchronized. List( List lst. List ); public static Set synchronized. Set( Set st. Set ); … Pour les rendre non-mutables (lecture-seule) public static List unmodifiable. List( List lst. List ); public static Set unmodifiable. Set( Set st. Set ); …

java. util Les Collections Wrappers Algorithmes Implémentations polymorphiques dans java. util. Collections : Valeur minimum/maximum Binary Search (sur List) Reverse (sur List) Shuffle (sur List) Sort (sur List) … Implémentations non polymorphiques dans java. util. Arrays (sur des tableaux) : Binary Search Sort …

java. util Les Itérateurs "Ancienne" version : java. util. Enumeration boolean has. More. Elements() Object next. Element() "Nouvelle" version : java. util. Iterator boolean has. Next() Object next() void remove()

java. util java. util. String. Tokenizer Décompose une chaîne de caractères en tokens, selon un ensemble de caratères séparateurs String. Tokenizer( String str ) String. Tokenizer( String str, String delim, boolean return. Tokens ) Se comporte grossièrement comme un Enumerator : boolean has. More. Tokens() String next. Token( String delim ) Séparateurs par défaut : "tnrf"

java. io Les entrées/sorties Le package java. io contient de nombreuses classes permettant : D’accéder aux entrées des systèmes de fichiers accessibles D’effectuer des opérations entrées/sorties sur celles-ci

java. io. File Abstraction d'un chemin de fichier ou de répertoire Trois constructeurs d'objets java. io. File : File( String pathname ) File( String parent, String child ) File( File parent, String child ) Test d'existence de fichier : boolean exists() Création réelle de fichier : boolean create. New. File() Suppression, renommage : boolean delete(), void delete. On. Exit() boolean rename. To( File )

java. io. File Création de répertoire : boolean mkdir(), boolean mkdirs() Prédicats de tests de type d'entrée : is. Directory(), is. File() can. Read(), can. Write(), is. Hidden() Exhibe des méthodes pour énumérer les fichiers : static File[] list. Roots() String[] list(), String[] list( Filename. Filter ) File[] list. Files(), File[] list. Files( Filename. Filter ), … …

java. io. File !!! Attention à la portabilité !!! N'utilisez ni /, ni dans les noms de chemins, utilisez : static String separator static char separator. Char N'utilisez ni ; , ni : pour séparer des chemins, utilisez : static String path. Separator static char path. Separator. Char

java. io Les streams Tous les accès aux données (fichier, socket, …) se font via des streams (flux, flot)

java. io Les streams Les flots de caractères (lecteurs) :

java. io Les streams Les flots de caractères (écrivains) :

java. io Les streams Les flots "d'octets" (lecteurs) :

java. io Les streams Les flots "d'octets" (écrivains) :

java. io Le Stream. Tokenizer java. io. Stream. Tokenizer La version Stream de java. util. String. Tokenizer…
- Slides: 25