2.1Variables et types de données
2.1.1 – Types primitifs
Les types primitifs sont les types de données de base en Java. Ils représentent des valeurs simples comme des nombres, des caractères ou des booléens. Java possède huit types primitifs, chacun ayant une taille fixe et une plage de valeurs spécifique.
📊 Les huit types primitifs de Java
| Type | Taille | Plage de valeurs | Exemple |
|---|---|---|---|
| byte | 8 bits (1 octet) | -128 à 127 | byte age = 25; |
| short | 16 bits (2 octets) | -32 768 à 32 767 | short temperature = -10; |
| int | 32 bits (4 octets) | -2³¹ à 2³¹-1 | int nombre = 1000; |
| long | 64 bits (8 octets) | -2⁶³ à 2⁶³-1 | long population = 8000000000L; |
| float | 32 bits (4 octets) | ≈ ±3.4×10³⁸ | float prix = 19.99f; |
| double | 64 bits (8 octets) | ≈ ±1.7×10³⁰⁸ | double pi = 3.14159; |
| char | 16 bits (2 octets) | Un seul caractère Unicode | char lettre = 'A'; |
| boolean | 1 bit (valeur logique) | true ou false | boolean actif = true; |
🔢 Types entiers (byte, short, int, long)
Les types entiers permettent de stocker des nombres entiers (positifs, négatifs ou zéro) :
byte
Le type byte est le plus petit type entier. Il est utile pour économiser de la mémoire quand vous savez que les valeurs seront petites :
Exemples d'utilisation de byte :
byte age = 25;
byte temperature = -10;
byte score = 100; // ✅ Correct (100 est dans la plage -128 à 127)
byte tropGrand = 200; // ❌ ERREUR : 200 dépasse 127
short
Le type short peut stocker des entiers plus grands que byte :
Exemples d'utilisation de short :
short annee = 2024;
short distance = 15000;
short temperature = -50;
int (le plus utilisé)
Le type int est le type entier le plus couramment utilisé en Java. C'est le type par défaut pour les nombres entiers :
Exemples d'utilisation de int :
int nombre = 42;
int age = 30;
int population = 1000000;
int temperature = -25;
int pour les nombres entiers. C'est le type le plus équilibré entre taille et plage de valeurs.
long
Le type long est utilisé pour les très grands nombres entiers. Notez le suffixe L ou l :
Exemples d'utilisation de long :
long populationMondiale = 8000000000L;
long distanceSoleil = 150000000000L;
long timestamp = 1234567890123L;
L à la fin pour indiquer que c'est un long !
🔢 Types décimaux (float, double)
Les types décimaux permettent de stocker des nombres à virgule flottante (nombres réels) :
float
Le type float stocke des nombres décimaux avec une précision simple. Notez le suffixe f ou F :
Exemples d'utilisation de float :
float prix = 19.99f;
float temperature = -5.5f;
float pourcentage = 85.5f;
f à la fin pour indiquer que c'est un float !
double (le plus utilisé pour les décimaux)
Le type double offre une précision double et est le type par défaut pour les nombres décimaux en Java :
Exemples d'utilisation de double :
double pi = 3.14159265359;
double prix = 29.99;
double moyenne = 15.75;
double, c'est le type par défaut.
• double : Utilisez-le par défaut pour les nombres décimaux (meilleure précision)
• float : Utilisez-le seulement si vous avez besoin d'économiser de la mémoire et que la précision simple suffit
🔤 Type caractère (char)
Le type char stocke un seul caractère Unicode. Les caractères sont délimités par des apostrophes simples ' :
Exemples d'utilisation de char :
char lettre = 'A';
char chiffre = '5';
char symbole = '@';
char espace = ' ';
// Caractères spéciaux
char nouvelleLigne = '\n'; // Retour à la ligne
char tabulation = '\t'; // Tabulation
char guillemet = '\''; // Apostrophe
char guillemetDouble = '\"'; // Guillemet double
- Les caractères utilisent des apostrophes simples
'A' - Les chaînes de caractères utilisent des guillemets doubles
"Hello" - Ne confondez pas
char(un caractère) etString(une chaîne de caractères)
✅ Type booléen (boolean)
Le type boolean ne peut avoir que deux valeurs : true (vrai) ou false (faux). Il est utilisé pour les conditions et les expressions logiques :
Exemples d'utilisation de boolean :
boolean estActif = true;
boolean estVide = false;
boolean estMajeur = true;
boolean aTermine = false;
boolean ne peut être que true ou false. Contrairement à certains langages, vous ne pouvez pas utiliser 1 ou 0 pour représenter vrai/faux.
📝 Déclaration et initialisation de variables
Pour utiliser une variable, vous devez d'abord la déclarer (et éventuellement l'initialiser) :
Syntaxe de déclaration
type nomVariable = valeur;
Exemples
Déclaration et initialisation :
// Déclaration et initialisation en une ligne
int age = 25;
double prix = 19.99;
char lettre = 'A';
boolean actif = true;
// Déclaration puis initialisation séparée
int nombre;
nombre = 10;
// Déclaration de plusieurs variables du même type
int x, y, z;
x = 1;
y = 2;
z = 3;
⚠️ Règles importantes
- Nom de variable : Doit commencer par une lettre, un underscore
_ou un dollar$ - Caractères autorisés : Lettres, chiffres, underscore, dollar
- Sensibilité à la casse :
ageetAgesont deux variables différentes - Mots-clés réservés : Ne peuvent pas être utilisés comme noms de variables (class, public, static, etc.)
- Convention de nommage : Utilisez camelCase (première lettre minuscule, puis majuscules pour les mots suivants)
Exemples de noms de variables :
int age; // ✅ Correct
int ageUtilisateur; // ✅ Correct (camelCase)
int _temp; // ✅ Correct
int $count; // ✅ Correct (mais peu utilisé)
int 2nombre; // ❌ Incorrect (ne peut pas commencer par un chiffre)
int mon-nom; // ❌ Incorrect (tiret non autorisé)
int class; // ❌ Incorrect (mot-clé réservé)
int Age; // ✅ Correct (mais différent de 'age')
💡 Points clés à retenir
- 8 types primitifs : byte, short, int, long, float, double, char, boolean
- int : Type entier le plus utilisé
- double : Type décimal le plus utilisé
- Suffixes :
Lpour long,fpour float - char : Un seul caractère avec apostrophes simples
'A' - boolean : Seulement
trueoufalse - Déclaration :
type nomVariable = valeur; - Nommage : camelCase, commence par une lettre
int (entiers), double (décimaux), char (caractères) et boolean (booléens). Ce sont les types primitifs les plus utilisés. Les autres types (byte, short, float, long) sont utilisés dans des cas spécifiques.
2.1.2 – Types non primitifs
Les types non primitifs (également appelés types référence) sont des objets en Java. Contrairement aux types primitifs, ils peuvent être null et ont des méthodes associées. Les types non primitifs les plus courants sont les chaînes de caractères (String), les tableaux, et les objets de classes personnalisées.
🔤 String : Les chaînes de caractères
String est la classe la plus utilisée pour manipuler du texte en Java. Bien qu'elle ne soit pas un type primitif, elle est si courante qu'elle mérite une attention particulière.
Déclaration et initialisation d'une String
Exemples d'utilisation de String :
String nom = "Jean";
String message = "Bonjour le monde !";
String vide = ""; // Chaîne vide
String nullString = null; // Peut être null (contrairement aux primitifs)
Différences entre char et String
| Caractéristique | char | String |
|---|---|---|
| Type | Primitif | Non primitif (classe) |
| Délimiteurs | Apostrophes simples 'A' |
Guillemets doubles "Hello" |
| Contenu | Un seul caractère | Zéro, un ou plusieurs caractères |
| Peut être null | Non | Oui |
| Méthodes | Aucune | Nombreuses (length(), toUpperCase(), etc.) |
Opérations courantes sur les String
Exemples d'opérations String :
String texte = "Hello";
// Longueur de la chaîne
int longueur = texte.length(); // Retourne 5
// Concaténation (assemblage de chaînes)
String message = "Hello" + " " + "World"; // "Hello World"
// Conversion en majuscules/minuscules
String maj = texte.toUpperCase(); // "HELLO"
String min = texte.toLowerCase(); // "hello"
// Comparaison
boolean egal = texte.equals("Hello"); // true
📦 Tableaux (Arrays)
Les tableaux permettent de stocker plusieurs valeurs du même type dans une structure ordonnée :
Déclaration et initialisation de tableaux
Exemples de tableaux :
// Tableau d'entiers
int[] nombres = {10, 20, 30, 40, 50};
// Tableau de chaînes
String[] noms = {"Alice", "Bob", "Charlie"};
// Tableau vide (taille fixe)
int[] tableau = new int[5]; // Tableau de 5 entiers (valeurs par défaut : 0)
// Tableau de caractères
char[] lettres = {'A', 'B', 'C'};
// Tableau de booléens
boolean[] etats = {true, false, true};
Accès aux éléments d'un tableau
Accès et modification :
int[] nombres = {10, 20, 30};
// Accéder à un élément (index commence à 0)
int premier = nombres[0]; // 10
int deuxieme = nombres[1]; // 20
int troisieme = nombres[2]; // 30
// Modifier un élément
nombres[0] = 100; // Le tableau devient {100, 20, 30}
// Longueur du tableau
int taille = nombres.length; // 3
- Les indices commencent à 0 (pas à 1)
- Le dernier indice est
tableau.length - 1 - Accéder à un indice invalide provoque une erreur
ArrayIndexOutOfBoundsException
🏗️ Objets de classes personnalisées
Vous pouvez créer vos propres types en définissant des classes. Ces objets sont des types non primitifs :
Exemple de classe personnalisée :
// Définition de la classe
public class Personne {
String nom;
int age;
}
// Utilisation
Personne personne = new Personne();
personne.nom = "Jean";
personne.age = 25;
🔄 Différences principales : Primitifs vs Non primitifs
| Caractéristique | Types primitifs | Types non primitifs | |
|---|---|---|---|
| Exemples | int, double, char, boolean | String, tableaux, objets | |
| Valeur par défaut | Oui (0, 0.0, false, etc.) | null | |
| Peut être null | Non | Oui | |
| Stockage | Valeur directement | Référence à l'objet | |
| Méthodes | Aucune | Oui (nombreuses) | |
| Taille | Fixe (définie) | Variable |
💡 Points clés à retenir
- Types non primitifs : String, tableaux, objets de classes
- String : Chaînes de caractères avec guillemets doubles
"Hello" - Tableaux : Collections de valeurs du même type, indices commencent à 0
- null : Les types non primitifs peuvent être
null - Méthodes : Les types non primitifs ont des méthodes (length(), toUpperCase(), etc.)
- Référence : Les types non primitifs stockent une référence à l'objet, pas la valeur directement
String (chaînes de caractères) et les tableaux. Ce sont les types non primitifs les plus utilisés. Les classes personnalisées seront abordées en détail dans les chapitres sur la programmation orientée objet.