Vous êtes sur la page 1sur 21

Chapitre 1

Introduction à JAVA
Sommaire

 Généralités sur Java

 Editions Java : JSE, JME, et JEE

 JDK (Java Development Kit)

 Programme "Hello World"


Généralités sur Java

 Java est un langage de programmation orienté objet pur


(contrairement à C++)

 Java s’exécute dans une architecture de Virtual Machine ce


qui assure la Portabilité

 Java regroupe un ensemble d'API (bibliothèques) riches et


variées qui facilitent le développement (Réseaux, bases de
données, IHM, …)

 Les spécifications de Java et duJDK sont publics


 standard pour le développement d'applications
d'entreprise
 disponibles sur le site de oracle
Les caractéristiques du langage Java

 Simple : par rapport au C++.  Robuste : difficile d'avoir des


échecs mémoire ou de corrompre le
 Orienté objets : bases dans code
Smalltalk et autres langages de
POO  Sécurisé : mécanismes de
sécurité
 Interprété : la compilation
génère le bytecode, code  Multithreads : Multitâches
indépendant des machines, qui immédiatement supporté.
est ensuite interprétée par la
JVM.  Distribué
 Portable : Java est architecture • Support des protocoles
neutral, i.e il tourne sur les Réseau;
Windows, Mac OS, Linux, … • Support de la distribution
d'objets, des appels RMI et
CORBA.
Les évolutions dans le monde Java
https://www.jmdoudoux.fr/java/dej/chap-presentation.htm#presentation-4
2009 : Difficultés de Sun et
 1991: James Gosling, Patrick Naughton et Mike rachat par Oracle.
Sheridan, employés de Sun travaillent sur Green
Project : résultat Oak puis Firtsperson.
2011: Java 7 désormais par
Oracle
 1993 : vulgarisation d’Internet
2014: Java 8
 1995: WebRunner puis Hotjava et Java. Sun et
Netscape décident d’intégrer Java dans un 2017: Java 9
navigateur.

2018: Java 10 et Java 11


 1998 : Java 2. De Java 2 à Java 6 il y a eu des versions
chaque 2 ans.
2019: Java 12 et Java 13
 3 novembre 2006 : Passage de Java sous
licence GPL. Java devient donc un outil libre. 2020: Java 14 et Java 15

2021: Java 16 et Java 17

2022 : Java 18 et Java 19


2023 : Java 20 et Java 21
Les évolutions dans le monde Java
Les trois éditions de Java
1.Java Standard Edition (JSE) : environnement
d'exécution et ensemble complet d'API pour des
applications de type desktop. Cette plate-forme sert de
base aux autres environnements.
2.Java Enterprise Edition (JEE) : environnement
d'exécution reposant intégralement sur Java SE pour le
développement d'applications d'entreprise (applications
à large échelle, applications distribuées, applications
Web, …)
3.Java Micro Edition (JME) : environnement
d'exécution et API pour le développement d'applications
sur appareils mobiles et embarqués dont les capacités
ne permettent pas la mise en œuvre de Java.
Les trois éditions de Java
Les trois éditions de Java

 Chaque édition définit un ensemble de bibliothèques de classes


différent
 Les équipements mobiles/embarqués utilisent peu de classes. Alors
que les classes du runtime J2SE se comptent en milliers.
 Les trois éditions de Java
exploitent les mêmes facilités
syntaxiques du langage Java J2EE

J2SE

J2ME
Qu'est ce que la JME ?
 La JME est une spécification qui vise à définir une
infrastructure logicielle pouvant s’adapter au
développement / déploiement logiciel sur tous type
de matériel mobile.

 La JME peut être considérée comme une collection


de classes et d’interfaces Java dédiés aux
équipements mobiles (small and mobile devices).
Java Standard Edition
Les packages de Java SE
Le succès de Java tient à la richesse de son API, organisée en packages
chacun couvrant un domaine d'application.
java.lang : systématiquement visible il renferme Object, System,
String, Thread, ..
java.util : utilitaires de programmation Date, List, Stack, ...
java.io : classes pour les différents modes d'entrée/sortie
java.applet : Développement d'applet
java.awt : développement d'interfaces graphiques
javax.swing : interfaces graphique, amélioration de AWT
java.net : réseau Sockets TCP, URL, Datagrammes,...
java.sql : accès aux bases de données relationnelles
java.rmi : applicatifs Java distribués
Java EE pour quoi faire ?
 Infrastructure « serveur » pour applications d’entreprise
 Support des architecture multi-tiers
1. Architecture client léger (architecture Web basée « browser »)
2. Architecture client lourd
3. Architecture orientée service (application répartie sans présentation)
 Support de QoS : transaction, sécurité
 Connexion standard à des systèmes d’information externes (accès au « legacy »)

 Java EE est la spécification d’un modèle de composants


distribués prenant en compte les différentes couches d’un
système d’information d’entreprise
 La Java EE définit une architecture standard incluant
 Un modèle de programmation (application multi-tiers, client légers)
 Une plate-forme (ensemble de spécifications et de politiques requises)
 Un ensemble de test de compatibilité
 Une implantation de référence
 Les standards de la Java EE sont gérés par la communauté JCP (Java Community Process
www.jcp.org) à travers des JSR(Java Specification Request)
Mécanisme d'exécution des programmes Java

 Le code source java est compilé en un format


indépendant des machines appelé bytecode .java
Code source Java
 Le bytecode est interprété par la machine
virtuelle déjà installée sur la machine Compilation (javac)

physique
“Bytecodes” Java .class
 Pour tout type de machine
(OS/Processeur), il y a une JVM Déploiement

spécifique (disponible et gratuite)


JVM JVM JVM
 Le bytecode peut être converti en (java) (java) (java)
un code machine et ainsi être exécuté MacOS UNIX Windows
rapidement. Il faut compiler avec un
compilateur dit Just in Time (JIT). Mais on Mac Unix PC
perd la portabilité!
Avantages des programmes Java
Les outils pour programmer Java

 L'indispensable JDK
 Récupérer le JDK et l'installer.
 Un environnement de développement intégré (IDE)
 Un IDE n'est pas obligatoire pour programmer, mais il amène un confort
d'édition, de compilation, d'exécution et de débogage.
 Les IDE professionnels (WebSphere WSAD, Sun ONE, Borland JBuilder, …
) amènent beaucoup de facilités en termes de génération de code. Ils sont
complexes pour les débutants.
 Conseil : Commencer par utiliser un IDE simple et gratuit tel que : NetBeans
ou Eclispse
 Récupérer Netbeans ou eclipse et l'installer.
Les outils du JDK (Java Development Kit)
Ces outils sont sous le répertoire bin du répertoire d'installation du JDK
 javac : compilateur de sources java
 java : interpréteur de byte code
 appletviewer : interpréteur d'applet
 javadoc : générateur de documentation (HTML, MIF)
 javah : générateur de header pour l'appel de méthodes natives
 javap : désassembleur de byte code
 jdb : debugger
 javakey : générateur de clés pour la signature de code
 rmic : compilateur de stubs RMI
 rmiregistry : "Object Request Broker" RMI

 Ajouter le chemin de répertoire bin à la variable d'environnement PATH (Win et


UNIX) pour rendre l'accès aux outils du JDK possible de partout
 Veiller à ce que le chemin des bytecodes utiles sont consignés dans la variable
CLASSPATH
Le programme "Hello World …"

. Éditer le code source Java suivant et le sauvegarder dans Bienvenue.java :

class Bienvenue
{
public static void main( String st[])
{
System.out.println( "Bienvenue dans le monde Java ");
}
}

2. Compiler
3. Exécuter.
Un programme pour afficher la date

• Utilisation de l’API (package java.util)


import java.util.*;
class AffichDate {
public static void main (String st[])
{
Date d = new Date();
System.out.println( "Nous sommes le : " +
d.getDate()+ " / "+ //Jour
du mois
(d.getMonth()+1) +" / "+ //Le
mois
(d.getYear()+1900) //L’année
);
} //Fin du main()
} //Fin de AffichDate
Programmation structurée en Java
 Types prédéfinis (8 au total)
 Entiers
 byte (8 bits), short (16 bits), int (32 bits), long (64bits)
 Réels
 float (32 bits IEEE 754), double(64 bits)
 Caractères
 char (2 octets, unicode)
 Logique
 boolean (1 octet)
 Structures de contrôle de flux d'exécution
 Schémas conditionnels
 if (même syntaxe qu'en C/C++)
 switch-case (même syntaxe qu'en C/C++)
 Schémas itératifs
 for (même syntaxe qu'en C/C++)
 while (même syntaxe qu'en C/C++)
 do-while (même syntaxe qu'en C/C++)
Offre en termes d’IDE de développement

 Offre commerciale
 IBM / WebSphere Studio Application Developer (WSAD)
 Borland JBuilder
 Sun One Developer
 Oracle JDeveloper
 …
 Offre « Open Source »
 Eclipse : https://www.eclipse.org/downloads/packages/
 NetBeans : https://netbeans.apache.org/download/index.html

Vous aimerez peut-être aussi