Les Fondamentaux de la Programmation Java : Types, Structures et Organisation

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 :

  1. Initialisation : Exécutée une seule fois au début.
  2. Condition : Evaluée avant chaque itération. Si false, la boucle s'arrête.
  3. Corps de la boucle : Exécuté si la condition est true.
  4. 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 0b ou 0B (ex: 0b101 pour 5).
  • Octal : Préfixé par 0 (ex: 012 pour 10).
  • Hexadécimal : Préfixé par 0x ou 0X (ex: 0x1A pour 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).

Étiquettes: Java JVM types de données Structures de contrôle Programmation orientée objet

Publié le 14 juillet à 17h01