SlideShare une entreprise Scribd logo
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é

Contenu connexe

PPT
L'écosystème Java
PPTX
Back to the future of java (from 8 to 11 and beyond)
PDF
Support POO Java première partie
PPT
Drools et les moteurs de règles
PPTX
Intelligence artificielle
PPTX
Workshop Spring - Session 1 - L'offre Spring et les bases
PPTX
3 t drools
PPTX
Ces outils qui vous font gagner du temps
L'écosystème Java
Back to the future of java (from 8 to 11 and beyond)
Support POO Java première partie
Drools et les moteurs de règles
Intelligence artificielle
Workshop Spring - Session 1 - L'offre Spring et les bases
3 t drools
Ces outils qui vous font gagner du temps

Similaire à Java 5, un bilan (20)

PDF
0251-formation-java-programmation-objet.pdf
PPT
Trivial Java Second
PPTX
Seance_1_cours_introduction_java_Copie.pptx
PDF
Programmation Java
PDF
Framework Spring_ In!!!!!!!troduction.pdf
PDF
Formation JAVA (1)
PPT
Java programmation OO, héritage et polymorphisme
PPTX
Jpa(1)
PDF
CHOUGDALI_Cours_Java.pdfjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
DOCX
Améliorations dans Java depuis la version 5
PDF
JAVA Chapitre1
PDF
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
PPT
XB-Java.ppt
PDF
Annotations Java par Olivier Croisier
PDF
Devoxx France 2023 - Les nouveautés de Java 19 et 20
PDF
Applications Android - cours 4 : Langage Java
PPTX
Introduction a Java
PPTX
Aperçu de java EE 5
PPT
Trivial Java Second
PDF
Cours java
0251-formation-java-programmation-objet.pdf
Trivial Java Second
Seance_1_cours_introduction_java_Copie.pptx
Programmation Java
Framework Spring_ In!!!!!!!troduction.pdf
Formation JAVA (1)
Java programmation OO, héritage et polymorphisme
Jpa(1)
CHOUGDALI_Cours_Java.pdfjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Améliorations dans Java depuis la version 5
JAVA Chapitre1
Conférence sur les annotations Java par Olivier Croisier (Zenika) au Paris JUG
XB-Java.ppt
Annotations Java par Olivier Croisier
Devoxx France 2023 - Les nouveautés de Java 19 et 20
Applications Android - cours 4 : Langage Java
Introduction a Java
Aperçu de java EE 5
Trivial Java Second
Cours java
Publicité

Plus de teejug (6)

PDF
Apache Ant
PDF
L’intégration continue
PPT
Une (simple) présentation de Apache Maven 2
PDF
Spring, une introduction
PDF
Spring Web Flow - TeeJUG 2008
PDF
Spring Security - TeeJUG 2008
Apache Ant
L’intégration continue
Une (simple) présentation de Apache Maven 2
Spring, une introduction
Spring Web Flow - TeeJUG 2008
Spring Security - TeeJUG 2008
Publicité

Dernier (7)

PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
FORMATION EN Programmation En Langage C.pdf
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
Modems expliqués- votre passerelle vers Internet.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
presentation_with_intro_compressee IEEE EPS France
Tendances tech 2025 - SFEIR & WENVISION.pdf
Presentation_Securite_Reseaux_Bac+2.pptx
FORMATION EN Programmation En Langage C.pdf
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Modems expliqués- votre passerelle vers Internet.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
presentation_with_intro_compressee IEEE EPS France

Java 5, un bilan

  • 1. Java 5,  un bilan Tareq Abed Rabbo Club Atuge Technologies 5/4/2007
  • 2. Plan Java aujourd’hui Méta données : les annotations Les types énumérés Les types génériques JMX Bilan
  • 3. Java, c’est quoi ? Write once, run anywhere Omni présent côté serveur Ecosystème florissant: JCP Open source
  • 4. 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
  • 5. Thèmes de Java 5 Faciliter de développement Performance Monitoring & management Desktop
  • 6. Plan Java aujourd’hui Méta données : les annotations Les types énumérés Les types génériques JMX Bilan
  • 7. 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
  • 8. 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>
  • 9. 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; }
  • 10. Anatomie d’une annotation @Target({ TYPE , FIELD , METHOD , PARAMETER , CONSTRUCTOR , LOCAL_VARIABLE }) @Retention(RetentionPolicy. SOURCE ) public @interface SuppressWarnings { String[] value(); }
  • 11. 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 …
  • 12. Remarques Avant java 5: annotations ad hoc Serializable @deprecated La sur utilisation peut affecter la lisibilité Pas approprié pour les paramètres de configuration
  • 13. Plan Java aujourd’hui Méta données : les annotations Les types énumérés Les types génériques JMX Bilan
  • 14. 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)
  • 15. Enumération : exemple public enum Status { success , error , inProgress ; } Status status = …; switch (status) { case success : break ; case error : break ; case inProgress : break ; }
  • 16. Plan Java aujourd’hui Méta données : les annotations Les types énumérés Les types génériques JMX Bilan
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. Plan Java aujourd’hui Méta données : les annotations Les types énumérés Les types génériques JMX Bilan
  • 21. JMX Java Management Extensions Management: Modifier la configuration Déclencher des actions Monitoring: Statistiques Notifications d’erreurs
  • 22. 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
  • 24. Plan Java aujourd’hui Méta données : les annotations Les types énumérés JMX Les types génériques Bilan
  • 25. Bilan Une version majeur Un pas dans le bon sens Java arrive à maturité