Chapitre 2
Introduction au
JAVA
Définition et Fondements
Introduction
Apparu fin 1995 début 1996 et développé par Sun Microsystems
(actuellement Oracle), Java s'est très rapidement taillé une place
importante en particulier dans le domaine de l'internet et des
applications client-serveur.
C'est un langage en évolution permanente, Java SE17 (Standard
Edition) est la dernière version stabilisée de java.
Les objectifs de java sont d'être multiplateformes et d'assurer la
sécurité aussi bien pendant le développement que pendant
l'utilisation d'un programme java.
Java est algorithmique et orienté objet
Introduction (2)
Son point fort qui le démarque des autres est sa portabilité due
à ses bibliothèques de classes indépendantes de la plateforme,
ce qui est le point essentiel de la programmation sur internet où
plusieurs machines dissemblables sont interconnectées.
Il hérite partiellement la syntaxe de C++ mais non ses défauts.
Dans java ont été éliminés tous les éléments qui permettaient
dans C++ d'engendrer des erreurs dans le code (pointeurs,
allocation, désallocation, héritage multiple,...).
Libération automatique de la mémoire : Ramasse-miettes
(garbage collector)
Introduction (3)
Java est un langage polyvalent qui permet de créer :
Applications autonomes : Programmes exécutés sur ordinateur, en ligne de commande ou avec
interface graphique (Swing, JavaFX).
Applications web : Développées côté serveur avec des technologies comme Servlets, JSP, Spring
Boot, Jakarta EE.
Applications mobiles : Principalement pour Android via le SDK Java et Android Studio.
Applications distribuées : Utilisées en entreprise avec des frameworks comme Java EE et Spring.
Services web : API REST/SOAP via JAX-RS, JAX-WS et Spring Boot pour l'échange de données
entre systèmes.
Applets (obsolètes) : Anciennes applications web exécutées dans les navigateurs, remplacées par
HTML5 et JavaScript.
Applications embarquées : Développées pour l'IoT et les systèmes embarqués (Java ME, Java SE
Embedded).
Applications en temps réel : Utilisées dans des domaines nécessitant des performances critiques
(bourses, simulations).
Jeux vidéo : Développement de jeux pour Android ou PC avec des frameworks comme LibGDX.
Machine Virtuelle de Java JVM
Le compilateur Java traduit le code source ([Link]) dans le langage d'une
machine virtuelle appelée JVM (Java Virtual Machine). Le code produit
([Link]), appelé bytecode, ne peut pas être exécuté directement par le
processeur de votre ordinateur. Le bytecode peut ensuite être confié à un
interpréteur, qui le lit et l'exécute.
bytecode = [Link]
Code source = [Link] Portable sur tous OS
OS1 OS2 OS3
Fichier interprété selon l’OS, puis exécuté
Machine Virtuelle de Java JVM (2)
Le JDK (Java Development Kit) contient tout ce qui est
nécessaire pour développer des programmes Java :
- javac : le compilateur qui transforme votre programme
source en bytecode,
- java : le programme permettant l'exécution du bytecode
constituant les applications,
- javadoc un programme permettant de créer
automatiquement la documentation de vos programmes
au format HTML, et d'autres utilitaires. La documentation,
qui contient la liste de toutes les classes Java. Elle est au
format HTML et doit être consultée à l'aide d'un navigateur
ou sur Oracle Java API.
- jar : java archive représenté sous la forme d’un fichier
compressé qui regroupe plusieurs fichiers java (des
classes, des configurations, …)
Le JRE (Java Runtime Environment) fournit
l’environnement d’exécution nécessaire pour les
programmes java en assurant leur compatibilité avec le
système d’exploitation utilisé.
Package en Java
Les packages sont utilisés pour :
Organiser le code : Ils permettent de structurer les classes et les interfaces en groupes logiques.
Éviter les conflits de noms : Deux classes peuvent avoir le même nom tant qu'elles se trouvent
dans des packages différents.
Faciliter la réutilisation du code : Les packages permettent de partager et de réutiliser du code
dans différents projets.
Contrôler l'accès : Les packages jouent un rôle dans la visibilité des classes et des membres
grâce aux modificateurs d'accès comme public, protected, private et default (package-private).
Structure d'un package :
Un package correspond généralement à un répertoire dans le système de fichiers.
Le nom du package reflète souvent la structure de répertoires.
Exemple : Le package [Link] correspond au répertoire com/monprojet/utils.
Package en Java
Exemple :
// Déclaration du package
package [Link];
// Déclaration d'une classe dans ce package
public class StringUtils {
public String inverser(String s) {
return new StringBuilder(s).reverse().toString();
}
}
Package en Java
Pour utiliser une classe d'un package, vous devez soit :
Importer la classe avec le mot-clé import.
Utiliser le nom complet de la classe (nom qualifié).
Exemple :
Méthode 1 Méthode 2 :
public class Main {
import [Link];
public static void main(String[ ] args) {
String resultat =
public class Main { [Link]("Bonjour");
[Link](resultat);
public static void main(String[ ] args) {
String resultat = [Link]("Bonjour"); }
[Link](resultat); }
}
}
Package en Java
Java fournit de nombreux packages intégrés dans l'API standard, tels que :
[Link] : Classes de base (par exemple, String, System).
[Link] : Classes utilitaires (par exemple, ArrayList, HashMap).
[Link] : Classes pour les entrées/sorties.
[Link] : Classes pour les réseaux.
// Fichier : com/monprojet/[Link]
// Fichier : com/monprojet/utils/[Link] package [Link];
package [Link]; import [Link];
public class Main {
public class MathUtils {
public static void main(String[] args) {
public static int additionner(int a, int b) { int somme = [Link](5, 3);
return a + b; [Link]("Somme : " + somme); // Affiche "Somme : 8"
}
} }
}
API Java : Application Programming Interface
Ensemble de Classes, Interfaces, Méthodes et Constantes
prédéfinies permettant aux développeurs l’interaction avec des
fonctionnalités spécifiques sans avoir à écrire le code
correspondant.
Avantages :
Réutilisation du code existant.
Utiliser un code testé et optimisé.
Ne pas gérer un code complexe manuellement.
API Java : Application Programming Interface
Exemples d’API Java :
API Java Standard (Java SE) :
• Inclut des packages comme [Link], [Link], [Link], etc.
• Exemple : String, ArrayList, FileInputStream.
API pour les interfaces graphiques :
• [Link] et [Link] pour créer des interfaces utilisateur.
API pour les réseaux :
• [Link] pour gérer les connexions réseau.
API pour les bases de données :
• JDBC (Java Database Connectivity) pour interagir avec des bases de données.
API tierces :
• Des bibliothèques comme Apache Commons, Google Guava, ou Jackson pour
JSON.
API Java : Application Programming Interface Exemple 2 :
import [Link];
Exemple 1 :
public class Main {
public static void main(String [ ] args) {
// Créer un objet Scanner pour lire l'entrée du clavier
import [Link];
Scanner scanner = new Scanner([Link]);
// Lire une chaîne de caractères
public class Main { [Link]("Entrez votre nom : ");
public static void main(String [ ] args) { String nom = [Link]();
[Link]("Bonjour, " + nom + " !");
// Utilisation de l'API ArrayList
// Lire un entier
ArrayList<String> liste = new ArrayList<> ( ); [Link]("Entrez votre âge : ");
[Link]("Hello"); int age = [Link]();
[Link]("Vous avez " + age + " ans.");
[Link]("World");
[Link] (liste); // Affiche [Hello, World] // Lire un nombre décimal
[Link]("Entrez votre taille (en mètres) : ");
} double taille = [Link]();
[Link]("Vous mesurez " + taille + " m.");
}
// Fermer le scanner (bonne pratique)
[Link]();
}
}
Environnements de développement