Plages de valeurs des types de données primitifs
En Java, la compréhension de l'espace mémoire alloué à chaque type primitif est cruciale pour l'optimisation des ressources :
- byte : 1 octet, compris entre [-128 et 127].
- short : 2 octets, compris entre [-32 768 et 32 767].
- int : 4 octets, compris entre [-2 147 483 648 et 2 147 483 647].
- char : 2 octets, compris entre [0 et 65 535].
Bien que short et char occupent tous deux 16 bits, leur plage diffère car char est non signé afin de représenter les caractères Unicode, tandis que short réserve un bit pour le signe (positif ou négatif).
Interopérabilité entre Char et Int
Le typpe char en Java est essentiellement un entier non signé de 16 bits représentant un code Unicode. Par conséquent, une conversion implicite vers un int est possible :
int codeAscii = 'Z';
// La variable codeAscii stockera la valeur 90, correspondant au caractère 'Z'.
Opérateurs d'incrémentation et de décrémentation
Les opérateurs ++ et -- modifient la valeur d'une variable de 1. Leur comportement varie selon leur position (préfixe ou suffixe) :
- Suffixe (x++) : La valeur actuelle est d'abord utilisée dans l'expression, puis la variable est incrémentée.
- Préfixe (++x) : La variable est incrémentée d'abord, puis la nouvelle valeur est utilisée dans l'expression.
int compteur = 10;
int resultat = compteur++; // resultat vaut 10, compteur vaut 11
int index = 5;
int position = ++index; // position vaut 6, index vaut 6
Mécanique de la boucle For
La boucle for est structurée pour contrôler précisément le flux d'itération :
for (initialisation; condition; mise_a_jour) {
// Bloc d'instructions
}
Le cycle d'exécution suit cet ordre :
- Initialisation : Exécutée une seule fois au début.
- Condition : Evaluée avant chaque itération. Si
false, la boucle s'arrête. - Corps de la boucle : Exécuté si la condition est
true. - Mise à jour : Exécutée après le corps de la boucle, avant de réévaluer la condition.
Gestion des Packages et Accessibilité
Les packages servent d'espaces de noms pour structurer le code et éviter les collisions de noms. Ils jouent également un rôle clé dans l'encapsulation via les modificateurs d'accès :
- public : Accessible depuis n'importe quelle classe du projet.
- protected : Accessible dans le même package et par les classes héritières situées dans d'autres packages.
- default (sans modificateur) : Accessible uniquement à l'intérieur du même package.
- private : Accessible uniquement au sein de la classe où il est défini.
Importations Implicites et java.lang
Le package java.lang est importé par défaut par le compilateur. Il contient des classes essentielles telles que :
String,Math,System.- Les classes wrappers (
Integer,Double, etc.) qui permettent l'autoboxing (conversion automatique entre types primitifs et objets). - La classe de base
Enum.
Systèmes de numérotation et littéraux
Java supporte plusieurs bases numériques pour définir des variables entières :
- Binaire : Préfixé par
0bou0B(ex:0b101pour 5). - Octal : Préfixé par
0(ex:012pour 10). - Hexadécimal : Préfixé par
0xou0X(ex:0x1Apour 26).
Utilisation des underscores dans les littéraux numériques
Depuis Java 7, il est possible d'insérer des underscores _ pour améliorer la lisibilité des grands nombres. Ils n'affectent pas la valeur de la variable et sont ignorés par le compilateur.
long numeroSecu = 1_85_12_75_001_002L;
double constante = 3.141_592_653;
int hexColor = 0xFF_AB_12;
Règle : L'underscore ne peut pas être placé au début, à la fin, ou directement à côté des préfixes (0x, 0b) ou du suffixe (L, F).