PDF Archive

Easily share your PDF documents with your contacts, on the Web and Social Networks.

Share a file Manage my documents Convert Recover PDF Search Help Contact



1 IntroJava .pdf


Original filename: 1-IntroJava.pdf
Title: Microsoft PowerPoint - 1-IntroJava.pptx
Author: Christine

This PDF 1.5 document has been generated by PScript5.dll Version 5.2.2 / Acrobat Distiller 9.5.5 (Windows), and has been sent on pdf-archive.com on 05/04/2017 at 14:44, from IP address 80.12.x.x. The current document download page has been viewed 330 times.
File size: 117 KB (6 pages).
Privacy: public file




Download original PDF file









Document preview


UE 21 M2103
Programmation objet en JAVA
LE LANGAGE JAVA

50 heures

http://www.oracle.com/technetwork/java/index.html

1 DS de groupe, 1 DS de promo

http://docs.oracle.com/javase/8/docs/api/
http://docs.oracle.com/javase/tutorial/

JAVA - © Christine Bonnet

JAVA - © Christine Bonnet

Description

1

• Langage développé par Sun Microsystems

INTRODUCTION

initialement pour l’industrie de l’électronique
grand-public (PDA – Assistants Numériques
Personnels, décodeurs pour la télévision
interactive,…) puis pour le World Wide Web

• Langage orienté objets
• Utilise une machine virtuelle pour l’exécution des
programmes  Concept :

Write Once, Run Anywhere (WORA)

3

JAVA - © Christine Bonnet

4

JAVA - © Christine Bonnet

HISTORIQUE
• 1990 : Sun Microsystems crée le projet Green qui

consistait en la conception d’un environnement de
programmation pour des appareils électroniques grandpublic
Mise en place de la "Green team " : James Gosling,
Naughton,…

• Août 1991 : l’équipe, déçue par C++ invente son propre
langage orienté objets Oak

• 1993 : Sun oriente son équipe vers les aspects Internet (en
juin 1993 le Web décolle avec le lancement de Mosaic)

• Janvier 1995 : Naissance de Java (Café en argot US)
• Mai 1995 : Netscape prend la licence
• Début 1996 : version 1.0 du Java Development Kit (JDK),
distribuée par Javasoft, filiale de Sun
5

JAVA - © Christine Bonnet

LANGAGE ORIENTÉ OBJETS

HISTORIQUE (suite)
• 2006 : J2SE 1.5.0 (Java SE 5.0), Java EE 5.0 Nom de code
TIGER (tigre)

• Décembre 2006 : Java SE 6, Nom de code MUSTANG
(cheval sauvage)

• En 2009 Oracle rachète Sun Microsystems pour plus de 7
milliards de dollars (LEMONDE.fr 20/04/2009)

• Septembre 2010 : Java SE 6, JDK 6 update 21
• Septembre 2011 : Java SE 7, Nom de code DOLPHIN
(dauphin)

• Mars 2014 : Java SE 8, Nom de code Kenaï (nom d'une
rivière)

• Janvier 2017 : Java SE 8 Update 121
6

JAVA - © Christine Bonnet

JAVA EST COMPILÉ et INTERPRÉTÉ
• Le code source Java est enregistré dans des fichiers






.java

Classes

• Chaque fichier .java est compilé (javac) dans un pseudo-

Objets

code nommé byte-code indépendant de la plate-forme
(fichier .class)

Messages

• Le byte-code est interprété par une machine virtuelle

Héritage (java.lang.Object)

(java)

Compilation

Presque tout dans Java est objet
Exceptions: les types primitifs (int, float, double,…)
et les tableaux

Film.java
Java et la programmation orientée objet
7

JAVA - © Christine Bonnet

JVM

(javac)

(java)
Film.class

exécution du
programme

8

JAVA - © Christine Bonnet

JAVA EST PORTABLE
Compilateur Binaire
Source
Intel

Source
(.java)

Compilateur
javac

Pseudo-code
(.class)

Intel

Intel

PROGRAMMATION PARALLÈLE

Interpréteur
Java
(JVM)
Intel

Java est multi-thread

(indépendant
de la
plate-forme)

Sparc

Sparc

Sparc

Classique

Thread : tâche spécifique et indépendante

Sparc

Java

Le code est converti en
instructions machine pour la
plate-forme utilisée lors de la
compilation
Le programme compilé ne
peut s’exécuter que sur des
machines ayant le même
processeur

Développement sur une machine et exécution
sur n’importe quel système (WORA)
Les différents compilateurs produisent tous un
fichier exécutable dans un format commun

Les programmes Java peuvent contenir plusieurs
actions indépendantes (threads) pour réaliser des
tâches en parallèle
Le multitâche est pris en compte par la machine
virtuelle

 Il est possible de compiler un programme
java dans un environnement Unix puis de porter
le fichier obtenu sur un Mac et de l’exécuter par
la machine virtuelle propre à Apple

9

JAVA - © Christine Bonnet

10

Java est robuste
Code robuste: minimise les risques de "crash "

JAVA - © Christine Bonnet

Java est robuste (suite)

• A l’origine, c’est un langage pour des applications

• Surcharge des opérateurs non autorisée (à une exception

• Pas de pointeur

• Les interfaces se substituent à l’héritage multiple

• Gestion de l’allocation et de la désallocation de la mémoire

• Pas de conversion implicite de types (à une exception près)

embarquées

par un processus spécialisé : le garbage collector ou
ramasse-miettes

• Détection des usages illicites de tableaux
(débordement  exception)

11

près)

• Mécanisme d’exceptions
• Compilateur contraignant (erreur si une exception n'est pas

gérée, si une variable dans une méthode n'est pas initialisée,
etc.)

JAVA - © Christine Bonnet

12

JAVA - © Christine Bonnet

APPLICATIONS ET APPLETS

APPLICATION

Les programmes Java peuvent prendre deux formes :
• Applications
• Applets

• Programme au sens classique du terme

Le cycle de développement est identique pour les
deux formes, seul le contexte d’invocation et
d’exécution varie

• Réside habituellement sur la machine où elle

application

a.class

main()

Interpréteur Java

(main())

a.java

Compilateur Java
applet

13

• Exécution de manière autonome à l’aide de
l’interpréteur JVM

HTML

Navigateur

<APPLET>

p.java

est exécutée

Interpréteur Java

p.class
JAVA - © Christine Bonnet

14

APPLET
• Destinée à être chargée depuis une machine (le

serveur) et exécutée sur une autre machine (le poste
du client)

• Invocation réalisée depuis l’intérieur d’un document
HTML

Le document fait référence à l’applet à l’aide d’un
URL

JAVA - © Christine Bonnet

JAVA VERSUS C/C++
• Pas de pointeur
• Pas de conversion

• Pas de structure (struct)
ni d’union (union), ni de
type (typedef)

automatique de types
(exc.)

• Vérification des

débordements des
indices de tableaux

• Pas d’héritage multiple
pour les classes
( interfaces)

• Gestion automatique de
la mémoire

• Pas de surcharge des

• La taille des types est

opérateurs (exc.)

indépendante du SE de
l’ordinateur

• Pas de variables globales
• Pas de pré-processeur

15

JAVA - © Christine Bonnet

16

JAVA - © Christine Bonnet

LES OUTILS
• Au minimum
– un éditeur de texte (par exemple TextPad)
– le JDK (Java Development Kit) téléchargeable
gratuitement

Ou un Environnement de Développement Intégré
(IDE) commercial: NetBeans (free open source),
Eclipse (free open source), IntelliJ,…

LE JDK







javac : compilateur de sources java
java : interpréteur de byte-code
appletviewer : interpréteur d’applet
javadoc : générateur de documentation
une documentation
l'API (Application Programming Interface) Java : ensemble
de classes prédéfinies d’usage général que l’on
retrouve sur toutes les plates-formes ("Core API")

• d'autres APIs
• d’autres outils : déboguer (jdb), création d’archives

Java (jar), désassembleur (javap), générateur de code
natif…

17

JAVA - © Christine Bonnet

18

JAVA - © Christine Bonnet

L' API JAVA

L'API JAVA
(Application Programming Interface)
Interface de programmation d’applications appelée
"Core API"

• Briques de base à utiliser dans tout programme Java
 portabilité maximale du code

• Le Core API est découpé en packages, chacun
spécialisé dans un domaine différent
(package: bibliothèque de classes)

– java.lang : gestion des types et des éléments de
base du langage, importé par défaut
– java.util : gestion de quelques structures de
données et utilitaires
– java.io : gestion des entrées-sorties et des fichiers
– java.applet : gestion des applets
– java.awt  javax.swing : gestion du fenêtrage et
de son contenu
– …
http://docs.oracle.com/javase/8/docs/api/ (documentation

du Core API)
19

JAVA - © Christine Bonnet

20

JAVA - © Christine Bonnet

AUTRES APIs

AUTRES API - suite

• Java Enterprise API : interaction entre Java et les
systèmes client-serveur. Trois modules :

– JDBC (Java DataBase Connectivity) :
interaction entre Java et les bases de
données (connexion à une base de données,
envoi de requêtes SQL , réception des
résultats, …)
– Java IDL (Interface Definition Language) :
objets mobiles, compatibles avec OMG IDL

• Java Server API : développement de serveurs
intranet ou internet en Java

• Java Media API : ensemble d’APIs pour la

gestion du multimédia (Java 2D, Java Telephony,
Java Animation, …)

• Java Embedded API : destinée aux appareils
électroniques  retour aux sources !

– Java RMI : invocation de méthodes à distance

• Java Commerce API : transactions commerciales

.…

sécurisées sur le Web (carte de crédit, monnaie
électronique, etc.)

21

JAVA - © Christine Bonnet

22

JAVA - © Christine Bonnet

RÉFÉRENCES
Compilateur JIT Just-In-Time

• Bibliographie

• Traduit les byte-codes en instructions natives

– "Java: De l’esprit à la méthode", M. Bonjour,
G. Falquet, J. Guyot, A. Le Grand, International
Thomson Publishing France, 1996

• Amélioration des performances

– "Programmer en Java", Claude Delannoy,
Eyrolles, 9ème édition, 2014

• Utile si les mêmes byte-codes sont exécutés
plusieurs fois

• Les JVMs supportent, pour la plupart, la
compilation JIT

• Sites Web
– http://www.oracle.com/technetwork/java/index.
html: site officiel java
– http://docs.oracle.com/javase/8/docs/api/ (Core
API Docs)
– http://www.developer.com/java/: applications,
applets, …
– http://www.javaworld.com: informations sur
Java

23

JAVA - © Christine Bonnet

24

JAVA - © Christine Bonnet


Related documents


1 introjava
2 basesjavadebut
6 genericitecollections
2 prime netbeans
3 basesjavasuite
4 progobjjava


Related keywords