About Java: Difference between revisions
From My Limbic Wiki
Line 93: | Line 93: | ||
* More heavyweight than either Tomcat or Jetty—and, arguably | * More heavyweight than either Tomcat or Jetty—and, arguably | ||
* A bit more difficult to operate. | * A bit more difficult to operate. | ||
* The reference implementation of the Java EE standard | |||
==Jetty== | ==Jetty== | ||
* Isn’t technically a fully featured Java EE container | * Isn’t technically a fully featured Java EE container |
Revision as of 21:01, 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
- 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
- Persistense des données
- JPA / java persistence API : est une wikipedia:fr: interface de programmation Java permettant aux développeurs d'organiser des wikipedia:fr: Modèle relationnel données relationnelles dans des applications utilisant la plateforme wikipedia:fr: Java (technique).
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
- 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.
JBoss / WildFly
Auparavant apelle JBoss
- Conteneur Web: Catalina
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
Jetty
- Isn’t technically a fully featured Java EE container
Implementations pour les JPA
- Hibernate
- EclipseLink
- OpenJPA
A Retenir
- Différence Java et C
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