Java est un langage compilé et typé statiquement, utilisé pour les applications d’entreprise, les back-ends web (Spring Boot), Android et les outils de données. Le code source est compilé en bytecode, exécuté par la machine virtuelle Java (JVM) sur n’importe quel système.
Le programme minimal
public class Main { // le fichier s'appelle Main.java
public static void main(String[] args) { // point d'entrée du programme
System.out.println("Bonjour, Java !"); // affiche puis passe à la ligne
}
}
java Main.java # compile en mémoire et exécute (fichier unique)
# ou en deux étapes :
javac Main.java && java Main
Chaque instruction se termine par ;, les blocs sont délimités par { } et Java distingue majuscules et minuscules (main n’est pas Main).
Nouveauté de Java 25 (version LTS actuelle) : les fichiers source compacts. Pour un petit programme, la classe peut disparaître et
mainn’a plus besoin d’êtrepublic staticni de recevoirargs:void main() { // fichier Bonjour.java, sans classe String prenom = IO.readln("Votre prénom : "); // IO (java.lang) lit et affiche IO.println("Bonjour " + prenom); }Il se lance avec
java Bonjour.java, et les classes courantes (List,ArrayList,Scanner…) y sont disponibles sansimport. Nous utilisons ici la forme classiquepublic class Main, que vous rencontrerez dans tous les projets existants.
Variables et types
int age = 34; // entier sur 32 bits
long population = 68_000_000L; // entier sur 64 bits (suffixe L), _ pour la lisibilité
double prix = 19.99; // nombre à virgule (point décimal !)
boolean actif = true; // true ou false
char initiale = 'A'; // un caractère, entre apostrophes
String nom = "Ada"; // texte, entre guillemets (String est une classe)
var quantite = 3; // type déduit : int
final double TVA = 0.20; // constante : ne peut plus changer
Le type est vérifié à la compilation : int x = "bonjour"; ne compile pas. C’est une sécurité précieuse sur les gros projets.
Opérations et conversions
int a = 7, b = 2;
System.out.println(a / b); // 3 (division entière !)
System.out.println(a % b); // 1 (reste)
System.out.println((double) a / b); // 3.5 (conversion explicite)
int arrondi = (int) 3.99; // 3 (troncature)
int n = Integer.parseInt("42"); // texte -> entier
String s = "Total : " + 42; // + concatène avec une chaîne
Attention : 5 / 2 vaut 2. Dès qu’un des deux opérandes est un double, le résultat l’est aussi.
Lire une saisie avec Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String prenom = sc.nextLine(); // une ligne complète
int annee = sc.nextInt(); // un entier
System.out.println("Bonjour " + prenom + ", vous aurez " + (2026 - annee) + " ans cette année.");
}
}
next() lit un mot, nextInt() un entier, nextLine() le reste de la ligne. Pour les nombres décimaux, Double.parseDouble(sc.next()) évite les surprises liées à la langue du système (virgule ou point).
Afficher un résultat formaté
double moyenne = 14.0 / 3;
System.out.printf("Moyenne : %.2f%n", moyenne); // Moyenne : 4.67
String ligne = String.format(java.util.Locale.ROOT, "%.2f", moyenne); // point décimal garanti
%d affiche un entier, %.2f un décimal à 2 chiffres, %s une chaîne et %n un saut de ligne. Sans précision de Locale, le séparateur décimal dépend des réglages du système : en français, 4,67.
Vous savez maintenant écrire un programme qui lit, calcule et affiche : la base de tous les exercices suivants.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Saluer l'utilisateur
Écrivez un programme qui lit un prénom sur l’entrée standard (une ligne) et affiche
Bonjour, <prénom> !.import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // À compléter } }Calculatrice de division
Lisez deux entiers
aetb(b non nul) et affichez sur quatre lignes :Somme : <a+b> Quotient entier : <a/b> Reste : <a%b> Division : <a/b avec 2 décimales>Utilisez
String.format(Locale.ROOT, "%.2f", ...)pour la dernière ligne.import java.util.Locale; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); // À compléter } }Convertir des secondes
Lisez un nombre entier de secondes et affichez-le au format
HH:MM:SS(heures sur au moins 2 chiffres). Exemple :3725→01:02:05.import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int total = sc.nextInt(); // heures, minutes, secondes avec / et % } }Division entière
Que vaut
double r = 7 / 2;?- 3.5
- 3.0
- Erreur de compilation
Quiz de fin de leçon
Quelle méthode est le point d’entrée d’un programme Java classique ?
- public static void main(String[] args)
- public void start()
- static int run()
Quel type choisir pour stocker 19.99 ?
- int
- double
- char
Que fait var x = 10; ?
- Crée une variable sans type
- Déclare une variable dont le type int est déduit par le compilateur
- Crée une constante
La suite du cours
- Conditions, opérateurs logiques et switch15 min
- Boucles for, while et do-while20 min
- Écrire des méthodes20 min
- Tableaux, chaînes de caractères et ArrayList20 min