About Java: Difference between revisions
From My Limbic Wiki
(→Tomcat) |
(→AWT) |
||
Line 61: | Line 61: | ||
=Bibliotheques Logicielles (API)= | =Bibliotheques Logicielles (API)= | ||
==Bibliotheques Graphiques== | ==Bibliotheques Graphiques== | ||
===AWT=== | ===AWT: Abstract Window Toolkit === | ||
===SWING=== | ===SWING=== | ||
===SWT=== | ===SWT=== |
Revision as of 21:07, 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: Abstract Window Toolkit
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
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
- 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