About Java: Difference between revisions

From My Limbic Wiki
Line 93: Line 93:
* OpenJPA
* OpenJPA
=A Retenir=
=A Retenir=
* JDK :  Java Development Kit
** Bibliothèques logicielles (jdbc, swing, java ...)
** Outils de compilation
** Contient le JRE
* Jre : Moteur d'exécution JAVA (contient la JVM)
* Différence Java et C
* Différence Java et C
** http://www.isima.fr/~toussain/doc/Diff_C++_Java.pdf
** http://www.isima.fr/~toussain/doc/Diff_C++_Java.pdf

Revision as of 20:55, 2 May 2019

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

  • JVM: Java Virtual Machine
  • JRE: Java Runtime Environment. Moteur d'execution de Java
    • Contient la JVM
  • JDK: Java Development
    • Bibliothèques logicielles (jdbc, swing, java ...)
    • Outils de compilation
    • Contient le JRE
  • JSE: Java Standard Edition
  • JPA: Java Persistence API - Servlet container + JSP
  • EJB: Entreprise Java Beans
  • JSF: Java Servlet Faces
  • JSP: Java Server Pages

Bibliotheques Logicielles (API)

Bibliotheques Graphiques

AWT

SWING

SWT

Drivers

JDBC

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