Introduction à JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)



Documents pareils
Présentation de Java. Olivier de Pertat IT GROUP

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Java - la plateforme

java : Langage et Environnement

Java Avancé. Le langage Java. Rémi Forax

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

as Architecture des Systèmes d Information

Vulgarisation Java EE Java EE, c est quoi?

Remote Method Invocation (RMI)

PROGRAMMATION PAR OBJETS

Initiation à JAVA et à la programmation objet.

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

SGDN. Projet: JAVASEC

RMI le langage Java XII-1 JMF

INITIATION AU LANGAGE JAVA

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

La technologie Java Card TM

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Cours 1: Java et les objets

Une introduction à Java

Environnements de développement (intégrés)

Application Web et J2EE

Programmer en JAVA. par Tama

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Java Licence Professionnelle CISII,

Chapitre I Notions de base et outils de travail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Évaluation et implémentation des langages

Plan du cours. Historique du langage Nouveautés de Java 7

Conception de serveurs d'applications ouverts

Java et les bases de données

Intergiciel - concepts de base

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Éléments de programmation et introduction à Java

Initiation à la Programmation Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Introduction au langage Java

DES CONCEPTS OBJET PAR JAVA

TP1 : Initiation à Java et Eclipse

Programmation en Java IUT GEII (MC-II1) 1

Machines Virtuelles. et bazard autour. Rémi Forax

2 Chapitre 1 Introduction

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

La carte à puce. Jean-Philippe Babau

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Généralités sur le Langage Java et éléments syntaxiques.

Annexe : La Programmation Informatique

Programmation répartie RPC & RMI

Rebol, un langage «différent»

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Programmation Orientée Objet

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Programmeur Java 1.4 et 5.0

Cours en ligne Développement Java pour le web

Projet de développement

Remote Method Invocation Les classes implémentant Serializable

Java - RMI Remote Method Invocation. Java - RMI

Java Licence professionnelle CISII,

Introduction à Java. Philippe Genoud.

Etude critique de mécanismes de sécurité pour l architecture Jini

Java c est quoi? Java pourquoi?

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

emuseum PUBLIEZ VOS COLLECTIONS SUR INTERNET Pourquoi choisir emuseum? Intégration facile avec TMS Puissante fonction de recherche

La JVM. La machine virtuelle Java. La JVM. La JVM

Remote Method Invocation en Java (RMI)

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Calcul Parallèle. Cours 5 - JAVA RMI

Langage Java. Classe de première SI

Outils de développement Java sous Linux

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

Introduction aux Machines Virtuelles avec VMKit

L3 informatique TP n o 2 : Les applications réseau

GEI 465 : Systèmes répartis

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Derrière toi Une machine virtuelle!

GPC Computer Science

Les Fondements du langage Java & son évolution actuelle.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Formation IQ JAVA. Formation IQ JAVA V1.1 1

ENSIAS Rapport De Stage BPCS. Rapport de stage. Encadré par : MAREQUAZ Saâd. Réalisé par : Pratic Abdellah

Module BD et sites WEB

Mise en œuvre des serveurs d application

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

Introduction au langage de programmation Java

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Programmation d'applications sur PDA

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Architectures web/bases de données

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Transcription:

Introduction à JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Mais JAVA c est quoi? Langage OO Exécuté dans une Machine Virtuelle Possède un ensemble complet d API (réseau, graphique, sécurité, )

De OAK à JAVA 1993 : Projet Oak (langage pour l'électronique grand public, l électroménager, ) Mai 95 : Netscape prend la licence Sept. 95 : JDK 1.0 b1 Déc. 95 : Microsoft se dit intéressé Janv. 96 : JDK 1.0.1 Fin 96 : RMI, JDBC, JavaBeans,... Fév. 97 : JDK 1.1 JDK 1.2 JDK 1.3

Java n est pas... du HTML, ni même une variante. comparable à des langages de script à la TCL/Tk, Perl et surtout pas à JavaScript n est pas aussi permissif que le C++, plus proche de SmallTalk dans la philosophie. limité au Applet. Il est tout à fait envisageable de réaliser des applications complète, professionnelle (HotJava, NetBean, ELKAR (!), ).

Java est en bref... Orienté objets Interprété Portable Simple Robuste Sécurisé Multi-threads Distribué Rapide (maintenant!) En évolution (ajout d API, exple : JXTA)

Orienté objets (presque) tout est une classe (pas de fonctions, uniquement des méthodes) sauf les types primitifs (int, float, double,...) et les tableaux Toutes les classes dérivent de la classe de base java.lang.object Héritage simple pour les classes (on peut tricher un peu!) Les objets se manipulent via des références (leur nom) La syntaxe est proche de celle de C/C++

Java est portable Le compilateur Java génère du byte code (intermédiaire entre le code machine et le langage). L environnement d exécution du byte code (JVM) est présent sur la plupart des machines actuelles (Amiga, PC, Mac, AS400, RS6000, Unix, ) Java supporte un code source écrit en Unicode (plus vaste que l ASCII).

Java est robuste A l origine, c'est un langage pour les applications embarquées, plus rigoureuse que pour NOUS!!! Gestion de la mémoire par un garbage collector (inspiré du Lisp) Pas d accès direct à la mémoire (pas d allocation dynamique pour les fans!) Mécanisme d'exception dans les cas critiques (accès aux ressources ) Accès à une référence nom conforme et/ou non existante exception. compilateur contraignant (erreur si exception non gérée, si utilisation d une variable non affectée,...). Oblige à une programmation «propre» Tableaux = objets (taille connue, débordement exception).

Java est sécurisé Pour permettre une sécurisation du code mobile. Code certifié par une clé.

Java est multi-thread Intégrés au langage et aux API : synchronized garbage collector dans un thread de basse priorité java.lang.thread, java.lang.runnable Accès concurrents à objet gérés par un monitor. Implémentation propre à chaque JVM -> quelques problèmes. Difficultés pour la mise au point et le portage.

Java est distribué API réseau (java.net.socket, java.net.url,...). Applet. Servlet. Remote Method Invocation.

Les performances La plupart du temps, le byte code est interprété par la JVM. Possibilité de faire de la «compilation à la volée» et même de produire du code compilé (perte de la portabilité) Plusieurs types de génération de code machine :

Les outils Environnements de développement : Sun JDK 1.1.x (compilateur, interpréteur, appletviewer,...) java-mode emacs IDE : Visual Age, Café,Java WorkShop, Jbuilder, Visual J++,... Browsers : Sun HotJava 1.1 Netscape Navigator 3 Internet Explorer 3

Les outils (3) Java Development Kit javac : compilateur de sources java java : interpréteur de byte code appletviewer : interpréteur d'applet javadoc : générateur de documentation (HTML, MIF) jdb : debugger javakey : générateur de clés pour la signature de code rmic : compilateur de stubs RMI rmiregistry : "Object Request Broker" RMI

Les core API 1.0 et 1.1 java.lang : Types de bases, Threads, ClassLoader, Exception, Math,... java.util : Hashtable, Vector, Stack, Date,... java.applet java.awt : Interface graphique portable java.io : accès aux i/o par flux java.net : Socket (UDP, TCP), URL,...

Les core API 1.1 java.lang.reflect : introspection sur les classes et les objets java.beans : composants logiciels java.sql (JDBC) : accès homogène aux bases de données java.security : signature, cryptographie, authentification java.serialisation : sérialisation d'objets java.rmi : Remote Method Invocation

Les autres API Java Server : Servlets Java Commerce : JavaWallet Java Média : 2D, 3D, Animation, Telephony JXTA : Peer 2 Peer