Java est un langage orienté
objet. Il n'est pas complètement objet comme peut l'être
SmallTalk ou CLOS (Common LISP). Il esxiste des primitives ou types en
Java qui ne sont pas des objets. Ces primitives sont là dans un
souci d'efficacité. Ils ressemblent à des objets mais ce
n'en sont pas car ils sont créés et manipulés en
mémoire de façon différente. Le type entier, par
exemple, sert souvent de compteur. Les concepteurs de Java ont préféré
implémenté ce genre de choses différemment car on
n'utilise aucune des caractéristiques spécifiques à
un objet dans ce cas.
Les primitives |
type |
Valeurs
possibles |
Taille |
char |
0 à
65535 |
16 bits |
byte |
-128 à
127 |
8 bits |
short |
-32768 à
32767 |
16 bits |
int |
-2 147 483
648 à 2 147 483 647 |
32 bits |
long |
-263
à 263-1 |
64 bits |
float |
1.4E-45 à
3.4028234E38 |
32 bits |
double |
4.9E-324 à
1.79769313486231157E308 |
64 bits |
boolean |
true ou false |
1 bit |
Les
classes enveloppes |
type |
classes
enveloppes |
|
char |
Character |
|
byte |
Byte |
|
short |
Short |
|
int |
Integer |
|
long |
Long |
|
float |
Float |
|
double |
Double |
|
boolean |
Boolean |
|
Java prévoit tout de
même des classes enveloppes (ou wrappers) aux primitives. En effet,
tous les types passés en paramètre à une fonction
en Java sont passés par valeur, alors que tous les objets,
eux, sont passés par référence. Java prévoit
donc de pouvoir passer par référence des primitives, à
travers ces classes enveloppes.
Ce point sera abordé
plus en détail dans le package java.lang.
|