Java 5,  un bilan
Upcoming SlideShare
Loading in...5
×
 

Java 5, un bilan

on

  • 4,714 views

Tareq Abed Rabbo

Tareq Abed Rabbo
Club Atuge Technologies
5/4/2007

Statistics

Views

Total Views
4,714
Views on SlideShare
4,712
Embed Views
2

Actions

Likes
0
Downloads
68
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Java 5,  un bilan Java 5, un bilan Presentation Transcript

  • Java 5,  un bilan Tareq Abed Rabbo Club Atuge Technologies 5/4/2007
  • Plan
    • Java aujourd’hui
    • Méta données : les annotations
    • Les types énumérés
    • Les types génériques
    • JMX
    • Bilan
  • Java, c’est quoi ?
    • Write once, run anywhere
    • Omni présent côté serveur
    • Ecosystème florissant:
      • JCP
      • Open source
  • Evolution de Java 1995 Naissance de Java! Java SE 6 2006 - Scripting Language - JDBC 4.0 - JAXB 2.0 JDK 1.0 1996 - Initial release JDK 1.1 1997 - Java Beans - JDBC - RMI - Inner classes - AWT J2SE 1.2 1998 - Reflection - JIT compiler - Collections - Swing - strictfp Java SE 5.0 2004 - Generics - Metadata - Autoboxing - Enumerations - Varargs - Enhanced for loop - Concurrency utils - JMX J2SE 1.4 2002 - assert - JAXP - regular expression - NIO J2SE 1.3 2000 - HotSpot JVM - JNDI Java SE 7 2008
  • Thèmes de Java 5
    • Faciliter de développement
    • Performance
    • Monitoring & management
    • Desktop
  • Plan
    • Java aujourd’hui
    • Méta données : les annotations
    • Les types énumérés
    • Les types génériques
    • JMX
    • Bilan
  • Annotations
    • Méta données ajoutées aux
    • classes, champs, méthodes, packages, …
    • Utilisées pour indiquer comment le programme doit être traité
    • par les outils et frameworks
    • Génération de « objets » dérivés:
      • descripteurs de déploiements
      • Fichiers java ou class
  • Exemple : JAXB 2 @XmlAccessorType(XmlAccessType. FIELD ) @XmlRootElement(name = &quot;Address&quot;, namespace=&quot;http://www.example.com/&quot;) public class Address { @XmlElement(required = true) private String name; private String city; <Address> <name>aaa</name> <city>bbb</city> </Address>
  • Exemple : JPA @Entity public class User { @Id @GeneratedValue(strategy = GenerationType. SEQUENCE , generator = &quot;seq_id_user&quot;) @SequenceGenerator(name = &quot;seq_id_user&quot;, sequenceName = &quot;seq_id_user&quot;) public Integer getId() { return id; }
  • Anatomie d’une annotation @Target({ TYPE , FIELD , METHOD , PARAMETER , CONSTRUCTOR , LOCAL_VARIABLE }) @Retention(RetentionPolicy. SOURCE ) public @interface SuppressWarnings { String[] value(); }
  • Avantages des annotations
    • Permet une programmation déclarative
      • Facile à modifier
      • On dit ce qu’on veut faire et l’outil génère le code
    • Facilite la maintenance
      • Moins de fichiers à maintenir
      • L’information est dans un endroit unique
    • Adopté par beaucoup de frameworks
      • JAXB 2
      • JPA (Hibernate 3)
      • Spring Framework 2
      • Junit 4
  • Remarques
    • Avant java 5: annotations ad hoc
      • Serializable
      • @deprecated
    • La sur utilisation peut affecter la lisibilité
    • Pas approprié pour les paramètres de configuration
  • Plan
    • Java aujourd’hui
    • Méta données : les annotations
    • Les types énumérés
    • Les types génériques
    • JMX
    • Bilan
  • Les types énumérés
    • Type énuméré : un ensemble défini de valeurs :
    • jours de la semaine, couleurs, ..
    • Avant Java 5 : utilisation de constantes numériques
    • Problèmes:
      • Pas sûr
      • Affichage non informatif (des entiers)
  • Enumération : exemple public enum Status { success , error , inProgress ; } Status status = …; switch (status) { case success : break ; case error : break ; case inProgress : break ; }
  • Plan
    • Java aujourd’hui
    • Méta données : les annotations
    • Les types énumérés
    • Les types génériques
    • JMX
    • Bilan
  • Les types génériques
    • Abstraction permettant de paramétrer une classe, interface
    • ou méthode Java par un ou plusieurs types.
    • Code plus sûr: code compilé avec les generics sans erreurs
    • ou warnings => pas de ClassCastException à l’exécution.
    • Très utile avec les collections
  • Génériques : Exemple Vector v = new Vector(); v.add( new String(&quot;abc&quot;); v.add( new Integer(4)); String s = (String)v.get(1); ClassCastException
  • Génériques : Exemple Vector <String> vs = new Vector <String> (); vs.add( new String(&quot;hello&quot;)); vs.add( new Integer(5)); // Erreur de compilation! String s = vs.get(0); // Pas de casting
  • Plan
    • Java aujourd’hui
    • Méta données : les annotations
    • Les types énumérés
    • Les types génériques
    • JMX
    • Bilan
  • JMX
    • Java Management Extensions
    • Management:
      • Modifier la configuration
      • Déclencher des actions
    • Monitoring:
      • Statistiques
      • Notifications d’erreurs
  • JMX et Java 5
    • Java 5 inclut JMX
    • Monitoring du JVM via JMX:
      • Utilisation mémoire
      • Activités threads
      • Garbage Collector
    • Jconsole : client JMX standard
  • Jconsole
  • Plan
    • Java aujourd’hui
    • Méta données : les annotations
    • Les types énumérés
    • JMX
    • Les types génériques
    • Bilan
  • Bilan
    • Une version majeur
    • Un pas dans le bon sens
    • Java arrive à maturité