Java 5,  un bilan Tareq Abed Rabbo Club Atuge Technologies 5/4/2007
Plan <ul><li>Java aujourd’hui  </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li>...
Java, c’est quoi ? <ul><li>Write once, run anywhere </li></ul><ul><li>Omni présent côté serveur </li></ul><ul><li>Ecosystè...
Evolution de Java 1995 Naissance  de Java! Java SE 6 2006 - Scripting Language  - JDBC 4.0 - JAXB 2.0 JDK 1.0 1996 - Initi...
Thèmes de Java 5 <ul><li>Faciliter de développement </li></ul><ul><li>Performance </li></ul><ul><li>Monitoring & managemen...
Plan <ul><li>Java aujourd’hui  </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li>...
Annotations <ul><li>Méta données  ajoutées aux  </li></ul><ul><li>classes, champs, méthodes, packages, … </li></ul><ul><li...
Exemple : JAXB 2 @XmlAccessorType(XmlAccessType. FIELD ) @XmlRootElement(name = &quot;Address&quot;, namespace=&quot;http:...
Exemple : JPA @Entity public   class  User { @Id @GeneratedValue(strategy = GenerationType. SEQUENCE ,  generator = &quot;...
Anatomie d’une annotation @Target({ TYPE ,  FIELD ,  METHOD ,  PARAMETER ,  CONSTRUCTOR ,  LOCAL_VARIABLE }) @Retention(Re...
Avantages des annotations <ul><li>Permet une programmation déclarative </li></ul><ul><ul><li>Facile à modifier </li></ul><...
Remarques <ul><li>Avant java 5: annotations ad hoc </li></ul><ul><ul><li>Serializable </li></ul></ul><ul><ul><li>@deprecat...
Plan <ul><li>Java aujourd’hui  </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li>...
Les types énumérés <ul><li>Type énuméré : un ensemble défini de valeurs : </li></ul><ul><li>jours de la semaine, couleurs,...
Enumération : exemple public   enum  Status { success ,  error ,  inProgress ; } Status status = …; switch  (status) { cas...
Plan <ul><li>Java aujourd’hui  </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li>...
Les types génériques <ul><li>Abstraction permettant de paramétrer une classe, interface  </li></ul><ul><li>ou méthode Java...
Génériques : Exemple Vector v =  new  Vector(); v.add( new  String(&quot;abc&quot;);  v.add( new  Integer(4));  String s =...
Génériques : Exemple Vector <String>  vs =  new  Vector <String> (); vs.add( new  String(&quot;hello&quot;));  vs.add( new...
Plan <ul><li>Java aujourd’hui  </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li>...
JMX <ul><li>Java Management Extensions </li></ul><ul><li>Management: </li></ul><ul><ul><li>Modifier la configuration </li>...
JMX et Java 5 <ul><li>Java 5 inclut JMX </li></ul><ul><li>Monitoring du JVM via JMX: </li></ul><ul><ul><li>Utilisation mém...
Jconsole
Plan <ul><li>Java aujourd’hui  </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li>...
Bilan <ul><li>Une version majeur </li></ul><ul><li>Un pas dans le bon sens </li></ul><ul><li>Java arrive à maturité </li><...
Upcoming SlideShare
Loading in...5
×

Java 5, un blian

1,133

Published on

Tareq Abed Rabbo
Club Atuge Technologies
5/4/2007

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,133
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java 5, un blian

  1. 1. Java 5,  un bilan Tareq Abed Rabbo Club Atuge Technologies 5/4/2007
  2. 2. Plan <ul><li>Java aujourd’hui </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li></ul><ul><li>Les types génériques </li></ul><ul><li>JMX </li></ul><ul><li>Bilan </li></ul>
  3. 3. Java, c’est quoi ? <ul><li>Write once, run anywhere </li></ul><ul><li>Omni présent côté serveur </li></ul><ul><li>Ecosystème florissant: </li></ul><ul><ul><li>JCP </li></ul></ul><ul><ul><li>Open source </li></ul></ul>
  4. 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. 5. Thèmes de Java 5 <ul><li>Faciliter de développement </li></ul><ul><li>Performance </li></ul><ul><li>Monitoring & management </li></ul><ul><li>Desktop </li></ul>
  6. 6. Plan <ul><li>Java aujourd’hui </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li></ul><ul><li>Les types génériques </li></ul><ul><li>JMX </li></ul><ul><li>Bilan </li></ul>
  7. 7. Annotations <ul><li>Méta données ajoutées aux </li></ul><ul><li>classes, champs, méthodes, packages, … </li></ul><ul><li>Utilisées pour indiquer comment le programme doit être traité </li></ul><ul><li>par les outils et frameworks </li></ul><ul><li>Génération de « objets » dérivés: </li></ul><ul><ul><li>descripteurs de déploiements </li></ul></ul><ul><ul><li>Fichiers java ou class </li></ul></ul>
  8. 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. 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. 10. Anatomie d’une annotation @Target({ TYPE , FIELD , METHOD , PARAMETER , CONSTRUCTOR , LOCAL_VARIABLE }) @Retention(RetentionPolicy. SOURCE ) public @interface SuppressWarnings { String[] value(); }
  11. 11. Avantages des annotations <ul><li>Permet une programmation déclarative </li></ul><ul><ul><li>Facile à modifier </li></ul></ul><ul><ul><li>On dit ce qu’on veut faire et l’outil génère le code </li></ul></ul><ul><li>Facilite la maintenance </li></ul><ul><ul><li>Moins de fichiers à maintenir </li></ul></ul><ul><ul><li>L’information est dans un endroit unique </li></ul></ul><ul><li>Adopté par beaucoup de frameworks </li></ul><ul><ul><li>JAXB 2 </li></ul></ul><ul><ul><li>JPA (Hibernate 3) </li></ul></ul><ul><ul><li>Spring Framework 2 </li></ul></ul><ul><ul><li>Junit 4 </li></ul></ul><ul><ul><li>… </li></ul></ul>
  12. 12. Remarques <ul><li>Avant java 5: annotations ad hoc </li></ul><ul><ul><li>Serializable </li></ul></ul><ul><ul><li>@deprecated </li></ul></ul><ul><li>La sur utilisation peut affecter la lisibilité </li></ul><ul><li>Pas approprié pour les paramètres de configuration </li></ul>
  13. 13. Plan <ul><li>Java aujourd’hui </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li></ul><ul><li>Les types génériques </li></ul><ul><li>JMX </li></ul><ul><li>Bilan </li></ul>
  14. 14. Les types énumérés <ul><li>Type énuméré : un ensemble défini de valeurs : </li></ul><ul><li>jours de la semaine, couleurs, .. </li></ul><ul><li>Avant Java 5 : utilisation de constantes numériques </li></ul><ul><li>Problèmes: </li></ul><ul><ul><li>Pas sûr </li></ul></ul><ul><ul><li>Affichage non informatif (des entiers) </li></ul></ul>
  15. 15. Enumération : exemple public enum Status { success , error , inProgress ; } Status status = …; switch (status) { case success : break ; case error : break ; case inProgress : break ; }
  16. 16. Plan <ul><li>Java aujourd’hui </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li></ul><ul><li>Les types génériques </li></ul><ul><li>JMX </li></ul><ul><li>Bilan </li></ul>
  17. 17. Les types génériques <ul><li>Abstraction permettant de paramétrer une classe, interface </li></ul><ul><li>ou méthode Java par un ou plusieurs types. </li></ul><ul><li>Code plus sûr: code compilé avec les generics sans erreurs </li></ul><ul><li>ou warnings => pas de ClassCastException à l’exécution. </li></ul><ul><li>Très utile avec les collections </li></ul>
  18. 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. 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. 20. Plan <ul><li>Java aujourd’hui </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li></ul><ul><li>Les types génériques </li></ul><ul><li>JMX </li></ul><ul><li>Bilan </li></ul>
  21. 21. JMX <ul><li>Java Management Extensions </li></ul><ul><li>Management: </li></ul><ul><ul><li>Modifier la configuration </li></ul></ul><ul><ul><li>Déclencher des actions </li></ul></ul><ul><li>Monitoring: </li></ul><ul><ul><li>Statistiques </li></ul></ul><ul><ul><li>Notifications d’erreurs </li></ul></ul>
  22. 22. JMX et Java 5 <ul><li>Java 5 inclut JMX </li></ul><ul><li>Monitoring du JVM via JMX: </li></ul><ul><ul><li>Utilisation mémoire </li></ul></ul><ul><ul><li>Activités threads </li></ul></ul><ul><ul><li>Garbage Collector </li></ul></ul><ul><li>Jconsole : client JMX standard </li></ul>
  23. 23. Jconsole
  24. 24. Plan <ul><li>Java aujourd’hui </li></ul><ul><li>Méta données : les annotations </li></ul><ul><li>Les types énumérés </li></ul><ul><li>JMX </li></ul><ul><li>Les types génériques </li></ul><ul><li>Bilan </li></ul>
  25. 25. Bilan <ul><li>Une version majeur </li></ul><ul><li>Un pas dans le bon sens </li></ul><ul><li>Java arrive à maturité </li></ul>

×