Premiers programmes
Cours · programmation Java (école d'ingénieur), chapitre 1 · école d'ingénieur, informatique · le début du chapitre, la suite sur Adloun
Un ordinateur ne sait faire que des choses très simples : additionner deux nombres, comparer deux valeurs, copier un octet d'un endroit de la mémoire à un autre. Il les fait en revanche des milliards de fois par seconde, sans jamais se tromper ni se lasser. Programmer, c'est décrire, dans un langage que la machine sait traduire, la suite exacte de ces opérations élémentaires qui résout un problème : calculer une moyenne, trier une liste de noms, afficher un horaire de train.
Ce premier chapitre montre comment on écrit un programme Java, comment on le fait comprendre à la machine, et ce qui se passe quand on se trompe. On y écrira peu de choses : un programme qui dit bonjour, puis quelques variantes. Mais toute la suite du livre repose sur ces gestes, qu'il faut maîtriser avant d'aller plus loin.
Objectifs du chapitre
- Savoir ce qu'est un programme, un langage compilé, le bytecode et la machine virtuelle Java.
- Écrire, compiler et exécuter un programme Java, dans un terminal ou dans l'Éditeur Java de la plateforme.
- Afficher du texte et des nombres avec
println,printetprintf. - Lire un message d'erreur du compilateur et le corriger ; distinguer une erreur de compilation d'une erreur d'exécution.
- Transmettre des arguments à un programme.
1.1 Qu'est-ce qu'un programme ?
1.1.1 Du langage humain au langage machine
Le processeur d'un ordinateur n'exécute qu'un seul langage : le langage machine, une suite de nombres qui codent chacun une instruction élémentaire (« charger la case mémoire 1024 dans le registre 3 », « additionner les registres 3 et 4 »…). Ce langage est illisible pour un être humain, et il change d'un modèle de processeur à l'autre.
On écrit donc les programmes dans un langage de programmation, plus proche de la pensée humaine, puis on les fait traduire en langage machine par un autre programme.
Un programme est une suite d'instructions qui décrit un calcul. Le texte du programme, tel que le programmeur l'écrit dans un langage de programmation, s'appelle le code source.
Il existe deux grandes façons de faire exécuter un code source.
- Un compilateur traduit une fois pour toutes le code source en un programme exécutable ; on lance ensuite cet exécutable autant de fois qu'on veut. C'est le cas du C ou du C++.
- Un interpréteur lit le code source et l'exécute au fur et à mesure, instruction par instruction, à chaque lancement. C'est le cas de Python ou de JavaScript (en première approximation).
1.1.2 Le choix de Java : compiler vers une machine virtuelle
Java combine les deux approches. Le compilateur Java, javac, ne produit pas du langage machine pour un processeur précis, mais un code intermédiaire, le bytecode, destiné à une machine imaginaire : la machine virtuelle Java (en anglais Java Virtual Machine, JVM). Sur chaque ordinateur, un programme, la JVM, exécute ce bytecode : il l'interprète, et traduit à la volée en langage machine les parties qui servent le plus souvent.
Ce choix a une conséquence majeure : le même fichier .class s'exécute sans modification sur tout ordinateur qui possède une JVM. C'est la devise historique de Java : write once, run anywhere, « écrire une fois, exécuter partout ».
Le bytecode est le code produit par le compilateur Java, rangé dans des fichiers .class. La machine virtuelle Java (JVM) est le programme qui exécute ce bytecode sur un ordinateur donné.
1.1.3 JDK et JRE
Pour exécuter un programme Java, il suffit d'une JVM et de la bibliothèque standard : c'est le JRE (Java Runtime Environment). Pour écrire des programmes, il faut en plus le compilateur et les outils de développement : c'est le JDK (Java Development Kit), qui contient le JRE. Un programmeur installe donc le JDK.
Repère historique : Java, de 1995 à aujourd'hui
Java est né chez Sun Microsystems, dans l'équipe de James Gosling, au début des années 1990. Il devait d'abord piloter des appareils électroniques grand public ; il fut présenté en 1995, au moment de l'essor du web, avec la promesse de programmes qui s'exécutent dans n'importe quel navigateur. Java 5 (2004) ajoute la programmation générique, Java 8 (2014) les lambdas et les streams. Oracle rachète Sun en 2010. Depuis 2017, une nouvelle version sort tous les six mois ; certaines sont dites LTS (long-term support, maintenues plusieurs années) : Java 17 (2021), Java 21 (2023), Java 25 (2025). Ce livre utilise Java 21.
1.2 Un premier programme
1.2.1 Le programme Bonjour
Voici le plus petit programme Java utile : il affiche une ligne de texte.
// Mon premier programme Java
public class Bonjour {
public static void main(String[] args) {
System.out.println("Bonjour !");
}
}
Il s'enregistre dans un fichier nommé exactement Bonjour.java. Ce qu'il affiche :
Bonjour !
Lisons-le ligne par ligne.
- Ligne 1.
// Mon premier programme Javaest un commentaire : tout ce qui suit//jusqu'à la fin de la ligne est ignoré par le compilateur. Il est écrit pour le lecteur humain. - Ligne 2.
public class Bonjourdéclare une classe nomméeBonjour. En Java, tout le code se trouve dans des classes ; pour l'instant, une classe est simplement le récipient de notre programme. L'accolade ouvrante{commence le contenu de la classe ; l'accolade fermante de la ligne 6 le termine. - Ligne 3.
public static void main(String[] args)déclare la méthode principale,main. C'est par elle que l'exécution commence. Chaque mot a un sens précis, qu'on découvrira au fil des chapitres (staticau chapitre 4,String[]au chapitre 5) ; pour l'instant, on recopie cette ligne telle quelle. - Ligne 4.
System.out.println("Bonjour !");est une instruction : elle affiche le texte entre guillemets puis passe à la ligne. Le point-virgule termine l'instruction. - Lignes 5 et 6. Les accolades fermantes terminent la méthode
main, puis la classe.
La suite du cours est sur Adloun
Le chapitre en entier, formules et figures comprises, avec le tuteur, les fiches, les QCM et les exercices.
Lire la suite du coursEn accès libre, sans inscription.