« Java/Tableaux » : différence entre les versions

Contenu supprimé Contenu ajouté
(:Julien:) (discussion | contributions)
Aucun résumé des modifications
Ligne 8 :
}}
==Tableaux==
Pratiquement tous les langages gèrent les tableaux. Utiliser des tableaux en [[Langage C|C]] ou [[Langage C++|C++]] est dangereux car ces tableaux ne sont que des blocs de mémoire. Si un programme accède à un tableau en dehors de son bloc mémoire, ou s'il utilise la mémoire avant initialisation ( erreurs de programmation fréquentes) les résultats seront imprévisibles.
 
Un des principaux objectifs de Java est la sécurité, aussi, un grand nombre des problèmes dont souffrent [[Langage C|C]] et [[Langage C++|C++]] ne sont pas rejetées sous Java. On est assuré qu'un tableau Java est initialisé et qu'il ne peut être accessible au délàdelà de ses bornes. La vérification des bornes se fait au prix d'un petit excédent de mémoire pour chaque tableau ainsi que la vérification de l'index lors de l'exécution, mais on suppose que le gain de sécurité et en productivité vaut la dépense.
 
Quand on crée un tableau d'objet, on crée en réalité un tableau de références, et chacune de ces différencesréférences est automatiquement initialisée à une valeur particulière avec son propre mot clé : null. Quand Java voit null, il reconnaît que la référence en question ne pointe pas vers un objet. Il faut affecter un objet à chaque référence avant de l'utiliser et si on essaye d'utiliser une référence encore null, le problème sera signalé lors de l'exécution. Ainsi, les erreurs typiques sur les tableaux sont évitées en Java.
 
On peut aussi créer des tableaux de variables de types primitif. À nouveau, le compilateur garantit l'initialisation car il met à zéro la mémoire utilisée par ces tableaux.
 
Les tableaux se distinguent des autres conteneurs sur deux points : l'efficacité et le type. Un tableau constitue la manière la plus efficace que propose Java pour stocker et accéder aléatoirement à une séquence d'objets ( en fait de référence sur ces objets). Un tableau est une simple séquence linéaire, ce qui rend l'accès aux éléments extrêmement rapide; mais cette rapidité se paye : la taille d'un tableau est fixée lors de la création et ne peut plus être changé pendant toute la durée de sa vie. Une solution est de créer un nouveau tableau et de déplacer toutes les références de l'ancien tableau vers le nouveau.
 
==Déclaration de tableaux==
Ligne 31 :
</source>
 
Il est possible de faire des tableaux de tout type de donnéedonnées, y compris les types que l'on crée soit même (mais nous verrons ça dans le chapitre sur les objets). Il est aussi possible de créer des tableaux de tableaux et plus encore !. Par exemple :
 
<source lang="java">
Ligne 42 :
</source>
 
Remarque : Unun tableau ne peut contenir qu'un seul type de donnée. Ainsi, il est impossible de stocker des entiers dans un tableau qui a été déclaré comme contenant des chaînes de caractères.
 
==Utilisation de tableaux==