About Java: Difference between revisions

From My Limbic Wiki
Line 91: Line 91:
* The reference implementation of the Java EE standard
* The reference implementation of the Java EE standard
==Tomcat==
==Tomcat==
* '''Favoring Tomcat'''
* Connecteur HTTP: Coyote
* Connecteur HTTP: Coyote
* Conteneur Web: Catalina
* Conteneur Web: Catalina
Line 96: Line 97:
* Developed by the Apache Software Foundation.  
* Developed by the Apache Software Foundation.  
* Some sources claim Tomcat’s market share to be more than a whopping 60% of all Java application server deployments.
* Some sources claim Tomcat’s market share to be more than a whopping 60% of all Java application server deployments.
==Jetty==
==Jetty==
* '''Consider Jetty if you need its smaller footprint'''
* '''Consider Jetty if you need its smaller footprint'''

Revision as of 21:04, 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

JBoss / WildFly

  • Was Jboss
  • Conteneur Web: Catalina
  • Fully featured and certified application server.
  • The big advantage of WildFly over GlassFish is that Red Hat provides an easy migration path from WildFly to its commercially supported application server called JBoss Enterprise Application Platform. This means that you can use WildFly today and quickly migrate to JBoss EAP in the future to get commercial support if you decide that’s something you need.

GlassFish

  • Fully featured and certified Java EE application server developed by Oracle
  • EJB, API JMS - permet d'envoyer et de recevoir des messages de façon asynchrone
  • More heavyweight than either Tomcat or Jetty—and, arguably
  • A bit more difficult to operate.
  • The reference implementation of the Java EE standard

Tomcat

  • Favoring Tomcat
  • Connecteur HTTP: Coyote
  • Conteneur Web: Catalina
  • Most popular application server used with Java web application
  • Developed by the Apache Software Foundation.
  • Some sources claim Tomcat’s market share to be more than a whopping 60% of all Java application server deployments.

Jetty

  • Consider Jetty if you need its smaller footprint
  • Isn’t technically a fully featured Java EE container

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