0% ont trouvé ce document utile (0 vote)
22 vues33 pages

Chap1 PresentationJava

Le document présente Java, un langage de programmation orienté objet, en détaillant son historique, ses caractéristiques, et son environnement de développement. Il aborde également la comparaison entre Java et JavaScript, ainsi que les librairies disponibles pour le développement d'applications. Enfin, il fournit des informations sur la sécurité, la gestion des ressources, et les outils nécessaires pour écrire des applications Java.

Transféré par

mkaddemmanel120
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues33 pages

Chap1 PresentationJava

Le document présente Java, un langage de programmation orienté objet, en détaillant son historique, ses caractéristiques, et son environnement de développement. Il aborde également la comparaison entre Java et JavaScript, ainsi que les librairies disponibles pour le développement d'applications. Enfin, il fournit des informations sur la sécurité, la gestion des ressources, et les outils nécessaires pour écrire des applications Java.

Transféré par

mkaddemmanel120
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

L’environnement Java

Présentation de

Java
© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 1
Sommaire

Présentation de Java

Historique
L’environnement Java et le JDK
Caractéristiques
Java par l’exemple
L’environnement de génération et d’exécution
Gestion des aspects de sécurité
Java et Javascript
Plate-forme JAVA et librairies (API)
Ecrire une application
Bibliographie & @ Internet

ANNEXE : Terminologie

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 2
Historique
Dates clés

1991 James Gosling à Sun MicroSystems développe Oak


programmer tous les processeurs (ordinateurs ou appareils électroménagers, ...)
caractéristiques initiales: robustesse, compatibilité,petite taille du runtime ou des codes
générés, facilité de programmation.
plateforme pour interpréter les programmes du langage

1994 Abandon du projet

1995 Après une présentation à Netscape


Reprise du projet
Intégration dans Netscape sous forme d’applet

Versions Majeures
1.0
1.1 modèle événementiel,exceptions..
1.2 extensions javax, swing, J2EE
1.3 Hotspot
1.4 Java NIO…

...Java signifie café en Slang (argot américain)...

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 3
Historique
Un nouvel environnement pour de nouvelles solutions informatiques

C++ commence à s’écrouler


Complexité des environnements C++
Langage C, incrément objet, bibli de classes d’encapsulation des OS.
Différences des environnements :
Multiplication des Technologies de compilation (dépendance entre le
langage et le processeur)
Faible durée de vie des composants logiciels
Problème de fiabilité et sécurité en utilisation WWW.
Utilisation de pointeurs,...

Un nouveau langage
Quelque part entre Smalltalk et C++
Un nouvel environnement d’exécution adapté au Web
interprétation du byte code par une machine virtuelle
© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 4
L’environnement Java
Langage et JDK

Langage de programmation orienté objets


Situé entre SMALLTALK et C++, permet de développer des applications de taille importante
Intégrant les besoins de l’informatique actuelle
Répond à des objectifs de portabilité

Une plateforme de déploiement


Une machine virtuelle (JVM)
Des librairies de base (API).

Un ensemble d’outils : Le JDK


Compilateur
Débugger
Documentation

Fournisseur
Sun fournit des JDK pour les principales plate-formes :
WIN32, MacOS, Solaris et Linux

autres éditeurs d'environnement Java :


IBM, Microsoft, Novell, Tower J, Blackdown, Appeal Jrockit …

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 5
L’environnement Java
Principe

Appli. Java Appli. Java


Appli. Java
Applets Java Appli. Java
Applications Java
Navigateurs
HotJava, Netscape,... API Java
Java Base API Java Standard ExtensionAPI

Classes de bases Java Classes Standards d’extension


AWT, Net & IO, applet, memory, thread 3D, Video, MIDI, Telephonie, Entreprise,...
Machine
Java Run Time : platform independant
Virtuelle
Interpréteur Byte Code -Garbage Collector
Java
libutil libawt libnet platform dependant Java OS
libio ... libraries 512 Ko ROM
256 RAM
AIX, MVS,HPUX,
Win32 OS/2 MacOS Solaris Hitachi OS, Irix,... Puce Java
picoJava,
Sun microJava,
Intel PC PowerPC
SPARCstation
... ultraJava

code Java Electronique grand public :


codeC ou assembleur NC, TV, Téléphone, Jeux,...
© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 6
Caractéristiques

Simple
Syntaxe proche du C / C++
Pas de pointeurs
Organisation du code (packages)
Pas de gestion explicite de la mémoire (ramasse miettes)
Tout est objet (sauf les type primitifs)
Pas d’héritage multiple(utilisation d’interfaces)
Librairies de classes (sockets, BD, graphiques…)

Orienté Objet
paradigme de programmation le plus utilisé
tout est classe

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 7
Caractéristiques
Interprété, architecturalement neutre et portable
Code Source transformé en Bytecode indépendant de l’OS
Bytecode interprété par une machine virtuelle

// Bytecode consists of opcode and


operands.

// Bytecode stream:
03 3b 84 00 01 1a 05 68 3b a7 ff f9

// Disassembly:
iconst_0 // 03
istore_0 // 3b
iinc 0, 1 // 84 00 01
iload_0 // 1a
iconst_2 // 05
imul // 68
istore_0 // 3b
goto -7 // a7 ff f9

Taille des types primitifs indépendants de l’OS


Bibliothèques de classes « standard »

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 8
Caractéristiques

Robuste,Fiable et Sécurisé
Langage pour les applications embarquées.
Gestion de la mémoire par un ramasse miettes (garbage collector)
Impossible de corrompre la mémoire
Pas d’accès direct à la mémoire
Pas de pointeurs
Contrôle du débordement dans les tableaux
Mécanisme d'exception.
Compilateur strict (erreur si exception non gérée, si utilisation d’une
variable non affectée, ...).

Bytecode vérifié avant l’exécution par l’interpréteur


Accès aux ressources contrôlé

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 9
Caractéristiques

Distribué
API réseau ([Link], [Link], ...).
API pour les objets distribués (RMI,CORBA)
API pour le Web (servlets)

Multi-thread (processus légers)


Intégrés au langage et aux API :
Gestion de la synchronisation

Dynamique
Chargement dynamique des classes
Introspection…

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 10
Points faibles

Pas aussi rapide qu’un programme natif

Gourmand en mémoire

Absence de surcharge d’opérateurs comme en C++

Absence dans le langage des types paramétriques –


templates

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 11
Java par l’exemple
class Exemple {
int unAttribut;
void uneMethode() {
unAttribut++; // équivaut à [Link]++
[Link](“exécution de uneMethode”);
[Link](“valeur :” + unAttribut);
int sum (int arr[]) {
unAttribut = 0;
// les tableaux sont des objets et gèrent leur
// longueur accessible par la méthode length()
for (int i=[Link]; --i>=0;)
unAttribut += arr[i];
return unAttribut;
};
}; ...d’où les nombreuses comparaisons avec le langage C,
et parfois l’appellation C++ ++ qui est donnée à Java...

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 12
L’environnement de génération
et d’exécution Java

Java librairies
“class Loader”
source de classes
(.java)

interpreteur compilateur
Bytecodes
compilateur java temps reéel
Java chargé
Java localement
ou par réseau Runtime System
java virtual Machine
Java byte
Operating System
Code
(.class)
Hardware

Environnement de Environnement d’exécution


génération (java Platform)

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 13
Gestion des aspects de sécurité
“On ne peut faire confiance à personne”

•pas de gestion de •un espace mémoire par source chargé par le réseau
l’Allocation dynamique •un espace mémoire pour tous les sources locaux “élimination
•Pas de pointeurs une classe ne peut référencer une classe importée des conflits
“élimination des erreurs qu’en la référençant explicitement d’exécutions”
de prog. classiques...”

Java librairies “class verifieur de


source de classes Loader” pseudo-code vérification
(.java) des types et
des paramètres
de chaque
interpreteur compilateur
Bytecodes instruction
compilateur java temps reéel
Java chargé “parade aux
Java compilateurs
localement
ou par réseau Runtime System hostiles...”
java virtual Machine
Java byte
Code protection des fichiers et des accès réseaux : Utilisation d’une
(.class) les classes du “networking package” permettent de machine virtuelle
configurer la platforme avec différents niveaux de “ parade aux accès
paranoia : interdir tout accès réseau,... mémoire illicites”
“maîtrise de l’origine des info.”

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 14
Gestion des aspects de sécurité
Le modèle de sécurité

Le même modèle de sécurité est appliqué pour les applications et


pour les applets, locales ou téléchargées
© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 15
Java et JavaScript
JavaScript ?

Quoi ?
JavaScript et une déclinaison simplifiée mais indispensable du langage
Java. Il permet de goûter aux plaisirs de Java sans se frotter aux
difficultés de la conception objet.
JavaScript s’intègre dans une page HTML et va
permettre de répondre à des actions utilisateurs.
réalisation d’actions sans exigence d’une connexion réseau
supplémentaire
permet la programmation événementielle à l’intérerieur d’une page
HTML
<SCRIPT LANGUAGE=“JavaScript”>
function calcule(form) { ... }
</SCRIPT>
supporte le chargement d’un script depuis un autre site
<SCRIPT SRC =“http:[Link]”>... </SCRIPT>

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 16
Java et JavaScript
Comparaison

Java JavaScript
compilé avant exécution sur „ Interprété par le client - non
le client compilé
Orienté objet „ pas de classes ni d’héritage,...
Applets distinctes de HTML „ Encapsulé dans HTML
Déclaration obligatoire des „ Déclaration optionnelle des
variables (typage fort) variables
Références vérifiées à la „ Références vérifiées à la
compilation l’exécution
Fonctionnalités graphiques „ Pas de fonctionnalité
complètes de Java graphiques
Environnement indépendant „ Intégration dans l’architecture
de navigateurs (sauf sous-jacente de navigateurs
LiveConnect) „ Issu de Netscape Corporation
Issu de Sun Microsystem
JavaScript utilise un nombre restreint de types de données du langage Java
© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 17
Plate-forme JAVA et librairies (API)
Les librairies standards

Elles diminuent la charge de travail, standardisent les applications,


et fournissent des exemples de source Java de référence

Les librairies standards :


[Link] : Types de bases, Threads, ClassLoader, Exception, Math, ...
[Link] : Collections (Hashmap,ArrayList,TreeMap…), Ressources, Logging,
Compression, Préférences
[Link]
[Link],[Link] : Interfaces Graphiques
[Link]: Accès aux I/O par flux
[Link]: Socket (UDP, TCP, multicast), URL, ...
[Link] : Introspection
[Link] : Composants logiciels
[Link],[Link]: Accès aux bases de données
[Link] : signature, cryptographie, authentification
[Link] : Remote Method Invocation
[Link]

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 18
Plate-forme JAVA et librairies (API)
Les librairies d’extensions Standards

Les Extensions Standards


Java security :
cryptography, digital signature, encryption and authentification
Java Media API :
2D, Video, Audio, MIDI, Animation, Share, Telephony, 3D
Java Enterprise API :
JDBC(Java Database Connectivity), IDL, RMI (Remote Methode Invocation)
Java Commerce API
gestion de services de paiements électroniques, cryptographie évoluée,...
Java Server
service de gestion de serveurs intranet / internet

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 19
Plate-forme JAVA et librairies (API)
La plate-forme

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 20
Ecrire une application
Outils

Outils : Téléchargement du JDK


Java Developpement Kit
[Link]
Un Editeur (Bloc note,IDE….)

Documentation
Documentation sur les API
[Link]
Tutoriel
[Link]
Google

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 21
Ecrire une application
En ligne de commande

Pré requis
Un Editeur de texte

Etapes
Ecrire le code source dans un fichier portant le nom de la classe
(ici [Link])
/**
* The HelloWorldApp class implements an application that
* displays "Hello World!" to the standard output.
*/
public class HelloWorldApp {
public static void main(String[] args) {
// Display "Hello World!"
[Link]("Hello World!");
}
}
Attention: respecter la casse des caractères (majuscules/minuscules)
© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 22
Ecrire une application
En ligne de commande

Etapes
Compiler le code source
javac [Link]

Un fichier contenant du bytecode sera généré


[Link]

Executer le bytecode
java HelloWorldApp

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 23
Ecrire une application
Avec un IDE (1)

Pré requis
ECLIPSE
[Link]

Raccourci vers [Link]

Etapes
Créer un projet
File – New Project
Java – Java Project

Choisir un nom &


Cliquer sur FINISH

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 24
Ecrire une application
Avec un IDE (2)

Etapes
Créer une classe
File – New – Class
Entrer le nom [Link]

/**
* The HelloWorldApp class
* implements an application
* that displays "Hello World!«
* to the standard output.
*/
public class HelloWorldApp {
public static void main(String[] args) {
// Display "Hello World!"
[Link]("Hello World!");
}
}

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 25
Ecrire une application
Avec un IDE (3)

Etapes
Compiler le code source
Project – Build All

Executer le byte code


Menu Run – Run
Dans launch configurations, choisir Java Application, puis cliquer sur new
Dans l’onglet Main, cliquer sur search et choisir la classe HelloWorldApp
Cliquer sur Run

Autres fonctionnalités de Eclipse


Débuggeur
Complétion de code
Refactoring

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 26
Bibliographie & @ Internet
principales @ internet :
[Link] et tous les liens associés...
[Link] ,
[Link]
[Link]
[Link]

Java programming center


[Link]

Cours JAVA
[Link]
[Link]
[Link]
[Link]
[Link]/pages/Java/Supports_de_cours_Java_gratuits/

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 27
ANNEXE
Terminologie

Applet
An applet is a Java program that runs within the web browser. Applets use a
graphical user interface and may have text, images, buttons, scrollbars, and
sound. AWT and SWING are frequently associated with articles and tutorials
about creating applets.

AWT
The Abstract Window Toolkit (AWT) is a package of classes for creating
components such as buttons, menus, and scrollbars for applets and standalone
applications.

Java API
The Java Application Programming Interface (API) is prewritten code, organized
into packages of similar topics. For instance, the Applet and AWT packages
include classes for creating fonts, menus, and buttons. The full Java API is
included in the Java 2 Standard Edition download.

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 28
ANNEXE
Terminologie

JavaBeans
JavaBeans architecture provides a way of designing reuseable software
components that can be visually manipulated in builder tools. Beans can be
simple like buttons, or more complex like a tool to access to databases.

Java Foundation Classes (JFC)


The Java Foundation Classes (JFC) are a set of GUI components and other
services simplifying the development and deployment of desktop and
Internet/Intranet applications.

Java Native Interface (JNI)


JNI is the native programming interface for Java that is part of the JDK. The JNI
allows Java code to operate with applications and libraries written in other
languages, such as C, C++, and assembly. Recommended only for advanced
programmers.

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 29
ANNEXE
Terminologie

JavaServer Pages (JSP)


Create dynamic web pages with JSP by embedding scriptlets (Java programming
language code) with HL. JSP pages process forms, perform calculations, or do
anything else that can be written with the Java programming language.

Java 2 Platform, Enterprise Edition (J2EE)


The J2EE platform provides a component-based approach to the design,
development, assembly, and deployment of enterprise applications. The J2EE
platform gives you a multitiered distributed application model, the ability to reuse
components, a unified security model, and flexible transaction control.

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 30
ANNEXE
Terminologie

Java 2, Micro Edition (J2ME)


Java 2 Micro Edition (J2ME) is targeted for the consumer and embedded market.
The API specifications are based on Java 2 Standard Edition (J2SE), but
modified to meet the unique requirements of each product. J2ME makes it
possible to write Java applications for cell phones, smart cards, pagers, and
other consumer devices.

Java 2, Standard Edition (J2SE)


This download includes the essential compiler, tools, runtimes, and APIs for
writing, deploying, and running applets and applications in the Java programming
language.

Java Virtual Machine (JVM)


The Java virtual machine executes instructions that a Java compiler generates.
This run time environment, or JVM, is embedded in various products, such as
web browsers, servers, and operating systems.

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 31
ANNEXE
Terminologie

JDBC
JDBC is a Java API for executing SQL statements. By using the JDBC API, you
can access almost any data source, from relational databases to spreadsheets to
flat files. J2SE includes the JDBC API.

JDK
JDK is the short-cut name for the set of Java development tools, consisting of the
API classes, a Java compiler, and the Java Virtual Machine interpreter,
regardless of which version. The JDK is used to compile Java applications and
applets. The most current version is the J2SE., the preferred term these days. If
you use J2SE 1.2 and later to develop applications, you are using what's known
as the Java 2 Platform.

JINI
The Jini network technology enables any service--from enterprise systems to
kitchen appliances--to network smoothly and simply. The Jini architecture lets
each service (device or software) tell others how to talk to it, without any
administrator settings.

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 32
ANNEXE
Terminologie

Project Swing
The [Link] package of classes is used to create GUI components for
applets and applications. Project Swing classes enable programmers to specify a
different look and feel for each platform, or a uniform look across all platforms.
Swing is the project code name for the lightweight GUI components in JFC.

RMI
Remote Method Invocation (RMI) lets Java applications communicate across a
network. The communicating applications can be running on different computers
on opposite sides of the planet. This higher-level and method-based approach to
network communications allows access to a remote object as easily as a local
object.

Servlets
A servlet is an extension to a server that enhances the server's functionality.
Servlets are most commonly used to process forms, handle redirects or
authenticate user names and passwords, and create dynamic content.

© Rémy Courdier (Révisions M. Gangat) 1996-2003- Java Présentation - Version du cours 3.0 33

Vous aimerez peut-être aussi