Page 1
Introduction à Java
Java est un langage de programmation à usage général, évolué et orienté objet
dont la syntaxe est proche du C.
Java peut être séparé en deux parties. D'une part, votre programme écrit en
langage Java et d'autre part, une machine virtuelle (JVM) qui va se charger de
l'exécution de votre programme Java. C'est cette plateforme qui garantit la
portabilité de Java. Il suffit qu'un système ait une machine virtuelle Java pour
que tout programme écrit en Java puisse fonctionner.
Avec le langage Java, vous pouvez développer, des applications Desktop, développer des
applets pour vos sites web, développer des sites en JSP, des applications pour téléphone
mobile. La première chose à faire est bien évidemment d'apprendre à faire des applications
simples.
Quelques chiffres et faits à propos de Java en 2011 :
97% des machines d'entreprises ont une JVM installée
Java est téléchargé plus d'un milliards de fois chaque année
Il y a plus de 9 millions de développeurs Java dans le monde
Java est un des langages les plus utilisé dans le monde
Tous les lecteurs de Blue-Ray utilisent Java
Plus de 3 milliards d'appareils mobiles peuvent mettre en oeuvre Java
Plus de 1,4 milliards de cartes à puce utilisant Java sont produites chaque année
Exemple de programme développé en java
Voici les caractéristiques de java qui ont largement contribué à son énorme succès :
Java est interprété
le code source est compilé en pseudo code ou bytecode puis exécuté par
un interpréteur Java : la Java Virtual Machine (JVM).
Ce concept est à la base du slogan de Sun pour Java : WORA (Write
Once, Run Anywhere : écrire une fois, exécuter partout).
Java est portable
Il est possible d'exécuter des programmes Java sur tous les
environnements qui possèdent une Java Virtual Machine.
Java est orienté objet.
Comme la plupart des langages récents, Java est orienté objet. Chaque
fichier source contient la définition d'une ou plusieurs classes qui sont
utilisées les unes avec les autres pour former une application. Java n'est
pas complètement objet car il définit des types primitifs (entier,
caractère, flottant, booléen,...).
Page 2
Java est fortement typé
Toutes les variables sont typées et il n'existe pas de conversion
automatique qui risquerait une perte de données. Si une telle conversion
doit être réalisée, le développeur doit obligatoirement utiliser un cast ou
une méthode statique fournie en standard pour la réaliser.
Java assure la gestion
de la mémoire
l'allocation de la mémoire pour un objet est automatique à sa création et
Java récupère automatiquement la mémoire inutilisée grâce au garbage
collector qui restitue les zones de mémoire laissées libres suite à la
destruction des objets.
Java est sûr
la sécurité fait partie intégrante du système d'exécution et du
compilateur. Un programme Java planté ne menace pas le système
d'exploitation. Il ne peut pas y avoir d'accès direct à la mémoire.
Java est économe
le pseudo code a une taille relativement petite car les bibliothèques de
classes requises ne sont liées qu'à l'exécution.
Java est multitâche
il permet l'utilisation de threads qui sont des unités d'exécutions isolées.
La JVM, elle même, utilise plusieurs threads.
Sun/Oracle fournit gratuitement un ensemble d'outils et d'API pour permettre le
développement de programmes avec Java. Ce kit, nommé JDK, est librement téléchargeable
sur le site web d'Oracle http://www.oracle.com/technetwork/java/index.html
Le JRE (Java Runtime Environment) contient uniquement l'environnement d'exécution de
programmes Java. Le JDK contient lui même le JRE. Le JRE seul doit être installé sur les
machines où des applications Java doivent être exécutées.
Depuis sa version 1.2, Java a été renommé Java 2. Les numéros de version 1.2 et 2 désignent
donc la même version. Le JDK a été renommé J2SDK (Java 2 Software Development Kit)
mais la dénomination JDK reste encore largement utilisée, à tel point que la dénomination
JDK est reprise dans la version 5.0. Le JRE a été renommé J2RE (Java 2 Runtime
Environment).
Trois plateformes Java sont définies pour des cibles distinctes selon les besoins des
applications à développer :
Java Standard Edition (J2SE / Java SE) : environnement d'exécution et ensemble
complet d'API pour des applications de type desktop. Cette plate-forme sert de base
en tout ou partie aux autres plateformes
Java Enterprise Edition (J2EE / Java EE) : environnement d'exécution reposant
intégralement sur Java SE pour le développement d'applications d'entreprises
Java Micro Edition (J2ME / Java ME) : 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 oeuvre de Java SE
Beaucoup de nouveaux termes et acronymes sont associés au langage java et à ses outils,
vous vous adapterez à force de lire et de les utiliser. Dans ce cours, nous utiliserons le
framework d’Eclipe pour faire nos programmes en java. Plusieurs versions d’Eclipse sont
disponibles et gratuites sur http://www.eclipse.org/downloads/. Lorsque vous installer un
IDE, le JVM et le JRE sont automatiquement installés, vous êtes plus rapidement prêt à
programmer et à exécuter vos programme.
Page 3
Les bases du langage
Comme java ressemble beaucoup au C++, voici les similitudes au niveau de la syntaxe
java est sensible à la case.
les blocs de code sont encadrés par des accolades.
Chaque instruction se termine par un caractère ';' (point virgule)
Les commentaires se font avec les mêmes caractères (// ou /* … */), mais de
nouveau apparaissent pour la documentation
/**
* commentaire de la methode
* @param val la valeur à traiter
* @since 1.0
* @return la valeur de retour
*/
On peut déclarer des variables avec les mêmes types primitifs (short, int, float,
double, char, long, boolean, byte)
Les chaînes de caractères se font avec les string, mais les objets en java commence
toujours par une majuscule, alors on utilise une String pour les variables chaîne.
String s = « Ceci est une chaîne de caractères »;
On peut déclarer des constantes, mais au lieu de const, c’est final
final int TAXE = 0.15; //constante pour la classe
public static final double MAX = 20; //constante pour toutes les classes
Les opérateurs arithmétiques et logiques sont les mêmes :
=, ==, !=, <, >, <=, >=, ++, --, +=, -=, *=, /=, %=, ^=, &&, ||
Les structures de contrôles sont les mêmes :
if(), switch(), for(;;), while(), do… while();
Voyons maintenant un programme simple en java, le fameux Hello world.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
La programmation Java consiste à créer des classes. Aucun code ne peut être insérer en
dehors d’une classe. Or, étant donné qu'un programme est généralement développé par
une équipe de programmeurs, le fait de concaténer (mettre bout à bout) des classes dans
un fichier est loin d'être satisfaisant. C'est pour cette raison que Java propose l'utilisation
de packages (comparables aux bibliothèques du langage C++/C)
Ainsi, l’instruction System.out.println signifique que println est une méthode qui fait
partie de l'objet out, faisant lui-même partie de la classe System. En réalité toutes les
méthodes dépendent d'une classe, chacune faisant parties d'une hiérarchie structurée de
classes. Ainsi, la classe System fait partie du package lang, qui fait lui même partie du
package java. Toutefois, il n'est pas nécessaire de préciser java.lang.System.out, car le
package java.lang est importé par défaut.
Page 4
Packages pratiques
java.util
Classe Scanner
Scanner sc = new Scanner(System.in);
System.out.print("Veuillez saisir un entier : ");
int nb1 = sc.nextInt();
double d = sc.nextDouble();
String str = sc.nextLine();
char carac = str.charAt(0); //pour récupérer 1 caractère
Classe Calendar et Date pour la gestion des dates.
Classe Random permet de générer des nombres aléatoirement comme
Math.random(), mais comme un objet et non une simple méthode. Cet objet nous
permet plus facilement de générer un int, double ou même un booléen.
Random r=new Random();
System.out.prinln(r.nextInt(25)+1); //int aleatoire de 1 a 25 (inclus)
System.out.prinln(r.nextDouble()); //double aleatoire de 0 a 1 (exclus)
System.out.prinln(r.nextBoolean()); //valeur aleatoire entre true/false
java.lang
Wappers sont les classes qui représentent les données primitives
Classe Math est la classe qui contient des opérations mathématiques.
o E (logarithme naturel)
o PI (nombre Pi)
o abs (valeur absolue)
o cos (cosinus)
o exp (exponentiel)
o log (logarithme)
o max (maximum de plusieurs nombres)
o min (minimum de plusieurs nombres)
o pow (élever à la puissance)
o random (génère un nombre en 0
et 1 exclus)
o round (arrondi)
o sin (sinus)
o sqrt (racine carrée)
o tan (tangente)
Classe String la classe qui manipule les string :o)
Classe System est la classe qui manipule les input et output standard
o System.exit();
o System.in.read();
o System.out.print("Hello");
o System.out.println("Hello");
o System.out.printf("\n%s", message);
Classe Thread pour créer des processus concurrents
Page 5
Les enveloppeurs (Wrappers)
Chacun des types primitifs peut être "enveloppé" dans un
objet provenant d'une classe prévue à cet effet et appelée
Wrapper. Les enveloppeurs sont donc des objets
représentant un type primitif.
Exemple :
Double nb = new Double(34.6);
//emballe 34.6 dans un objet Double
double d = 34.6
//double primitif
Avantage :
Les Wrapper sont utilisés comme n'importe quel objet, ils ont leurs propres méthodes.
Inconvénients :
Ils utilisent plus d'espace mémoire que le type primitif. Par exemple, un int prend 4 octets
en mémoire et un Integer prend 32 octets sur une machine virtuelle en 64 bits (20 octets
en 32 bits).
L'objet enveloppant est immuable, c'est à dire qu'il ne peut pas être modifié, toute
modification de sa valeur nécessite de créer un nouvel objet et de détruire l'ancien, ce qui
augmente le temps de calcul.
Conversion implicite, arithmétique et explicite des types primitifs
int nb;
float total;
nb = 5.50; //conversion implicite avec perte de précision
nb = 5.50 / 2; //conversion implicite avec perte de précision
total = 5.50 / 2; //aucune conversion et donc aucune perte de précision
total = 5 / 2; //conversion arithmétique en int avec perte de précision
total = (float)5 / 2; //conversion explicite en float pour éviter la perte
Conversion avec les wrappers
Double nb = new Double(34.6); //emballe 34.6 dans un objet
double d = nb.doubleValue(); //déballe la donnée stockée dans nb
int i = nb.intValue(); //déballe la donnée stockée dans nb vers int
Character c = new Character('H');//emballe 'H' dans un objet
char c = c.charValue(); //déballe la donnée stockée dans c
Double k = Double.valueOf(20.5); //retourne 20.5 emballé dans un Doublee
Integer k = Integer.valueOf(Integer.parseInt("123"));
//parseInt retourne un int
//valueOf retourne un Integer
On peut faire maintenant avec Java 5
Et ça équivaut à
Integer i = 34;
int j = i + 45;
Integer i = new Integer(34);
int j = i.intValue() + 45;
Conversion avec une String
String nb = "456";
int i = Integer.parseInt(nb); //convertit la chaine nb en int et en double
double d = Double.parseDouble(nb);
String age = String.valueOf(18); //convertit 18 en Sring
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !