About Java

From My Limbic Wiki

Présentation de Java jusqu'en 2014

Pourquoi Java ?

java Entreprise : Java EE

Orienté Objet Web Services Riche API Amélioration constante du language Diversité des possibilités haut niveau d'abstraction (compatibilité avec tous les OS)

Fonctionnement

JVM

Compilateurs ==> Bytecode ==> JVM ==> Language station locale 1 Thread contient 1 pile gérée par 3 pointeurs: frame, vars et optop Garbage collector : libère l'espace occupé par les objets qui ne sont plus référencés

Actualités

Evolutions majeures entre les versions

Java 6

  • Evolutions douces vers 7

Java 7

  • 64 bits
  • string dans les switch case

Java 8

  • Interfaces fonctionnelles : Pas plus d'une méthode d'instance abstraite
  • Lambdas
  • Arrivée de Stream
  • une nouvelle API pour gérer les dates
  • de nouvelles annotations
  • un nouveau moteur d'exécution JavaScript
  • Plus d'informations

Java 12

Developpez.com

  • Expressions Switch
  • Collectes mixtes annulables pour G1
  • Renvoi immédiat de la mémoire non utilisée par G1 au système d'exploitation
  • Archives CDS par défaut
  • Un seul port ciblant l'architecture ARM 64 bits
  • API de constantes JVM
  • Shenandoah, un ramasse-miettes à faible temps de pause
  • Suite de microbenchmarks
  • Pas de littéraux de chaîne bruts (Raw String Literals)

Failles Majeures

  • Java 7 / inférieur
  • Janvier 2014 : Malware ==> faille JVM ==> enregistre dans le registre ==> démarrage ==>attente de commandes IRC par son propriétaire

Acronymes

  • JPA = Java Persistence API - Servlet container + JSP
  • EJB = Entreprise Java Beans
  • JSF = Java Servlet Faces
  • JSP = Java Server Pages

Bibliotheques Graphiques

AWT

SWING

SWT

Frameworks

Hibernate

Spring

  • Libre pour définir la structure de l'application
  • Bien pour le dev et les test
  • Conteneur léger = les classes n'ont pas besoin d'interfaces pour êtres prises en charge

Rich Client Plateform (RCP)

  • Framework Eclipse Open Source utilisé pour le développement d'applications clientes

Serveurs d'Applications

Tomcat

  • Connecteur HTTP: Coyote
  • Conteneur Web: Catalina

JBoss / WildFly

Auparavant apelle JBoss

  • Conteneur Web: Catalina

GlassFish

Full java EE Servers (EJB, API JMS - permet d'envoyer et de recevoir des messages de façon asynchrone)

Implementations pour les JPA

  • Hibernate
  • EclipseLink
  • OpenJPA

A Retenir

Experience Personelle

  • SupMarket :
    • WebServices
    • EJB + updater
    • JSON
    • Hibernate
  • Chat : serveur + quelques commandes
  • Jeu 2D ==> Urban Marginal Multijoueur BTS (swing)
  • Copie de données en entreprise de façon sécurisée via un utilisateur SQL (swing)
  • Application pour calculer le TEG
  • JUG