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



Documents pareils
Introduction à Java. Philippe Genoud.

Chapitre I Notions de base et outils de travail

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

Vulgarisation Java EE Java EE, c est quoi?

Annexe : La Programmation Informatique

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

TP1 : Initiation à Java et Eclipse

Programmeur Java 1.4 et 5.0

Projet de Veille Technologique

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

TP1 : Initiation à Java et Eclipse

TP1. Outils Java Eléments de correction

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

Java Licence Professionnelle CISII,

Initiation à JAVA et à la programmation objet.

CAHIER DES CHARGES D IMPLANTATION

Traitement de données

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

Cours 1: Java et les objets

Remote Method Invocation (RMI)

Java - la plateforme

Programmation Orientée Objet

Java pour le Web. Cours Java - F. Michel

Eclipse atelier Java

Installation et prise en main

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

La technologie Java Card TM

Éléments de programmation et introduction à Java

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

INITIATION AU LANGAGE JAVA

Systeme d'exploitation

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

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

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

Guide d installation JMap 5.0

Machines Virtuelles. et bazard autour. Rémi Forax

Le Framework.Net. Introduction. Pourquoi.Net?

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

LES ACCES DISTANTS ET SECURISES. Installation et utilisation du client. Cisco AnyConnect VPN Client. pour Windows

java : Langage et Environnement

Bases Java - Eclipse / Netbeans

Service de lettre électronique sécurisée de bpost. Spécificités techniques

Java 7 Les fondamentaux du langage Java

Java Licence professionnelle CISII,

Utiliser Java sans BlueJ

RMI le langage Java XII-1 JMF

Sessions en ligne - QuestionPoint

as Architecture des Systèmes d Information

La carte à puce. Jean-Philippe Babau

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

Machine virtuelle Java pour Palm TX

Java au cœur de la base de données Oracle

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

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

Une introduction à Java

Manuel logiciel client Java

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

TD/TP 1 Introduction au SDK d Android

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Présentation de Java. Olivier de Pertat IT GROUP

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Web Tier : déploiement de servlets

Évaluation et implémentation des langages

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

Quick Start Installation de MDweb version 2.3

Configuration requise pour l utilisation de la plateforme EnlightKS Online Certification Management Services ET2.13 Juin 2011

Concept de machine virtuelle

Utilisation de Jakarta Tomcat

Cahier des charges (CDC)

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

et de suivi de la corpulence des enfants

Introduction à Eclipse

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Java c est quoi? Java pourquoi?

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

Clear2Pay Belgium SA Solution B-web V4 Procédure d installation. Solution B-web V4. Procédure d installation. Clear2Pay Belgium SA Page 1 de 18

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

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Introduction au langage Java

SGDN. Projet: JAVASEC

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

TP, première séquence d exercices.

Programmer en JAVA. par Tama

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

Java DataBaseConnectivity

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Programmation Orientée Objets Le Langage JAVA

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

Machines virtuelles Cours 1 : Introduction

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Point sur les solutions de développement d apps pour les périphériques mobiles

Transcription:

1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit ainsi : c est à la fois : Un langage de programmation Une plate-forme = environnement logiciel dans lequel les programmes java s'exécutent : une machine virtuelle : la JVM ( Virtual Machine) des APIs (Application Programming Interfaces) «: a simple, object-oriented, distributed, robust, secure, architecture neutral, portable, highperformance, multithreaded, and dynamic language» * White Paper :The Language Environment - James Gosling, Henry McGilton - May 1996 http://java.sun.com/docs/white/langenv/ 3 4 Principales caractéristiques simple et orienté objet portable (indépendant d une architecture ou d un OS) robuste et sécurisé dynamique et multithreaded : Principe de fonctionnement 5 6 Janvier 2012 1

: Principe de fonctionnement public class HelloWorld{ System.out.println(""); Compilation : javac javac Fichier Exécution (JVM) : java HelloWorld java 7 Un langage compilé / interprété Compilation d'un programme JAVA : génération de byte-code System.out.println(""); Code source javac Le byte-code est : proche d'un langage machine indépendant de la plateforme d'exécution (matériel + OS) 0110001 0010100 1100001 1110110 0100...... byte-code 8 La machine virtuelle Exécution d'un programme compilé Le byte-code assure la portabilité des programmes : Langage d'une Machine Virtuelle A l'exécution, un interpréteur simule cette machine virtuelle javac java VM La machine virtuelle java Principes de fonctionnement Chargement chargement sélectif et dynamique des classes vérification statique du code (tentatives de modification de la machine virtuelle,...) Protection lors de l'exécution Le "security manager" possède un droit de veto (accès "sauvages" au système de fichiers,...) Cette protection peut-être modulée.java source.class byte-code VM VM Sun Sparc Solaris Linux 9.class 10 Performances Exécution d'un programme le code est compact, le chargement des classes nécessaires est sélectif et dynamique,... mais est semi-interprété (pas exécuté directement sur la machine : JVM) Palier aux lenteurs de l'interprétation utilisation d un JIT (compilateur «Just-in-Time») compilation à la volée du byte-code réutilisation du code déjà compilé intégration du JIT HotSpot dans JVM depuis version 1.3 Performance of versus C++ J.P.Lewis and Ulrich Neumann (http://www.idiom.com/%7ezilla/computer/javacbenchmark.html) 11 La plateforme Plateforme = Environnement matériel et/ou logiciel dans lequel un programme s'exécute. La plus part des plateformes sont la combinaison d'un OS et du matériel sous-jacent (MS Windows + Intel, Linux + Intel, Solaris + Sparc, Mac Os X + Power PC) La plateforme est entièrement logicielle et s'exécute au dessus des plateformes matérielles API (Application Programming Interface) : Bibliothèques standards sur lesquelles le programmeur peut s'appuyer pour écrire son code. http://docs.oracle.com/javase/6/docs/api/ 12 Janvier 2012 2

La plateforme API API http://docs.oracle.com/javase/6/docs/api/ (très) vaste collection de composants logiciels (classes et interfaces) fournissant de nombreuses fonctionnalités (> 6000 classes) organisée en bibliothèques (packages) offre de nombreux services de manière standard (indépendamment de la plateforme matérielle) API http://docs.oracle.com/javase/6/docs/api/ Programmer en nécessite une bonne connaissance de l'api. Attention à la courbe d'apprentissage («learning curve») qui peut être longue 13 14 Pour résumer JVM APIs Language Références «- tête la première» Kathy Sierra, Bert Bates,1re édition, O Reilly, septembre 2004 «Cahiers du Programmeur - - 1.4 et 5.0» Emmanuel Puybaret, Eyrolles, mars 2006 «Introduction à», 2e édition Pat Niemeyer et Jonathan Knudsen, O Reilly, déc. 2002 «Au coeur de 2 - Volume 1 : Notions fondamentales» Cay S. Horstmann, Gary Cornell, CampusPress, nov. 2003 «Thinking in», Bruce Eckel - Prentice-Hall ( www.bruceeckel.com, www.penserenjava.free) «JAVA in a nutshell, 5th Edition», David Flanagan - O'Reilly 2005 15 16 Références URLs http://java.sun.com Site officiel de SUN JDK, Tutoriels, Documentations, spécifications, http://www.javaworld.com Magazine électronique http://www.jguru.com, http://www.jdance.com Sites dédiés à la technologie java applets, applications, notes techniques, forums de discussions www.developpez.com des tutoriels, des FAQ, des ressources. http://penserenjava.free.fr une traduction du livre de BruceEckel «Thinking in» 17 18 Janvier 2012 3

Prérequis Pour pouvoir écrire un programme il faut au moins : The SE Development Kit 6 (JDK 6) un éditeur de texte Remarque : Un plugin pour navigateur ne suffit pas : il ne contient que la JRE ( Runtime Environment) 19 Premier programme : 3 étapes 1. Codage Création du fichier source 2. Compilation Compilation du fichier source en 3. Exécution Utilisation de la JVM locale pour exécuter le fichier 20 1- Codage (exemple pas très objet ) 1 Tout code java doit être défini à l intérieur d une classe 1- Codage (exemple pas très objet ) Le point d'entrée pour l'exécution est la méthode main() System.out.println(""); le mot clé public définit la 4 visibilité de la classe fait la différence majuscule/minuscules HelloWorld helloworld 2 3 La description de la classe est effectuée à l'intérieur d'un bloc { Le code de la classe doit être enregistré dans un fichier de même nom (casse comprise) que la classe : 21 System.out.println(""); le mot clé static signifie que main est une méthode de classe Une application doit contenir au moins une méthode main 22 1- Codage (exemple pas très objet ) System.out.println(""); Utilisation de la classe System inclue dans l API standard pour l affichage. Le code 2. Compilation Compilation du fichier source en Dans un terminal Dans /home/jules/poo/, utilisation du programme javac («java compiler») : jules@turing:~/poo$ ls jules@turing:~/poo$ javac jules@turing:~/poo$ ls jules@turing:~/poo$ 23 24 Janvier 2012 4

3. Exécution Exécution de dans la JVM Dans /home/joe/, le programme java lance la JVM sur le fichier.class passé en paramètre (sans l extension.class) Dans un terminal : jules@turing:~/poo$ java HelloWorld jules@turing:~/poo$ Résumé La technologie : un langage de programmation orienté objet une machine virtuelle : JVM. des APIs, notamment l API standard Programmer en java : Il faut au moins définir une classe. La méthode main est le point d entrée du programme. Les programmes javac et java permette de compiler et exécuter. 25 26 2 types de programmes Les Applications indépendantes Programmes autonomes (stand-alone) Les Applets Programmes exécutées dans l environnement d un navigateur Web et chargés au travers de pages HTML Seuls diffèrent les contextes d'invocation et d exécution Les droits des applets et des applications ne sont pas les mêmes 27 28 Application indépendante L application est définie par un ensemble de classes dont une jouera le rôle de classe principale La compilation de la classe principale entraîne la compilation de toutes les classes utilisées javac make Pour exécuter l'application on indique à l'interpréteur java le nom de la classe principale java charge les classes nécessaires au fur et à mesure de l'exécution (sélectif et dynamique) 29 Application indépendante Chaque application doit posséder une classe principale classe possédant une méthode de signature public static void main(string[] args) Tableau de chaînes de caractères (équivalent à argc, argv du C) Cette méthode sert de point d entrée pour l exécution l exécution de l application démarre par l interprétation de cette méthode ex : java applivisage1 Exécute le code défini dans la méthode main contenue dans le fichier applivisage1.class 30 Janvier 2012 5

Applet La classe principale ne possède pas de méthode main() Hérite de java.awt.applet ou javax.swing.japplet Son byte-code réside sur un serveur http Elle est véhiculée vers un client http (navigateur Web) via une page html qui contient son url Lorsqu un navigateur compatible (avec sa propre machine virtuelle java (JVM)) reçoit cette page HTML, il télécharge le code de la classe et l exécute sur le poste client l applet doit posséder un certain nombre de méthodes pour permettre cette exécution : Applet : Principe de fonctionnement init(), start(), stop(), paint(), destroy() 31 32 1ère séance de TP Utilisation depuis ligne de commande des outils de base pour le développement d'applications Compilation : javac Exécution : java (applications) appletviewer (applets) Documentation javadoc Archivage jar 1ère séance de TP Pourquoi ne pas utiliser tout de suite un environnement de développement intégré? (ou IDE pour Integrated Development Environment) Être capable de travailler avec quelque soit l'environnement Comprendre des mécanismes parfois masqués par des environnements intégrés (ex. CLASSPATH) Open-source et/ou freeware 33 34 Janvier 2012 6