Dimension: px
Commencer à balayer dès la page:

Download "http://www.ed-diamond.com"

Transcription

1 Ceci est un extrait électronique d'une publication de Diamond Editions : Ce fichier ne peut être distribué que sur le CDROM offert accompagnant le numéro 100 de GNU/Linux Magazine France. La reproduction totale ou partielle des articles publiés dans Linux Magazine France et présents sur ce CDROM est interdite sans accord écrit de la société Diamond Editions. Retrouvez sur le site tous les anciens numéros en vente par correspondance ainsi que les tarifs d'abonnement. Pour vous tenir au courant de l'actualité du magazine, visitez : Ainsi que : et

2 News Par :: Jean-Baptiste Onofré Les nouveautés de Java 1.5 Tiger 12 Depuis ses débuts, le langage Java n a cessé d évoluer et introduit beaucoup de nouvelles fonctionnalités surtout du côté serveur avec J2EE. Aujourd hui, c est une évolution majeure qui voit le jour avec la sortie de la nouvelle version du langage : Java 1.5, nom de code «Tiger». Cette nouvelle version rassemble des API développées précédemment en dehors du JDK et introduit des nouvelles notations et techniques de programmation. Faisons ensemble un tour d horizon des nouveautés de cette nouvelle version. Les motivations de Java 1.5 Les motivations de Java 1.5 peuvent se résumer en quatre points : Facilité de développement. Performance et évolutivité. Monitoring et manageabilité. Client desktop. Le JCP (Java Community Process) a établi une liste de 15 spécifications JSR regroupant plus de 100 changements majeurs dans le langage. On remarque bien l importance de cette nouvelle version à la fois dans ses fonctionnalités pour le développeur mais aussi pour l utilisateur final. Nouveautés du langage pour faciliter le développement Nous allons voir ici les nouveautés du langage qui facilitent la vie du développeur. Ces nouveautés sont : Les types génériques. Les metadatas. L autoboxing. La nouvelle notation des iterators (loop). Les types énumérés. Les imports statiques. Le format d écriture des entrées/ sorties «à la C». Les arguments variables. Les utilitaires de concurrence. La génération d interface RMI simplifiée. Ces changements sont regroupés dans trois spécifications JSR : JSR-201 regroupe la nouvelle notation des iterators, les types énumérés, les imports statiques et l autoboxing. JSR-175 présente les spécifications des metadatas. JSR-14 décrit les types génériques. Commençons la description de chaque nouveauté. Metadatas La fonctionnalité metadata permet d associer des données additionnelles à des classes, des interfaces, des méthodes ou des attributs Java. Ces données additionnelles, appelées "annotations", peuvent être lues par le compilateur Javac (ou d autres outils) et peuvent être stockées dans le fichier class et être appelées à l exécution grâce à l API de réflexion Java. Grâce aux metadatas, la plate-forme Java permet à des outils tiers d utiliser la même infrastructure commune et donc de réduire les efforts pour le développement et le déploiement. Un outil peut utiliser les metadatas pour générer du code source supplémentaire ou pour fournir des informations de débuggage par exemple. C est une forme de Attribute Oriented Programmation comme le fait XDoclet sur les tags JavaDocs. D ailleurs Java 1.5 fournit un processeur d annotation appelé «apt». Apt inclut un ensemble de nouvelles API de réflexion et supporte l infrastructure pour gérer les annotations. Grâce aux metadatas (et apt), de nombreuses étapes de répétition de code peuvent être remplacées par des tags. Par exemple, l interface Remote nécessaire lorsque vous accédez à un service JAX-RPC peut être générée avec les metadatas : public class Ping { void ping() { Alors qu en Java 1.4, on aurait dû déclarer notre interface explicitement :

3 Les nouveautés de Java 1.5 Tiger public interface PingI extends Remote { public void ping() throws RemoteException; public class Ping implements PingI { public void ping() { Types génériques Les types génériques sont tout particulièrement utiles dans les collections. L API Collection fournit différents types de listes comme les LinkedList, les ArrayList ou les HashMap qui peuvent être utilisées pour stocker différents types d objets. Par exemple, avec Java 1.4, pour créer une liste et stocker un objet à l intérieur, il faut faire : ArrayList list = new ArrayList(); int total = ((Integer)list.get(0)).intValue(); Le cast de la dernière ligne est un cast de type qui va pouvoir être évité avec les types génériques. Le problème vient du fait que l API Collection de Java 1.4 utilise la classe «object» pour le stockage de la Collection, ce qui signifie que le type ne peut pas être déterminé au moment de la compilation. Si par exemple, vous attendez un objet de type Integer, vous allez caster avec (Integer), mais si l objet inséré n est pas de type Integer (ce qui est tout à fait possible puisque tous les objets en Java héritent de la classe object), vous aurez une ClassCastException à l exécution. Désormais avec les types génériques, vous n avez plus besoin de caster et vous êtes sûrs que votre liste contient bien que des objets du type que vous attendez : int total = list.get(0).intvalue(); Le développeur a juste à préciser le type avec la notation <>. Les casts de type ne sont plus nécessaires et désormais, si par exemple vous essayez d insérer un objet String dans cette liste, l erreur sera détectée au moment de la compilation (et pas à l exécution). Vous pouvez également définir vos propres API utilisant les types génériques. Pour cela, le mieux est de commencer par jeter un oeil à l implémentation de java. util.collection. Autoboxing et auto-unboxing des types primitifs La conversion entre types primitifs (comme int, boolean, etc. et leur équivalent object comme Integer, Boolean, etc.) peut nécessiter du code supplémentaire tout spécialement dans un contexte de Collection. L autoboxing et l auto-unboxing des types primitifs permet de réduire significativement la quantité de code à écrire pour les conversions. Typiquement, voilà le code qu il fallait fournir pour la conversion de Integer vers int : int total = (list.get(0)).intvalue(); On remarque que pour l ajout dans la liste, on doit explicitement créer l objet avec new Integer et que pour la récupération de la valeur, on fait appel à intvalue pour revenir au type int. Grâce à l autoboxing, ces manipulations sont faites automatiquement : list.add(0, 42); int total = list.get(0); Les new Integer et intvalue ont disparu :). Nouveau iterator La classe Iterator est très utilisée dans l API Collection. Elle fournit un mécanisme pour itérer dans une collection. La nouvelle notation remplace l itérateur quand vous voulez simplement traverser une collection. Le compilateur génère un code d itération nécessaire ainsi que les casts nécessaires. Avec Iterator de Java 1.4, on fait : for(iterator i = list.iterator(); i.hasnext();) { Integer value = (Integer)i.next(); A présent, on a une nouvelle notation pour itérer : for(integer i:list) {... Types énumérés Un nouveau type voit le jour : enum. Il vous permet de stocker une énumération de constantes (statiques et finales) : public enum FeuDeSignalisation { rouge, orange, vert ; Import statique L import statique vous permet de référencer une constante statique d une classe sans avoir besoin d hériter de la classe. Par exemple, à la place de faire BorderLayout.CENTER chaque fois que vous ajoutez un component, vous pouvez directement faire CENTER : import static java.awt.borderlayout.*; getcontentpane().add(new JPanel(), CENTER); Sorties formatées A présent, les développeurs peuvent utiliser les sorties formatées comme avec la fonction printf du langage C. La majorité des formatés du langage C est présente, plus quelques spécifiques à Java notamment pour les Dates et les BigInteger. Vous pouvez vous référer à la classe java.util.formatter. Le caractère Unix \n est bien sûr accepté mais pour des raisons de portabilité, il est recommandé d utiliser le standard Java %n. System.out.printf( Newline %n ); System.out.printf( %s %5d%n,user,total); Entrées formatées Comme nous avons les sorties formatées «à la C», nous avons l équivalent côté entrées. Java 1.5 fournit une API Scanner qui permet de lire des données à partir de la console ou de n importe quel flux d entrée. Les méthodes next et nextint sont bloquantes si aucune donnée n est récupérée : Scanner s = new Scanner(System.in); String param = s.next(); int value = s.nextint(); s.close(); Arguments variables Les arguments variables sont une fonctionnalité permettant de passer des arguments multiples comme paramètre de méthodes. Il suffit d utiliser la notation... pour que la méthode accepte une liste d arguments et utilise un nombre aléatoire d arguments. Ainsi, il n est plus nécessaire de fixer le nombre d arguments : void argumentreader(object... args) { for(int i = 0; i < args.length; i++) { System.out.println(args[i].toString()); argumentreader( Hello, World ); Utilitaires de gestion de concurrence Le développement de l API de gestion de concurrence a débuté avant le Roadmap de Java

4 News 14 En effet, cette API est décrite dans la spécification JSR-166 dirigée par Doug Lea. Elle a donc été tout naturellement incluse dans la Java 1.5. Cette API permet une abstraction du modèle de thread Java incluant les executors, un framework de thread task, des files d attente de threads, les timers, les locks (atomiques ou pas) et des primitives de synchronisation. Ainsi la programmation de sémaphores est facilitée. Par exemple, désormais il est possible de faire un wait sur un sémaphore permettant de contrôler l accès à un bloc de code. Les sémaphores sont plus souples et peuvent permettre l accès à plusieurs threads concurrents (bien sûr, il faut que vous testiez le lock avant de l acquérir dans vos threads, ça ne se fait pas encore tout seul :)). Je vous invite à regarder le package java.util.concurrent pour plus d informations : final private Semaphore s = new Semaphore(1, true); int balanceaccount = 1000; s.acquireuninterruptibility(); // si vous ne voulez pas de bloquage, vous pouvez utiliser s.acquire() à la place. Ici, tant qu on obtient pas le lock, on attend. try { // on rentre en section critique, ce block est locké // et donc protégé balanceaccount = balanceaccount + 10; finally { s.release(); // on rend le lock disponible Il était une fois RMIC Lorsque vous faites de la programmation RMI (Remote Method Invocation), vous avez le mécanisme que j avais expliqué dans l article «Jboss»[1] : génération du stub côté client qui est un proxy embarquant les fonctionnalités réseau, transfert réseau, skeleton côté serveur qui est la même chose que le stub mais côté serveur. Dans un contexte J2EE, c est le serveur d application qui s occupe de la génération des stubs et des skeletons. Mais lorsque vous faites du RMI hors contexte J2EE, il vous faut générer le stub de votre côté (le côté client). Pour cela, vous deviez faire appel à RMIC qui était un outil de compilation RMI. Désormais, avec l utilisation des proxies dynamiques, vous n avez plus besoin de RMIC : les informations fournies dans le stub peuvent désormais être découvertes à l exécution. Performances, évolutivité et management Amélioration des performances On reproche souvent à Java sa lenteur et sa consommation ressource (même si les choses se sont beaucoup améliorées depuis Java 1.2). Java 1.5 s est fixé des objectifs de performance sans équivalent et notamment au lancement. Une nouveauté intéressante est l introduction du partage des données de classe entre JVM. Cette technologie permet à plusieurs JVM de partager les mêmes données read-only, mais aussi de permettre un démarrage plus rapide en permettant le pre-packaging des classes bas niveau de la JVM. Ainsi les nouvelles JVM créées utilisent des données déjà chargées en mémoire et sont donc plus rapides. De nouvelles options de paramétrage du heap Java voient également le jour dans Java 1.5. Désormais, deux nouveaux paramètres permettent de spécialiser le comportement de la JVM en fonction de l application : Le Maximum Pause Time Goal (option -XX:MaxGCPauseMillis=nnn) représente le temps d arrêt de l application lorsque le Garbage Collector est appelé. Si le Garbage Collector met plus de temps que le Maximum Pause Time Goal pour s exécuter, ce dernier est arrêté et l application reprend la main. Le Throughput Goal (option -XX: GCTimeRatio=nnn) mesure le temps occupé par le Garbage Collector par rapport au temps total. Ainsi, vous pouvez limiter le temps passé en Garbage Collection (le ratio est calculé par 1/(1 + nnn)). Ainsi, si vous précisez un ratio de 19 (- XX:GCTimeRatio=19), cela signifie qu au maximum, vous allez passer 5% du temps d exécution dans le Garbage Collector. Monitoring et management Je vous avais déjà présenté JMX (Java Management extension, spécification JSR-160) dans l article sur JBoss. JMX permet de monitorer et manager des périphériques ou applications JMX-compliants. Désormais, JMX est directement inclus dans la JVM ce qui vous permet de monitorer et de manager la JVM elle-même. Dans la plate-forme Java, le monitoring et le management sont un des points clef de ce qu on appelle RAS : Reliability, Availability, Serviceability. Désormais, vous disposez d une API dédiée au monitoring et au management. Vous pouvez donc monitorer/manager votre JVM directement dans du code ou en utilisant un adaptateur JMX (client distant ou console Web). Par exemple, nous pouvons démarrer une JVM avec le support d une console JMX sur un port donné : java -Dcom.sun.management.jmxremote.port=5001 -Dcom.sun. management.jmxremote.ssl=false -Dcom.sun.management.jmxremote. authenticate=false -jar Java2Demo.jar Une autre possibilité est de monitorer directement dans votre code. Voilà comment afficher l usage détaillé du heap de la JVM : import java.lang.management.*; import java.util.*; public class MemoryUsage { public static void main(string args[]) { List<MemoryPoolMXBean> pools = ManagementFactory. getmemorypoolmxbeans(); for(memorypoolmxbean p: pools) { System.out.println( Memory type = + p.gettype() + / Memory usage = + p.getusage()); Profiling Java 1.5 inclut une API de profiling appelée JVMTI. Cette API est spécifiée dans la JSR-163, l objectif initial était de refondre les interfaces de profiling. Au final, l API couvre beaucoup d autres choses comme le profiling, le debugging et des outils d analyse de code. L implémentation inclut un mécanisme d instrumentation du bytecode appelé JPLIS (Java Programming Language Instrumentation Services) qui permet à des outils d analyse d ajouter du profiling uniquement lorsque c est nécessaire. L avantage de cette technique est de se focaliser uniquement sur les analyses et de ne pas avoir d interférences d outils de profiling de la JVM. L instrumentation peut être générée à l exécution ou au chargement de classe. L exemple suivant crée une instrumentation qui peut charger une version modifiée d une classe à partir du disque. Pour lancer ce test, exécuter java -javaagent=mybci BCITest : [1] Jean-Baptiste Onofré, «Jboss» in Linux magazine 60.

5 Les nouveautés de Java 1.5 Tiger // fichier mybci.java import java.lang.instrument.instrumentation; public class mybci { private static Instrumentation copy; public static void premain(string options, Instrumentation instrumentation) { copy = instrumentation; public static Instrumentation getinstrumentation() { return copy; // fichier BCITest.java import java.nio.*; import java.io.*; import java.nio.channels.*; import java.lang.instrument.*; public class BCITest { public static void main(string args[]) { try { OriginalClass mc = new OriginalClass(); mc.message(); FileChannel fc = new FileInputStream(new File( modified +File.separator+ OriginalClass.class )). getchannel(); ByteBuffer buf = fc.map(filechannel.mapmode.real_only, 0, (int)fc.size()); byte[] classbuffer = new byte[buf.capacity()]; buf.get(classbuffer, 0, classbuffer.length); mybci.getinstrumentation().redefineclasses(new ClassDefinition[] { new ClassDefinition(mc.getClass(), classbuffer) ); mc.message(); catch(exception e) { // fichier OriginalClass.java // la version d origine est compilé dans le répertoire courant // Copier la source dans un répertoire modified, modifier le message et recompilez // la classe sera rechargé dynamiquement :) public class OriginalClass { public void message() { System.out.println( OriginalClass ); Par exemple, vous pouvez envoyer un mail lorsque la JVM s arrête ou lancer gdb (%p représente le processus ID ) : java -XX:OnError= mail -s JVMERROR jb@nanthrax.net ERROR java -XX:OnError= gdb %p Client desktop La première chose que l on remarque lorsqu on lance une application graphique avec Java 1.5, c est la rapidité de chargement. De nombreuses améliorations de performances ont été faites au niveau des API graphiques. Désormais, le toolkit Swing propose un nouveau thème appelé «Ocean» et supporte en natif les thèmes GTK et Windows XP. Sur Linux, Solaris et Windows, on dispose de l accélération OpenGL native (si la carte vidéo le supporte) en utilisant une propriété de lancement : java -Dsun.java2d.opengl=true -jar Java2D.jar Autre innovation de taille, désormais le toolkit AWT de Java (celui utilisé par défaut et par toutes les API graphiques) est basé sur X11 (et non plus Motif) et de plus, AWT supporte le protocole XDnD de X11, ce qui vous permet de faire du drag and drop avec d autres applications X11 comme OpenOffice ou Firefox. Au niveau JDBC, cinq nouvelles classes de RowSet ont été implémentées. Les deux plus intéressantes sont CachedRowSet et WebRowSet. Les objets de type RowSet, à l inverse des objets de type ResultSet, peuvent manipuler les données sans être obligatoirement connectés à la base de données (ou à une autre source de données). Ainsi, l utilisation des RowSet est moins gourmande en ressources puisqu on ne tient pas la connexion à la base. Ils sont donc plus performants que les «classiques» ResultSet. Un CachedRowSet stocke les collections de lignes en mémoire, et si nécessaire, il peut être synchronisé avec la base. D un autre côté, un WebRowSet stocke les collections de lignes au format XML. Voilà un exemple utilisant un WebRowSet : Class.forName( org.postgresql.driver ); WebRowSetImpl wrs = new WebRowSetImpl(); wrs.setcommand( select username from users ); wrs.setusername( postgres ); wrs.setpassword( postgres ); wrs.seturl( jdbc:postgresql://localhost/dbname ); wrs.execute(); // exécute la requête et stocke le résultat dans le RowSet wrs.absolute(1); // retourne le pointeur au début du RowSet wrs.writexml(system.out); // export le RowSet sous forme XML wrs.close(); 15 Amélioration des diagnostics Lorsqu une exception survenait, le code classique consistait à faire un affichage de la pile pour remonter à l origine de l erreur (avec la méthode getstacktrace()). Mais, lorsqu on ne met pas en place d API de logging et qu on a plus de console d ouverte, il est parfois difficile de récupérer ces traces. Java 1.5 a introduit deux nouvelles méthodes : getstacktrace et Thread.getAllStackTraces permettent de récupérer ces traces grâce à du code : StackTraceElement e[] = Thread.currentThread(). getstacktrace(); for(int i = 0; i < e.length; i++) { System.out.println(e[i]); System.out.println( \n +Thread.getAllStackTraces()); Désormais la JVM inclut un handler d erreur qui peut être lancé lorsque la JVM s arrête de manière non conforme (avec l option -XX:OnError=). Autres nouveautés Java 1.5 s est mis à la page concernant le support du XML avec notamment : Support de XML 1.1 avec les namespaces. Support des schémas XML. Support de SAX et DOM level 3. Nouveau compilateur XSL plus performant. De nouveaux caractères ont été également ajoutés en vue du support de Unicode 4.0. Références Sun.net. Conclusion Java 1.5 est une version majeure de Java. Il n y a pas vraiment de nouveaux concepts révolutionnaires mais beaucoup de nouveautés simplifiant la vie du développeur. De plus, les performances sont au rendezvous. Les développeurs ne s y sont pas trompés puisque, par exemple, JBoss 4 est développé avec Java 1.5 ainsi que Apache Geronimo 1.0M3.

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

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

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

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

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Calcul Parallèle. Cours 5 - JAVA RMI

Calcul Parallèle. Cours 5 - JAVA RMI Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 ) P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes

Plus en détail

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)

Plus en détail

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

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Traitement de données

Traitement de données Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Remote Method Invocation en Java (RMI)

Remote Method Invocation en Java (RMI) Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

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

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

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

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 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

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Java 1.5 : principales nouveautés

Java 1.5 : principales nouveautés Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés

Plus en détail

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 5 Le projet WTP (Web

Plus en détail

Intergiciel - concepts de base

Intergiciel - concepts de base Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques

Plus en détail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

Plus en détail

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Machines Virtuelles. et bazard autour. Rémi Forax

Machines Virtuelles. et bazard autour. Rémi Forax Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Gestion distribuée (par sockets) de banque en Java

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Introduction : les processus. Introduction : les threads. Plan

Introduction : les processus. Introduction : les threads. Plan IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres

Plus en détail

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

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Java c est quoi? Java pourquoi?

Java c est quoi? Java pourquoi? Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

[APPLICATON REPARTIE DE VENTE AUX ENCHERES] 2012 Polytech Nice- Sophia El Hajji Khalil Yousfi Hichem SI4 - Log [APPLICATON REPARTIE DE VENTE AUX ENCHERES] Sommaire Architecture de l application... 3 Le Serveur... 3 Le Client... 4 Passage en CORBA...

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011

Java RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011 Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau

Plus en détail

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

Plus en détail

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été

Plus en détail

Module.NET 3 Les Assemblys.NET

Module.NET 3 Les Assemblys.NET Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly

Plus en détail

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object Facultés Universitaires Notre-Dame de la Paix Conception et Programmation Orientées- Object 2008-2009 RÉSUMÉ PRATIQUE... 4 CLASSE OBJET... 4 NOTION D HÉRITAGE... 4 LE POLYMORPHISME... 5 LES CLASSES ABSTRAITES...

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Utiliser Java sans BlueJ

Utiliser Java sans BlueJ Conception objet en Java avec BlueJ une approche interactive Utiliser Java sans BlueJ Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec BlueJ une approche

Plus en détail

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 SAS Cost and Profitability Management, également appelé CPM (ou C&P), est le nouveau nom de la solution SAS Activity-Based Management. Cette version

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

Plus en détail

Présentation de Java. Olivier de Pertat IT GROUP

Présentation de Java. Olivier de Pertat IT GROUP Présentation de Java Olivier de Pertat IT GROUP Qu'est-ce que Java? Un langage de programmation orienté objets Une architecture de Virtual Machine Un ensemble d'api variées Un ensemble d'outils : le Java

Plus en détail

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven TRAVAIL RÉALISÉ PAR ABED ABDERRAHMANE Oracle Developer Suite 10g Guide de l installation 10g Release 2 (10.1.2) pour Windows Vista & Seven www.oraweb.ca Page 1 TABLE DES MATIÈRES : PARTIE 1 : CONCEPTS

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. Université Paris 7 M2 II Protocole Internet TP3 Mail Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose. 1 Protocole SMTP 1. Le protocole SMTP est définit dans

Plus en détail

Conception de serveurs d'applications ouverts

Conception de serveurs d'applications ouverts Conception de serveurs d'applications ouverts Stéphane Frénot 3 Un modèle d'exécution standard Application Stéphane Frénot 4 1 Répartition "horizontale" d'une application Application de Présentation Application

Plus en détail

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

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java Université Catholique de Louvain Faculté des Sciences Appliquées Département d Ingénierie Informatique Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Plus en détail

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

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

La JVM. La machine virtuelle Java. La JVM. La JVM La machine virtuelle Java Historique et rappels Organisation mémoire de la JVM Le garbage collector Le bytecode, la machine à pile. Les threads Suivi, tracé, optimisation d un programme Java JVM embarquées

Plus en détail

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

Java au cœur de la base de données Oracle 32 Tips&techniques Philippe Daucourt, HEG Haute école de gestion Arc Java au cœur de la base de données Oracle Depuis la version 8i, Oracle embarque une machine virtuelle Java (JVM) au cœur de sa base

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

2 Chapitre 1 Introduction

2 Chapitre 1 Introduction 1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13

Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13 Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013 Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail