Vous êtes sur la page 1sur 76

GCU-332

INFORMATIQUE PROGRAMMATION JAVA

THEME : PROGRAMMATION ORIENTEE OBJET ET JAVA : AVANTAGES

GROUPE 1

MEMBRES DU GROUPE
ASSAMBA MICHEL (chef de groupe) 21P257
LETCHO MEKJELE (sous-chef) 21P307
WONG MENDOUGA 21P366
MOUOLLY ROBERT 21P015
ETEMINLEME OBAM 21P346
DJINA CEDRICK 21P364
AKONO ELEMBENG 23P785
DOMO WILFRIED 21P418

Sous la supervision de l’Ingénieur de Conception de Génie Civil et Chercheur à l’Ecole doctorale de


l’UY1
M. ENYEGUE GERMAIN

ANNEE SCOLAIRE : 2023/2024


Année scolaire 2023-2024
1
SOMMAIRE
Listes des Figures et des Tableaux .......................................................................................................... 4
Résumé ................................................................................................................................................... 5
ABSTRACT................................................................................................................................................ 6
Introduction ............................................................................................................................................ 7
I. La Programmation Orientée Objet ................................................................................................. 8
II. Histoire de Python : Le plus grand concurrent de Java................................................................... 9
1- Origines ....................................................................................................................................... 9

2- Création de Python : ................................................................................................................... 9

3- Caractéristiques : ........................................................................................................................ 9

4- Popularité et Utilisation : .......................................................................................................... 10

III. Historique de Java ..................................................................................................................... 10


1. L’histoire du Projet OAK : .......................................................................................................... 11

2. Suite de l’historique .................................................................................................................. 12

3. QUI est ORACLE ? ...................................................................................................................... 13

4. Relation d’Oracle et la communauté de Logiciels Libres : une tension palpable ..................... 14

IV. Présentation de la programmation orientée objet................................................................... 16


V. Présentation du langage JAVA ...................................................................................................... 17
1- Extension de Java et leurs applications .................................................................................... 18

2- Pourquoi le café s’appelle-t-il Java ?......................................................................................... 19

3- Caractéristiques de Java............................................................................................................ 20

4- Java et la programmation modulaire ........................................................................................ 21

VI. Analyse multicritère du JAVA et des autres langages de POO.................................................. 23


1- Comparaison Java et Python ..................................................................................................... 23

2- Comparaison Java et Ruby ........................................................................................................ 25

3- OBJECTIF-C VS JAVA .................................................................................................................. 26

4- C# VS JAVA ................................................................................................................................ 28

5- JAVA VS C++ .............................................................................................................................. 30

6- Les avantages de Java ............................................................................................................... 32

2
VII. APPLICATION DE JAVA .............................................................................................................. 33
1- Applications Web de JAVA ........................................................................................................ 33

2- Applications mobiles Java ......................................................................................................... 34

3- Java et le Hacking ...................................................................................................................... 34

4- Applications Java de l'interface graphique ............................................................................... 35

5- APPLICATION DE JAVA DANS L’INDUSTRIE ............................................................................... 36

6- Adaptation de JAVA aux contraintes actuelles ......................................................................... 37

Comment les applications Java sont-elles exécutées avec Quarkus ?........................................... 37


7- APPLICATION DE JAVA DANS LE DOMAINE DE LA FINANCE ..................................................... 39

8- JAVA ET LES LUDICIELS .............................................................................................................. 40

9- APPLICATION DE JAVA DANS LE GENIE CIVIL ............................................................................ 42

10- Java et les produits Autodesk ................................................................................................... 44

11- JAVA ET BIM .............................................................................................................................. 44

12- Applications Web : .................................................................................................................... 47

VIII. Environnement d'exécution ...................................................................................................... 48


1- Java est tout simple le meilleur : quelques notions générales ................................................. 49

2- PLUS D’INFORMATIONS TECHNIQUES ...................................................................................... 51

IX. Les concepts JVM, JDK, JRE ....................................................................................................... 52


1- Hiérarchie entre la JVM la JDK et la JRE .................................................................................... 52

2- Concept JAVA ME ...................................................................................................................... 53

3- Brève explication des trois environnements Java: J2SE, J2ME et J2EE. ................................... 54

4- Concept JIT ................................................................................................................................ 56

X. PRESENTATION DE L’ENVIRONNEMENT DE TRAVAIL JAVA .......................................................... 58


1- PROCEDURE D’INSTALLATION DE L’ENVIRONNEMENT DE TRAVAIL ........................................ 59

Procédure d’installation d’un JDK : JDK8 .......................................................................................... 60

XI. Procédure d’installation d’Eclipse............................................................................................. 64


1- PRESENTATION DE L’INTERFACE JAVA-ECLIPSE ........................................................................ 68

XII. Cas pratique : premier programme Java................................................................................... 69


Conclusion ............................................................................................................................................. 76

3
Listes des Figures et des Tableaux
Figure 2 ................................................................................................................................................. 16
Figure 3 ................................................................................................................................................. 16
Figure 7 ................................................................................................................................................. 38
Figure 8 ................................................................................................................................................. 41
Figure 9 ................................................................................................................................................. 49
Figure 10 ............................................................................................................................................... 50
Figure 11 ............................................................................................................................................... 53
Figure 12 .............................................................................................................................................. 57
Figure 13 ............................................................................................................................................... 57
Figure 14 ............................................................................................................................................... 60
Figure 15 .............................................................................................................................................. 61
Figure 16 ............................................................................................................................................... 61
Figure 17 ............................................................................................................................................... 61
Figure 18 .............................................................................................................................................. 62
Figure 19 ............................................................................................................................................... 62
Figure 20 ............................................................................................................................................... 63
Figure 21 ............................................................................................................................................... 63
Figure 22 .............................................................................................................................................. 64
Figure 23 ............................................................................................................................................... 65
Figure 24 ............................................................................................................................................... 67
Figure 25 ............................................................................................................................................... 68
Figure 26 ............................................................................................................................................... 68

Tableau 1............................................................................................................................................... 50
Tableau 2............................................................................................................................................... 65
Tableau 3............................................................................................................................................... 66
Tableau 4............................................................................................................................................... 67

4
Résumé

Java offre une structure modulaire claire et facile à comprendre pour les programmes. Les objets
créés dans des programmes orientés objet peuvent être réutilisés dans d’autres programmes, ce qui
permet d’économiser des coûts de développement importants Facilité de Maintenance : La POO
permet de créer des applications plus modulaires et faciles à maintenir. En utilisant Java, vous pouvez
développer des applications de bureau, des applications Web et des applications mobiles
l’Encapsulation et Sécurité des Données : Java permet de sécuriser les données en définissant des
règles d’accès et de modification. L’encapsulation traduit un univers complexe en petits ensembles
simples et autonomes (objets).

JDK (Java Development Kit) : Pour suivre ce cours, vous aurez besoin d’un environnement de
développement Java. L’installation du JDK dépend de votre plate-forme : Windows et MacOS :
Téléchargez l’installeur JDK depuis le site d’Oracle. Linux : Téléchargez-le package ou l’archive JDK.
Assurez-vous d’installer le JDK plutôt que le JRE (Java Runtime Environment), car le JRE ne contient
pas les outils nécessaires pour développer en Java. IDE (Environnement de Développement Intégré) :
Vous aurez également besoin d’un IDE pour Java. Dans le cadre de cette formation, nous utiliserons
Eclipse. Voici comment télécharger Eclipse : Pour Windows : Télécharger Eclipse IDE for Java
Developers Pour MacOS : Télécharger Eclipse IDE for Java Developers Pour Linux : Télécharger Eclipse
IDE for Java Developers Configuration d’Eclipse : Après avoir lancé Eclipse, vérifiez la version de Java
utilisée par l’IDE et modifiez-la si nécessaire. Dans les préférences utilisateur, recherchez « jre » (pour
Java Runtime Environment) et sélectionnez « Installed JREs ». Vérifiez que le JDK installé est dans la
liste des JRE détectés par Eclipse. Cochez le JDK pour qu’il soit l’environnement d’exécution par défaut
pour tous les projets.

5
ABSTRACT

Java provides a clear and easy-to-understand modular structure for programs. Objects created
in object-oriented programs can be reused in other programs, saving significant development
costs Ease of Maintenance: OOP allows for the creation of more modular and easy-to-maintain
applications. Using Java, you can develop applications that are easy to use Web & Mobile
Applications Encapsulation & Data Security: Java helps secure data by defining access and
modification rules. Encapsulation translates a complex universe into small, simple,
autonomous ensembles (objects).

JDK (Java Development Kit): To take this course, you will need a Java development
environment. The installation of the JDK depends on your platform: Windows and MacOS:
Download the install JDK from the Oracle Linux website: Download the JDK package or
archive. Be sure to install the JDK rather than the JRE (Java Runtime Environment), as the JRE
does not contain the tools needed to develop in Java. IDE (Integrated Development
Environment): You will also need an IDE for Java. As part of this training, we will be using
Eclipse. Here's how to download Eclipse: For Windows: Download Eclipse IDE for Java
Developers For MacOS: Download Eclipse IDE for Java Developers for Linux: Download
Eclipse IDE for Java Developers Eclipse configuration: After launching Eclipse, check the
version of Java used by the IDE and change it if necessary. In User Preferences, search for "jre"
(for Java Runtime Environment) and select "Installed JREs". Verify that the installed JDK is
in the list of JREs detected by Eclipse. Check the JDK to be the environment

6
Introduction
La base de l’éducation au cours du dernier millénaire était « la lecture, l’écriture et
l’arithmétique » ; aujourd’hui, c’est la lecture, l’écriture et l’informatique. Apprendre à
programmer est une partie essentielle de l’éducation de chaque étudiant en sciences et en génie.
Au-delà des applications directes, il s’agit d’une première étape pour comprendre la nature de
l’impact indéniable de l’informatique sur le monde moderne.
Cet exposé a pour but de poser les fondements de la programmation orientée objet à
ceux qui ont besoin ou veulent l’apprendre, dans un contexte scientifique. Notre objectif
principal est de vous présenter les preuves concrètes de la supériorité de Java sur les autres
langages de programmation orienté objet et les outils de base nécessaires à l’utilisation efficace
de ce dernier. Notre approche consiste à renseigner sur la programmation orienté objet son
utilité et son évolution au cours de ces années, puis l’arrivé de Java sur la scène internationale
les avantages de Java par rapport à tous autres langages de la programmation et ses
caractéristiques enfin que la rédaction d’un programme Java est une expérience naturelle,
satisfaisante et créative (et non une lourde tâche réservée aux experts). Nous introduisons
progressivement des concepts essentiels, embrassons des applications classiques et des
sciences, les concepts pour résoudre des problèmes engageants Les applications dans les
domaines de la science et de l’ingénierie sont un élément clé du texte. Nous motivons chaque
concept de programmation que nous abordons en examinant son impact sur des applications
spécifiques. Nous tirons des exemples des mathématiques appliquées, de la physique et de la
sciences biologiques et l’informatique elle-même, et comprennent la simulation des systèmes
numériques, la visualisation de données, la synthèse sonore, le traitement d’images, la
simulation financière et les technologies de l’information. Etonnant !
Et enfin une présentation de l’interface et de l’environnement Java pour que chacun soit
familiarisé avec les concepts JDK JVM JRE etc… puis nous termineront par la procédure
d’installation des outils essentiels pour bien débuter dans ce nouveau langage aux multiples
applications.

7
I. La Programmation Orientée Objet

Appelé simplement POO, La Programmation Orientée Objet (POO) a été introduite par Alan
Kay avec le langage Smalltalk. Cependant, ses principes n’ont été formellement établis que
dans les années 1980 et surtout 1990. Le langage Simula 67 a également posé les bases des
langages orientés objet à classes, en introduisant des concepts tels que la classe, le
polymorphisme, l’héritage, etc. Smalltalk 71 et Smalltalk 80, fortement inspirés par Simula 67
et Lisp, ont véhiculé les principes de la programmation orientée objet tels que les objets,
l’encapsulation, les messages, le typage et le polymorphisme. En somme, Alan Kay et les
travaux réalisés autour de Smalltalk ont joué un rôle essentiel dans la création et la
popularisation de la POO.

La Programmation Orientée Objet (POO) a connu une évolution significative depuis sa


création. Voici quelques points clés de son évolution :

➢ La POO a été introduite dans les années 1960 avec le langage Simula 67, qui a posé les
bases des concepts tels que les classes, l’héritage et le polymorphisme. Alan Kay a
popularisé la POO avec le langage Smalltalk dans les années 1970.
➢ Dans les années 1980, la POO a été adoptée par des langages populaires tels que C++
et Objective-C. C++, créé par Bjarne Stroustrup, a ajouté des fonctionnalités telles
que les constructeurs, les destructeurs et la surcharge d’opérateurs. Objective-C,
développé par Brad Cox et Tom Love, a été utilisé pour le développement
d’applications Mac et iOS.
➢ Java, apparu dans les années 1990, a popularisé la POO grâce à sa portabilité, sa
robustesse et sa machine virtuelle Java (JVM).
➢ C#, développé par Microsoft, est fortement influencé par Java et est utilisé pour les
applications Windows et .NET.
➢ Python et Ruby, apparus dans les années 1990, ont simplifié la POO avec leur syntaxe
concise et expressive.
➢ C++ (1983) : C++ est une extension du langage C qui ajoute la POO. Il est largement
utilisé dans le développement système et les applications graphiques.
➢ Objective-C (1984) : Utilisé principalement pour le développement d’applications
Mac et iOS.
➢ Eiffel (1986) : Conçu pour la fiabilité et la qualité du logiciel.

8
➢ Common Lisp Object System (CLOS, 1988) : Une extension orientée objet du
langage Lisp.

II. Histoire de Python : Le plus grand


concurrent de Java

Python est un langage de programmation interprété, multiparadigme et multiplateformes.

1- Origines

À la fin des années 1980, le programmeur Guido van Rossum participe au


développement du langage de programmation ABC au Centrum voor Wiskunde en
Informatica (CWI) d’Amsterdam, aux Pays-Bas. Guido van Rossum décide de créer un
langage de script simple et lisible, inspiré d’ABC et de Modula-3.

2- Création de Python :
Le 20 février 1991, Guido van Rossum publie la première version de Python. Python est
conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et
une syntaxe simple à utiliser. Il est placé sous une licence libre proche de la licence BSD et
fonctionne sur la plupart des plateformes informatiques, des smartphones aux ordinateurs
centraux, de Windows à Unix (notamment GNU/Linux), en passant
par MacOs, Android et iOS.

3- Caractéristiques :

Python favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il


possède un typage dynamique fort, une gestion automatique de la mémoire par ramasse-
miettes et un système de gestion d’exceptions. Il est similaire
à Perl, Ruby, Scheme, Smalltalk et Tcl.

9
4- Popularité et Utilisation :
Python est utilisé dans de nombreux contextes et s’adapte à tout type d’utilisation grâce à
des bibliothèques spécialisées. Il est particulièrement répandu dans le monde scientifique,
pour le calcul numérique, l’informatique quantique, l’intelligence artificielle, le traitement
des Big Data et le Machine Learning.

En résumé, Python a évolué au fil du temps et reste l’un des langages les plus populaires et
polyvalents.

III. Historique de Java

Le 23 mai 1995, Sun Microsystems présentait une nouvelle plateforme, composée d'un
langage de programmation et d'une machine virtuelle. Java™ était né.

L'histoire de Java commence en fait en 1991, lorsque Sun décide de lancer un projet
destiné à anticiper l'évolution de l'informatique, confié à James Gosling, Patrick
Naughton et Mike Sheridan. Ce projet, appelé « Green Project » (en anglais « projet
vert »), eu comme résultat une plateforme baptisée « Oak » (en anglais « chêne »),
indépendante du système, orientée objet et légère. Oak était initialement destinée à la
télévision interactive. Il a été renommé en Java pour de simples raisons de droit d'auteur.

Lorsqu'il est révélé en 1995, Java profite de l'essor d'Internet en permettant l'un des
premiers mécanismes d'interactivité au niveau du poste client : l'appliquette (applet) Java.

Langage orienté objet d'usage généraliste, Java est enrichi par des bibliothèques, des
outils et des environnements très diversifiés, standardisés par le Java Community Process
(JCP), consortium chargé de l'évolution de Java. Ce consortium regroupe des entreprises,
comme Sun, IBM, Oracle, Borland, BEA, des organismes de normalisation, comme le
NIST, des organismes du monde Open Source, comme la Fondation Apache et le JBoss
Group, et des particuliers.

Il est possible d'utiliser Java pour créer des logiciels dans des environnements très
diversifiés :

➢ Applications sur client lourd (JFC) ;


➢ Applications Web, côté serveur (servlets, JSP, Struts, JSF) ;
➢ Applications réparties (EJB) ;

10
➢ Applications embarquées (J2ME) ;
➢ Applications sur carte à puce (Java Card).

Ces applications peuvent être enrichies par de nombreuses fonctionnalités :


➢ Accès à des bases de données (JDBC et JDO) ;
➢ Accès à des annuaires (JNDI) ;
➢ Traitements XML (JAXP) ;
➢ Connexion à des ERP (JCA) ;
➢ Accès à des traitements en d'autres langages (JNI) ;
➢ services web (JAX-RPC, JAXM, JAXR) ;
➢ Multimédia (Java Media) ;
➢ Téléphonie (JTAPI) ;
➢ Télévision interactive (Java TV) : Java TV est une technologie basée sur Java ME
qui fournit une solution performante, sécurisée et facile à mettre en œuvre pour le
développement d’applications Java qui s’exécutent sur les téléviseurs et les
décodeurs. À l’aide de l’environnement d’exécution Java TV, un développeur peut
facilement créer des applications, telles que des guides de programmes
électroniques (EPG), des clients de vidéo à la demande (VOD), des jeux et des
applications éducatives, des applications d’accès aux données Internet (par
exemple, la météo, les téléscripteurs d’actualités, les réseaux sociaux) et, sur la
plupart des titres de disques Blu-ray, l’interface utilisateur et le contenu bonus.

Ceci n'est bien sûr qu'un petit échantillon. Il existe bien d'autres bibliothèques.

1. L’histoire du Projet OAK :


➢ Projet OAK :

o Le Projet OAK était un langage de programmation créé par James Gosling en


1989 pour le projet de décodeur Sun Microsystems. À l’origine, il visait à fournir
un langage de programmation indépendant de la plate-forme pour les systèmes
embarqués.
o Le nom OAK a été choisi par Gosling en référence à un chêne qui se trouvait
juste à l’extérieur de son bureau.

➢ Évolution vers Java :

11
o Le langage OAK a évolué pour devenir ce que nous connaissons aujourd’hui
sous le nom de Java.
o En 1994, après une recherche de marque, il a été découvert que le nom OAK
était déjà utilisé par Oak Technology. Par conséquent, le projet a été renommé
Java.
o Java 1.0 a finalement été publié en 1996.

En résumé, le Projet OAK a donné naissance à Java, qui est devenu l’un des langages de
programmation les plus populaires et influents au monde.

2. Suite de l’historique

➢ Été 1992 : première présentation interne des possibilités de Oak. Un appareil appelé
« Star Seven » permet de visualiser une animation montrant Duke, l'actuelle mascotte
de Java.
➢ 1994 : Développement de HotJava, un navigateur internet entièrement écrit en Java.
➢ 23 mai 1995 : Lancement officiel de Java 1.0
➢ 23 janvier 1996 : Lancement du JDK 1.0.
➢ 29 mai 1996 : Première conférence JavaOne. Java Media et les servlets y sont
notamment annoncés.
➢ 16 août 1996 : Premières éditions des livres Java Tutorial et Java Language
Specification par Sun et Addison-Wesley.
➢ Septembre 1996 : Lancement du site Web Java Developer Connection Web.
➢ 16 octobre 1996 : Spécification des JavaBeans.
➢ 11 janvier 1997 : Lancement des JavaBeans.
➢ 18 février 1997 : Lancement du JDK 1.1.
➢ 28 février 1997 : Netscape annonce que Communicator supporte désormais Java.
➢ 4 mars 1997 : Lancement des servlets.
➢ 10 mars 1997 : Lancement de JNDI.
➢ 5 juin 1997 : Lancement de Java Web Server 1.0.
➢ 5 août 1997 : Lancement de Java Media et de Java Communication API.
➢ Mars 1998 : Lancement des JFC et notamment de Swing.

12
➢ 8 décembre 1998 : Lancement de Java 2 et du JDK 1.2.
➢ 4 mars 1999 : Support XML.
➢ 27 mars 1999 : Lancement de la machine virtuelle HotSpot.
➢ 2 juin 1999 : Lancement des JSP.
➢ 15 juin 1999 : Formalisation des environnements J2ME, de J2SE et J2EE ; Lancement
de Java TV.
➢ Août 1999 : Lancement de Java Phone.
➢ 8 mai 2000 : Lancement de J2SE 1.3.
➢ 9 mai 2002 : Lancement de J2SE 1.4.
➢ 24 novembre 2003 : Lancement de J2EE 1.4.
➢ 30 septembre 2004 : Lancement de J2SE 1.5, nommé également « J2SE 5.0 » ou
« Tiger ».
➢ 11 décembre 2006 : Lancement de JavaSE 6, nommé également « Mustang ».
➢ 13 novembre 2006 : Passage de Java, c’est-à-dire le JDK (JRE et outils de
développement) et les environnements Java EE (déjà sous licence CDDL) et Java ME
sous licence GPL. Java devient donc un logiciel libre.
➢ 27 janvier 2010 : Sun Microsystem est racheté par Oracle. Désormais, Java est
maintenu par la société Oracle. Ce qui nous amène à présenter brièvement la société
Oracle

3. QUI est ORACLE ?

Oracle Corporation, fondée en 1977 par Larry Ellison, Bob Miner et Ed Oates, est une
entreprise américaine majeure dans le domaine des logiciels et de la technologie.
Voici quelques points clés de l’histoire d’Oracle :

- Débuts :

➢ Oracle a été créée le 16 juin 1977.

➢ Ses fondateurs ont conçu le système de gestion de base de données Oracle


Database, qui est devenu l’un de leurs produits phares.

13
- Acquisitions :

➢ Au fil des années, Oracle a acquis plusieurs entreprises pour élargir son portefeuille
de produits :

➢ En 2004, Oracle a acquis PeopleSoft, éditeur de logiciels de gestion d’entreprise


(PGI) et d’outils de gestion de la relation client (CRM).

➢ En 2005, Oracle a racheté Retek, éditeur de solutions pour la distribution et les grands
magasins.

➢ En 2006, Oracle a acquis Siebel Systems, éditeur d’outils de CRM.

➢ En 2007, Oracle a acheté Hyperion Solutions, spécialisé dans les solutions


décisionnelles.

➢ En 2010, Oracle a finalisé l’acquisition de Sun Microsystems pour 7,4 milliards de


dollars. Cette acquisition a soulevé des inquiétudes dans la communauté des logiciels
libres, car Sun Microsystems était impliqué dans des projets open source tels
que Java, OpenOffice.org et MySQL.

- Oracle et Java :
➢ L’acquisition de Sun Microsystems en 2010 a fait d’Oracle le propriétaire
de Java.
➢ La communauté des logiciels libres a exprimé sa méfiance envers Oracle,
craignant que ses pratiques agressives ne nuisent aux projets open source
issus de Sun.

4. Relation d’Oracle et la communauté de Logiciels


Libres : une tension palpable

Lorsque Oracle a acquis Sun Microsystems en 2010, cela a suscité des inquiétudes au sein de
la communauté des logiciels libres. Voici quelques raisons pour lesquelles la méfiance s’est
développée :

14
- Java :
➢ L’acquisition de Sun a fait d’Oracle le propriétaire de Java, un langage de
programmation et une plateforme de développement très populaires.
➢ La communauté craignait qu’Oracle ne restreigne l’utilisation de Java ou
ne modifie les licences d’utilisation.
- MySQL :
➢ Sun Microsystems était également le propriétaire de MySQL, une base de
données open source très utilisée.
➢ La communauté s’inquiétait qu’Oracle ne favorise sa propre base de
données (Oracle Database) au détriment de MySQL.
- OpenOffice.org :

➢ Sun soutenait le projet OpenOffice.org, une suite bureautique open source.

➢ Après l’acquisition, Oracle a renommé le projet en Oracle Open Office et a


réduit son engagement envers la communauté open source.

- Licences et Litiges :
➢ Oracle a été impliqué dans des litiges juridiques avec d’autres entreprises,
ce qui a renforcé les craintes concernant ses pratiques agressives.
➢ La communauté redoutait que ces litiges n’affectent les projets open source.
- Fermeture de Projets :

➢ Oracle a fermé certains projets open source de Sun, comme Project


Kenai (plateforme de développement collaboratif) et Project
Wonderland (environnement virtuel 3D).

En fin de compte, bien que certaines inquiétudes se soient avérées fondées, Oracle a également
continué à soutenir certains projets open source issus de Sun. La relation entre Oracle et la
communauté open source reste complexe et controversée.

15
IV. Présentation de la programmation orientée
objet
La programmation orientée objet (POO) est un paradigme de programmation informatique qui
consiste en la définition et l’interaction de briques logicielles appelées objets. Voici quelques
éléments essentiels à retenir sur la POO :
1. Objets : Un objet représente un concept, une idée ou toute entité du monde physique.
Par exemple, un bouton sur un ordinateur, une personne avec son nom et son adresse,
une musique, ou même une voiture. Presque tout peut être considéré comme un objet.
2. Classes : Les objets sont conceptualisés dans des classes. Une classe d’objets définit
les attributs (caractéristiques) et les méthodes (actions) que peuvent effectuer ces
objets. Par exemple, une classe “Voiture” pourrait avoir des attributs comme “couleur”
et “marque”, ainsi que des méthodes comme “démarrer” et “arrêter”.
3. Héritage et polymorphisme : La POO permet de créer des classes réutilisables. Une
classe peut être utilisée par le programme pour lequel elle a été créée, mais aussi par
d’autres programmes orientés objet. L’héritage permet de créer de nouvelles classes
basées sur des classes existantes, tandis que le polymorphisme permet à une classe
d’avoir différentes formes (par exemple, une classe “Animal” peut avoir des sous-
classes comme “Chien” et “Chat”).
4. Sécurité et modularité : En masquant les fonctions et variables de l’objet, le
programmeur crée un code source parfois complexe mais facilement utilisable. Cela
renforce la sécurité du système et évite la corruption accidentelle de données.

Figure 1

Figure 2

16
La POO est largement utilisée dans le développement logiciel, mais aussi dans des domaines
tels que la data science. Par exemple, les data scientists utilisent souvent le langage Python, qui
offre de nombreuses librairies contenant des classes réutilisables. En résumé, la POO permet
de structurer un programme en éléments de code simples et réutilisables, facilitant ainsi la
maintenance et les mises à jour.

V. Présentation du langage JAVA


Java est un langage typé et orienté objet. Il est compilé et basé sur une architecture logicielle
très particulière nécessitant une machine virtuelle Java. Il utilise les notions usuelles de la
programmation orientée objet : la notion de classe, d'encapsulation, d'héritage, d'interface, de
virtualité, de généricité, … Il est accompagné d'un ensemble énorme de bibliothèques standard
couvrant de très nombreux domaines, notamment des bibliothèques graphiques. C'est un
langage qui présente d'excellentes propriétés de portabilité du code. Son gros point faible est
une relative lenteur, surtout si on le compare à des langages comme le C++. Cependant, ce
défaut a été résolu en grande partie par l'introduction de la technologie JIT (compilateur Just-
In-Time, en anglais « juste à temps »), qui compile le code à la première exécution, permettant
une exécution quasiment aussi rapide qu'en C/C++.

Le langage Java utilise une notion extrêmement importante en informatique : la notion de


machine virtuelle. Cette machine virtuelle est composée de trois parties, et est souvent fournie
avec l'OS, ou facilement installable comme un logiciel normal.

Sur les ordinateurs, la même machine virtuelle est capable de lancer :

• Des applications indépendantes (standalone en anglais), lancées et fonctionnant comme


toute application installée sur la machine ;

• Des applets, à partir d'une page HTML (internet, réseau local ou en local sur la
machine). Pour cela, il faut que le navigateur possède une extension permettant
d'utiliser une machine virtuelle Java pour l'exécution de ces applets.

17
1- Extension de Java et leurs applications

Java, l’un des langages de programmation les plus utilisés au monde, offre une variété
d’extensions et de bibliothèques pour développer des applications. Voici un aperçu des
éléments clés et de leurs applications :

- Java Development Kit (JDK) :

➢ Le JDK est essentiel pour le développement d’applications Java. Il fournit un


environnement complet pour écrire, compiler, déboguer et exécuter des
programmes Java.

➢ Composants du JDK :

▪ Compilateur Java (javac) : Le compilateur Java transforme le code


source Java en bytecode compréhensible par la Java Virtual Machine
(JVM). Il vérifie la syntaxe, les types et effectue des optimisations lors
de la compilation.

▪ Bibliothèques standard (Java Class Library) : Le JDK inclut une vaste


bibliothèque de classes prédéfinies, telles que la gestion des chaînes, les
opérations sur les fichiers, les interfaces graphiques, etc. Ces
bibliothèques facilitent le développement d’applications en fournissant
des fonctionnalités prêtes à l’emploi1.

- Java Runtime Environment (JRE):

➢ Le JRE permet l’exécution d’applications Java sur une machine cible. Il


inclut la JVM et les bibliothèques nécessaires pour exécuter les programmes
Java.
➢ Lorsque vous exécutez une application Java, le JRE interprète le bytecode
généré par le compilateur et le transforme en instructions compréhensibles
par le système d’exploitation.

18
- Java Virtual Machine (JVM):

➢ La JVM est au cœur de l’exécution des programmes Java. Elle interprète le


bytecode et gère la mémoire, l’exécution des threads et d’autres aspects de
l’exécution.

➢ Grâce à la JVM, les programmes Java sont portables, car le bytecode reste le
même quel que soit l’environnement d’exécution

- Applications Web Java :

➢ Servlets, JSP, JavaServer Faces (JSF) : Essentiels pour le développement


d’applications Web Java.
➢ Frameworks tels que Spring, Hibernate, Struts : Fonctionnalités supplémentaires
pour les applications Web robustes. BLOG

2- Pourquoi le café s’appelle-t-il Java ?

Java, Café ? Est-ce la même chose, ou y a-t-il une différence entre java et café ? Vous devez
comprendre que nous ne parlons pas de logiciel informatique, Java.

Beaucoup de gens font référence au café en tant que java aussi. Mais pourquoi ? Il est
intéressant de comprendre pourquoi le café est appelé Java, et ce qu’est réellement une tasse
de Joe. Voici quelques informations que vous pourriez trouver intéressantes en ce qui
concerne ces surnoms.

Est-ce que « java » signifie « café », ou est-ce seulement un logiciel d’ordinateur ? Je


plaisante, c’est les deux. Si vous cherchez dans le dictionnaire, vous verrez que java ne veut
pas dire café. Il a une signification complètement différente. Et, c’est pourquoi il est si
déroutant de savoir pourquoi le café est aussi appelé java.

19
Au cours des années 1800, le café a été introduit et est devenu célèbre. L’île qui produisait le
café à cette époque s’appelait Java. C’est pourquoi le surnom du café est devenu Java. À
cause de l’île d’origine. Ce qui est étrange avec le café, c’est qu’il a une grande variété de
noms différents. Et ces noms ont des significations différentes. Chaque pays ou culture
prépare le café différemment, et il a un nom et une signification différents pour le café. Java
et « a cup of Joe » sont juste pour nommer deux variétés différentes de surnoms de café.

3- Caractéristiques de Java

➢ Simple :

o La syntaxe de Java est basée sur C++, mais elle est épurée des concepts
complexes et déroutants tels que les pointeurs et l’héritage multiple.
o Depuis la version 8, Java prend en charge les interfaces fonctionnelles,
introduisant ainsi l’héritage multiple sans la gestion des attributs.

➢ Orienté objet :

o Tout en Java est un objet. Le langage suit une approche orientée objet, où les
logiciels sont organisés en combinaison d’objets contenant à la fois des
données et des comportements.

➢ Portable :

o Java est indépendant de la plateforme. Vous pouvez écrire du code une fois et
l’exécuter sur différentes plates-formes telles que Windows, Linux, Solaris,
etc.

➢ Sécurisé :

o Java est réputé pour sa sécurité. Il n’utilise pas de pointeurs explicites et


s’exécute dans un environnement virtuel sécurisé (sandbox).
o Le vérificateur de bytecode garantit que le code ne viole pas les droits d’accès
aux objets.

➢ Robuste :

o Java gère automatiquement la collecte des déchets (garbage collection) pour


éliminer les objets non référencés.
o Il offre une gestion solide des exceptions et des erreurs.

20
➢ Interprété :

o Le code Java est compilé en bytecode, qui est ensuite exécuté dans
une machine virtuelle Java (JVM).

➢ Hautes performances :

o Le bytecode Java est optimisé pour une exécution rapide.

➢ Multithread :

o Java prend en charge la programmation multithread, permettant l’exécution


simultanée de plusieurs tâches.

➢ Distribué :

o Java est utilisé pour développer des applications client-serveur grâce aux
servlets et aux JavaServer Pages (JSP).

➢ Dynamique : Java permet la création de systèmes d’exploitation (JavaOS),


d’environnements de développement (Eclipse/Java Development Kit), et bien
plus encore.
En résumé, Java est un langage puissant, polyvalent et largement utilisé dans le développement
logiciel, les applications d’entreprise et les technologies web.

4- Java et la programmation modulaire

Avant de parler de la programmation modulaire et java parlons brièvement de la


programmation modulaire La programmation modulaire consiste à découper un programme
informatique en sous-modules indépendants. Voici quelques points clés sur la programmation
modulaire :

➢ Définition :

o La programmation modulaire subdivise une application en composants logiciels


distincts appelés modules.

o Chaque module contient des fonctions, des méthodes et d’autres éléments liés.

o L’objectif est de réduire les dépendances entre les parties de l’application.

21
➢ Avantages de la programmation modulaire :

o Isolation : Les modules sont isolés, ce qui facilite la maintenance et la mise à


jour.

o Réduction des dépendances : Les dépendances explicites entre modules rendent


le code plus robuste.

o Réutilisation de code : Les traitements encapsulés dans les modules peuvent être
réutilisés dans plusieurs parties de l’application ou dans différentes applications.

o Encapsulation : Les traitements sont cachés, ce qui permet une maintenance


transparente.

➢ Gestion de projet :

o La programmation modulaire offre la possibilité de créer des bibliothèques de


fonctions et de procédures réutilisables.

o Elle permet également le travail en équipe, où plusieurs développeurs peuvent


travailler simultanément sur un même projet en développant des fonctions et
des procédures correspondant à des parties spécifiques des spécifications.

La programmation modulaire en Java est essentielle pour créer des applications bien
structurées et faciles à maintenir. Voici quelques points clés sur la programmation modulaire
en Java :

➢ Introduction aux modules :

o Les modules permettent de découper une application en unités logiques


indépendantes.

o Chaque module contient des classes, des interfaces et d’autres éléments liés.

o L’objectif est de réduire les dépendances entre les parties de l’application.

➢ Types de modules :

o Module standard : Fait partie de la plate-forme Java (par exemple, java.base).

o Module automatique : Ne nécessite pas de fichier de module explicite.

o Module explicite : Déclaré dans un fichier module-info.java.

22
➢ Dépendance entre modules :

o Les modules peuvent dépendre les uns des autres.

o La déclaration des dépendances se fait dans le fichier module-info.java.

➢ Services fournis aux modules :

o Les modules peuvent offrir des services via l’API ServiceLoader.

o Cela permet d’ajouter des fonctionnalités sans modifier les modules existants.

➢ Chargement des modules :

o Les modules sont chargés dynamiquement au moment de l’exécution.

o Le système de modules gère le chargement et la résolution des dépendances.

➢ Avantages de la programmation modulaire en Java :

o Isolation : Les modules sont isolés les uns des autres, ce qui facilite la
maintenance et la mise à jour.

o Réduction des dépendances : Les dépendances explicites entre modules rendent


le code plus robuste.

o Meilleure organisation : Les modules permettent de structurer l’application de


manière logique.

En résumé, la programmation modulaire en Java offre une meilleure organisation, une


réduction des dépendances et une isolation entre les parties de l’application.

VI. Analyse multicritère du JAVA et des autres


langages de POO

1- Comparaison Java et Python

Python et Java sont deux des langages de programmation les plus populaires. Voici un bref
comparatif entre les deux :

23
➢ Syntaxe et Lisibilité : Python est célèbre pour sa simplicité et sa lisibilité. Sa
syntaxe intuitive et son absence de typage obligatoire en font un langage facile à
apprendre et à comprendre, idéal pour les débutants. Java, quant à lui, utilise une
syntaxe plus verbeuse avec des conventions strictes. Cela peut rendre le code plus
long et potentiellement complexe à lire.

➢ Performance : Java est plus rapide en raison de sa nature compilée et de


l’utilisation de la machine virtuelle Java (JVM), qui optimise l’exécution. Python
est un langage interprété, ce qui le rend plus lent en comparaison.

➢ Polyvalence et Robustesse : Java est connu pour sa polyvalence et sa robustesse.


Il est largement utilisé dans le monde professionnel et offre une grande variété
d’applications. Python est dynamique et polyvalent. Sa facilité d’apprentissage et
d’utilisation en fait une excellente option pour les projets où les coûts de
développement ne doivent pas être trop élevés.

➢ Communauté et Projets : Les deux langages ont une grosse communauté et de


nombreux projets bien maintenus. Python est particulièrement populaire en raison
de sa communauté active et de ses nombreux cas d’utilisation.

➢ Popularité : Les deux langages arrivent presque ex æquo en fonction des


classements observés. Sur le TIOBE Index, Java est devant Python, mais selon le
dernier Developers Survey de StackOverflow datant de 2020, c’est Python qui est
devant Java.

En résumé, Python est plus simple à apprendre et à utiliser, tandis que Java brille en termes de
performances, d’applications d’entreprise et de connectivité robuste avec les bases de données.

24
2- Comparaison Java et Ruby

➢ Syntaxe : Ruby a une syntaxe élégante et concise, facilitant la lecture et l'écriture du


code. Java a une syntaxe plus verbeuse avec des points-virgules et des accolades.

➢ Typage : Typage dynamique, types des variables déterminés à l'exécution. Typage


statique, types des variables doivent être déclarés explicitement.

➢ Performance : Ruby moins performant que Java en raison de son interprétation à la


volée. Java plus rapide que Ruby grâce à sa compilation en bytecode.

➢ Portabilité : Ruby portable sur de nombreuses plates-formes sans modification du code


source. Java très portable grâce à la JVM pour exécuter du code Java sur différentes
plates-formes.

➢ Orienté objet : Ruby langage orienté objet avec un support intégré pour les classes,
objets et l'héritage. Java langage orienté objet avec un système de classes et d'objets
robuste.

➢ Gestion de la mémoire : Ruby utilise un ramasse-miettes pour gérer automatiquement


la mémoire. Java utilise un gestionnaire de mémoire basé sur le comptage de références
pour un contrôle plus fin de la mémoire.

➢ Développement web : Ruby utilisé dans le développement web avec le framework Ruby
on Rails, connu pour sa productivité. Java utilisé dans le développement web avec des
frameworks comme Spring et Hibernate

➢ Apprentissage et adoption : Ruby recommandé pour sa simplicité et son expressivité,


souvent utilisé pour les projets de développement rapide. Java largement adopté dans

25
les entreprises pour le développement d'applications d'entreprise en raison de sa
robustesse et de sa scalabilité.

Java est plus rapide que Ruby en raison de sa compilation en bytecode, ce qui en fait un choix
préféré pour les applications nécessitant des performances élevées. Le typage statique de Java
permet une détection précoce des erreurs de type lors de la compilation, améliorant la fiabilité
du code. Java offre un contrôle plus fin sur la gestion de la mémoire, ce qui peut aider à
optimiser les performances des applications. Java est largement utilisé dans les entreprises pour
le développement d'applications d'entreprise en raison de sa robustesse, de sa sécurité et de sa
scalabilité.

3- OBJECTIF-C VS JAVA

➢ Syntaxe : La syntaxe d'Objective-C est plus verbeuse et complexe que celle de Java,
avec l'utilisation de crochets pour les messages aux objets. La syntaxe de Java est plus
claire, concise et plus proche du langage naturel, ce qui la rend plus facile à lire et à
comprendre.

➢ Typage : Objective-C typage dynamique, les types des variables sont vérifiés lors de
l'exécution. Java typage statique, les types des variables doivent être déclarés
explicitement lors de la compilation.

➢ Performance : Les performances d'Objective-C peuvent être inférieures à celles de Java


en raison de son typage dynamique et de sa gestion des messages aux objets. Java est
généralement plus performant en raison de son typage statique et de sa compilation en
bytecode.

➢ Portabilité : Objective-C moins portable que Java en raison de son utilisation


principalement sur les appareils Apple. Java très portable grâce à la JVM, permettant
d'exécuter du code Java sur différentes plateformes sans modification du code source.

26
➢ Communauté et écosystème : Objective-C communauté active mais plus restreinte que
celle de Java, avec un écosystème moins étendu.

➢ Orienté objet : Objective-C langage orienté objet avec une syntaxe spécifique pour la
programmation orientée objet. Java langage orienté objet avec un support intégré pour
les classes, objets et l'héritage.

➢ Gestion de la mémoire : Objective-C gestion manuelle de la mémoire avec le besoin


d'utiliser le comptage de références ou ARC (Automatic Reference Counting). Java
gestion automatique de la mémoire grâce au ramasse-miettes, réduisant les risques de
fuites de mémoire.

➢ Développement mobile : Objective-C principalement utilisé pour le développement


d'applications iOS. Java utilisé pour le développement d'applications Android avec
Android Studio et le SDK Android.

Java est très portable grâce à la JVM, ce qui permet d'exécuter du code Java sur différentes
plates-formes sans modification du code source, contrairement à Objective-C qui est
principalement utilisé sur les appareils Apple. Java est généralement plus performant en raison
de son typage statique et de sa compilation en bytecode, offrant des performances supérieures
à celles d'Objective-C. Java offre une gestion automatique de la mémoire grâce au ramasse-
miettes, réduisant les risques de fuites de mémoire par rapport à Objective-C qui nécessite une
gestion manuelle avec le comptage de références ou ARC. Java dispose d'une grande
communauté active et d'un écosystème solide avec de nombreux outils, bibliothèques et
frameworks bien établis, offrant un support et des ressources étendus pour les développeurs.
Java a une syntaxe plus claire, concise et plus proche du langage naturel que celle d'Objective-
C, ce qui le rend plus facile à apprendre et à utiliser pour les développeurs.

27
4- C# VS JAVA

1. Syntaxe :

- C# : La syntaxe de C# est similaire à celle de Java, avec une approche plus orientée objet et
des fonctionnalités modernes telles que les propriétés et les événements.

- Java : La syntaxe de Java est claire, concise et proche du langage naturel, ce qui la rend facile
à lire et à comprendre.

2. Typage :

- C# : Typage statique, les types des variables doivent être déclarés explicitement lors de la
compilation.

- Java : Typage statique, les types des variables doivent être déclarés explicitement lors de la
compilation.

3. Performance :

- C# : Les performances de C# sont comparables à celles de Java, offrant une exécution rapide
des programmes.

- Java : Java est généralement performant en raison de son typage statique et de sa compilation
en bytecode.

4. Portabilité :

- C# : Moins portable que Java en raison de son utilisation principalement sur les plateformes
Microsoft. - Java : Très portable grâce à la JVM, permettant d'exécuter du code Java sur
différentes platesformes sans modification du code source.

5. Communauté et écosystème :

- C# : Communauté active et écosystème solide, avec le support de Microsoft et une variété


d'outils et de frameworks. - Java : Grande communauté, écosystème solide avec de nombreux
outils, bibliothèques et frameworks bien établis.

6. Orienté objet :

- C# : Langage orienté objet avec une syntaxe spécifique pour la programmation orientée objet.

28
- Java : Langage orienté objet avec un support intégré pour les classes, objets et l'héritage.

7. Gestion de la mémoire :

- C# : Gestion automatique de la mémoire grâce au ramasse-miettes (Garbage Collector),


réduisant les risques de fuites de mémoire.

- Java : Gestion automatique de la mémoire grâce au ramasse-miettes, réduisant les risques de


fuites de mémoire.

8. Développement web :

- C# : Utilisé pour le développement web avec ASP.NET et le framework .NET.

- Java : Également utilisé pour le développement web avec des frameworks tels que Spring et
Java EE.

9. Apprentissage et adoption :

- C# : Facile à apprendre pour les développeurs familiarisés avec d'autres langages comme Java
ou C++, grâce à sa syntaxe similaire.

- Java : Recommandé pour sa simplicité et sa popularité, souvent utilisé pour les projets de
développement rapide et pour l'enseignement de la programmation.

Pourquoi Java est meilleur que C# ? :

1. Portabilité : Java est très portable grâce à la JVM, permettant d'exécuter du code Java sur
différentes plates-formes sans modification du code source, contrairement à C# qui est
principalement utilisé sur les plateformes Microsoft.

2. Performance : Java est généralement performant en raison de son typage statique et de sa


compilation en bytecode, offrant des performances optimales comparables à celles de C#.

3. Gestion de la mémoire : Java offre une gestion automatique de la mémoire grâce au ramasse-
miettes, réduisant les risques de fuites de mémoire par rapport à C# qui utilise également un
Garbage Collector mais peut avoir des limitations sur certaines plateformes.

4. Communauté et écosystème : Java dispose d'une grande communauté active et d'un


écosystème solide avec de nombreux outils, bibliothèques et frameworks bien établis, offrant
un support et des ressources étendus pour les développeurs.

29
5. Simplicité : La syntaxe claire, concise et proche du langage naturel de Java le rend plus facile
à apprendre et à utiliser pour les développeurs par rapport à C#, ce qui peut être un avantage
pour les débutants ou ceux qui cherchent une transition en douceur depuis d'autres langages.

5- JAVA VS C++
1. Syntaxe :

- C++ : La syntaxe de C++ est plus complexe et moins intuitive que celle de Java en raison de
sa nature plus bas niveau et de la gestion manuelle de la mémoire.

- Java : La syntaxe de Java est claire, concise et proche du langage naturel, ce qui la rend plus
facile à lire et à comprendre que C++.

2. Typage :

- C++ : Typage statique, les types des variables doivent être déclarés explicitement lors de la
compilation.

- Java : Typage statique, les types des variables doivent être déclarés explicitement lors de la
compilation.

3. Performance :

- C++ : C++ offre généralement de meilleures performances que Java en raison de sa


compilation directe en code machine et de son accès direct à la mémoire.

- Java : Java est moins performant que C++ en termes de vitesse d'exécution en raison de sa
compilation en bytecode et de sa gestion automatique de la mémoire.

4. Gestion de la mémoire :

- C++ : Gestion manuelle de la mémoire, ce qui peut entraîner des fuites de mémoire et des erreurs
si elle n'est pas correctement gérée.

- Java : Gestion automatique de la mémoire grâce au ramasse-miettes (Garbage Collector), réduisant


les risques de fuites de mémoire par rapport à C++.

5. Portabilité :

30
- C++ : Moins portable que Java en raison de sa compilation directe en code machine spécifique à
une plateforme.

- Java : Très portable grâce à la JVM, permettant d'exécuter du code Java sur différentes plateformes
sans modification du code source.

6. Sécurité :

- C++ : Moins sécurisé que Java en raison de son accès direct à la mémoire, ce qui le rend vulnérable
aux erreurs de gestion de la mémoire et aux attaques par débordement de tampon.

- Java : Plus sécurisé que C++ grâce à sa gestion automatique de la mémoire et à son modèle de
sécurité robuste.

7. Communauté et écosystème :

- C++ : Communauté active mais moins étendue que celle de Java, avec un écosystème varié mais
moins riche en outils et bibliothèques. - Java : Grande communauté, écosystème solide avec de
nombreux outils, bibliothèques et frameworks bien établis.

8. Développement web :

- C++ : Moins utilisé pour le développement web en comparaison avec Java qui est largement utilisé
avec des frameworks comme Spring.

- Java : Utilisé pour le développement web avec des frameworks tels que Spring et Java EE.

9. Apprentissage et adoption :

- C++ : Plus difficile à apprendre pour les débutants en programmation en raison de sa complexité et
de sa gestion manuelle de la mémoire.

- Java : Recommandé pour sa simplicité relative et sa popularité, souvent utilisé pour


l'enseignement de la programmation et pour les projets de développement rapide.

Java offre une gestion automatique de la mémoire grâce au Garbage Collector, réduisant les
risques de fuites de mémoire par rapport à C++ qui nécessite une gestion manuelle propice
aux erreurs.Java est très portable grâce à la JVM, permettant d'exécuter du code Java sur
différentes plates-formes sans modifications, contrairement à C++ qui est plus spécifique à
une plateforme. Java est plus sécurisé que C++ en raison de sa gestion automatique de la
mémoire et de son modèle de sécurité robuste, offrant une meilleure protection contre les
attaques. La syntaxe claire et intuitive de Java le rend plus facile à apprendre et à utiliser pour

31
les développeurs par rapport à C++, ce qui peut être un avantage pour les débutants ou ceux
cherchant une transition en douceur depuis d'autres langages

6- Les avantages de Java


Voici quelques-uns de ses avantages essentiels :

1. Indépendance de la plate-forme : Java suit le principe “écrire une fois, exécuter


n’importe où”. Cela signifie que vous pouvez écrire du code Java qui s’exécute sur
plusieurs plates-formes sans nécessiter de recompilation. Par exemple, une application
Java développée sur un système Windows peut s’exécuter de manière transparente sur
un système Mac ou Linux.

2. Robuste et fiable : Java dispose de puissantes fonctions de vérification de type, de


gestion des exceptions et de gestion de la mémoire. Ces mécanismes intégrés détectent
les erreurs au moment de la compilation, réduisant ainsi la probabilité d’erreurs
d’exécution et de plantages. De plus, le système de récupération de place de Java gère
automatiquement la mémoire, libérant les développeurs des tâches manuelles de gestion
de la mémoire et réduisant le risque de fuites de mémoire.

3. Polyvalence : Java est utilisé dans une variété de domaines, du développement


d’applications de bureau aux applications Web et mobiles. Sa portabilité et sa simplicité
en font un choix judicieux pour de nombreux projets.

4. Sécurité : Java est réputé pour sa sécurité. Il n’utilise pas de pointeurs explicites et
s’exécute dans un environnement virtuel sécurisé (sandbox). De plus, il dispose
d’algorithmes de sécurité et de protocoles

32
VII. APPLICATION DE JAVA

1- Applications Web de JAVA

Java est le langage de développement d'applications d'entreprise le plus populaire car il possède
des fonctionnalités robustes qui correspondent aux besoins actuels de l'industrie. La plupart des
entreprises d'aujourd'hui utilisent des applications Java, et elles le font pour leur sécurité plus
la puissance ainsi que l'évolutivité avec extraordinaire taux de rendement.

Exemples :
- BERP solutions
- CRM solutions
- Business Apps
- Government Apps
- Charity Apps

En dépit d'être le langage qui fournit une structure pour le web applications, Java a récemment
percé dans le cloud développement en raison de sa nature distribuée.Dans ce cadre, il propose
des fonctionnalités exploitables depuis le SaaS (Software en tant que service), IaaS
(infrastructure en tant que service) et plates-formes PaaS telles comme les services Lambda
d'Amazon Web Services ou OpenPop de HPE.

Exemples (Outils):
- Google app engine
- Jelastic
- IBM Smart Cloud
- AWS SDK

Une application Web est un programme client-serveur qui utilise Internet pour interagir avec
les utilisateurs. Java prend en charge le développement de ces types d'applications via des
servlets, struts, et les langages de programmation traditionnels comme C# ou VB .NET, qui
tous fonctionnent bien en combinaison sur le code côté serveur de votre site Web.
Exemples:
- Online Forms
- Google Slides

33
- Google Sheets
- Shopping carts

2- Applications mobiles Java


À l'ère d'aujourd'hui, la majorité des téléphones et des appareils intelligents ont Android OS.
Sans java, il n'est pas possible de créer une application pour ces plates-formes.

3- Java et le Hacking
Le hacking est un domaine fascinant qui permet de résoudre des problèmes et d’aider à la
résolution de défis complexes. Voici quelques points importants à considérer concernant le
hacking et son lien avec Java :

1. Pourquoi devenir un hacker ?

o Le hacking ne se limite pas à l’intrusion illégale dans des systèmes. C’est un


art qui peut être utilisé de manière éthique pour renforcer la sécurité
informatique.

o Les hackers peuvent créer de la beauté et de l’art en utilisant un ordinateur1.

2. Java et la vulnérabilité :

o Même si de moins en moins de sites web et d’applications web nécessitent


Java pour fonctionner correctement, cette technologie est omniprésente sur
pratiquement tous les systèmes utilisateurs finaux.

o Par conséquent, Java est également une plateforme très vulnérable aux
attaques2.

3. Mettre le hacking en pratique :

o Pour s’entraîner au hacking sans risques et légalement, il est recommandé de


créer une machine virtuelle de test.

o Des plateformes comme TryHackMe offrent des expériences d’apprentissage


immersives avec des simulations réseau et des technologies intentionnellement
vulnérables basées sur des exemples du monde réel.

34
En somme, le hacking est un domaine vaste et passionnant, et Java continue d’être un outil
important dans ce domaine. Si vous souhaitez vous lancer, assurez-vous de suivre des
pratiques éthiques et légales.

La plupart des applications sont développées en Java Micro Edition (J2ME), heureusement, il
y a aussi Kotlin qui peut nous aider à créer des applications compatibles avec les deux
Android Studio ainsi que les services Google Play, donc ils sont beaucoup plus faciles que si
nous faisions tout nous-mêmes à partir de zéro chaque fois que notre humeur modifiée.

Exemples:
- Netflix
- Google Earth
- Uber
- QRReader
- Tinder

4- Applications Java de l'interface graphique

Avec l'aide d'API comme AWT et Swing, vous pouvez développer des applications en Java.
L'Abstract Windowing Toolkit (AWT) est une interface conçue pour développer facilement
des programmes basés sur des fenêtres qui ne nécessiteront aucunes connaissances spécialisées
sur les langages de programmation ou les principes de conception.

Exemples:

- Media Player
- ThinkFree
- Acrobat Reader
- Anti-virus
Dans le domaine automobile, le langage Java est utilisé pour diverses applications et systèmes
embarqués. Dans la norme Autosar, les langages d'implémentation comprennent notamment le
C, le CPP et Java. Cependant, en raison des contraintes de mémoire dans certains logiciels
embarqués, Java est souvent exclu de certains composants logiciels, tels que les drivers ou les
éléments fonctionnant dans un environnement temps réel.

35
De plus, des applications de gestion de location de voitures ont été développées en Java,
utilisant des classes Swing et une base de données pour gérer les contrats, les factures, les
réservations, etc. Ces applications offrent une solution pratique pour la gestion des locations
de voitures.

Il est également possible de développer des applications éducatives ou didactiques dans le


domaine de l'automobile en utilisant des outils tels qu’App Inventor, offrant ainsi des
applications simples pour des besoins spécifiques.
En résumé, Java est utilisé dans le domaine automobile pour le développement de logiciels
embarqués, de systèmes de gestion, ainsi que pour des applications éducatives et didactiques.
Voici quelques exemples d’applications populaires développées en Java :
- Applications mobiles Java :
- Android OS est basé sur Java, et la plupart des applications Android sont écrites en
Java.
- Les développeurs d’applications mobiles utilisent également Java pour créer des
applications compatibles avec Kotlin et Android Studio.
- Applications de bureau avec interface graphique (GUI) :
- Java permet le développement d’applications de bureau avec des interfaces graphiques.
- Les bibliothèques telles que Swing, JavaFX et AWT permettent de créer des interfaces
utilisateur pour les applications de bureau.

5- APPLICATION DE JAVA DANS L’INDUSTRIE


Java est également utilisé dans le domaine des systèmes embarqués. Voici comment cela
fonctionne :
- Avantages de Java pour les systèmes embarqués :
Portabilité : Java est conçu pour être indépendant de la plate-forme, ce qui signifie que le même
code Java peut s’exécuter sur différentes architectures matérielles.
Sécurité : Java offre des mécanismes de sécurité intégrés, tels que la gestion de la mémoire et
la vérification des types.
Gestion de la mémoire : La JVM gère automatiquement la mémoire, ce qui simplifie le
développement et réduit les risques d’erreurs.
Implémentations de Java pour les systèmes embarqués :
Java SE for Embedded : Basé sur la plate-forme Java Standard Edition (SE), il est conçu pour
les systèmes avec au moins 32 Mo de RAM.
Java ME (Micro Edition) Embedded : Basé sur la configuration Connected Device de Java ME,
il est destiné aux systèmes avec au moins 8 Mo de RAM.
- Applications embarquées en Java :

36
Automobiles : Java est utilisé pour les systèmes de divertissement, la navigation et la gestion
des capteurs.
Appareils médicaux : Java est utilisé pour les moniteurs de santé, les scanners et les
équipements médicaux.
Appareils ménagers : Java est utilisé dans les lave-linges, les réfrigérateurs intelligents et les
thermostats.

6- Adaptation de JAVA aux contraintes actuelles


Le langage de programmation Java est reconnu de longue date comme une institution dans le
secteur informatique. Il est apparu durant les premières années d’internet, mais le Web s’est
développé à toute vitesse depuis. Outre l’architecture classique client-serveur, il existe un vaste
éventail de modèles alternatifs dignes d’intérêt : les applications basées sur des conteneurs, les
micro services, l’informatique sans serveur, et les applis Web réactives se sont imposés dans
la vie de tous les jours. Ces types d’applications ont jusqu’à présent été difficile à configurer
avec Java. Grâce à la structure Quarkus, les choses ont commencé à changer. Le manager de
RedHat Ken Johnson exprime cela ainsi : « it’s a very small Java stack, perfect for containers,
serverless and other scenarios where you’re running Java applications in the cloud. »

Pour dire en français simplement qu’il s’agit d’une toute petite Java stack, qui est parfaite pour
les conteneurs, le sans serveur et d’autres scénarios où des applications Java sont exécutées sur
le Cloud.

Comment les applications Java sont-elles exécutées avec Quarkus ?

À la différence de l’exécution native des applications Java, Quarkus offre plusieurs avantages.
Etablissons une différence entre les deux modes supportés par Quarkus :

1. Optimisation du bytecode et exécution dans le JVM


2. Exécution en tant que code natif après la compilation

37
Le code Java écrit avec Quarkus peut être exécuté
normalement dans le JVM. Quoi qu’il en soit, il
existe des avantages considérables en termes de
consommation de mémoire et de temps de
démarrage d’une application en cours d’exécution.
Pour parvenir à cela, Quarkus a recours à quelques
astuces. Plus précisément, un certain
nombre d’étapes chronophages sont déplacées du
processus d’exécution à celui de développement. Figure 3

Ceci comprend les étapes qui, dans les autres cas,


ont lieu à chaque fois qu’une application Java est exécutée :

• Charger et analyser les configurations


• Scanner le chemin de classe Java et résoudre les annotations
• Créer des modèles d’entités pour les bases de données ou équivalents lorsque cela
s’applique

Avec Quarkus, ces étapes sont menées à bien une seule fois et les résultats sont mis en cache
pour une récupération rapide. Une optimisation complémentaire des performances a lieu via le
fait, pour Quarkus, de réduire la quantité d’information dynamique disponible à
l’exécution. Ceci est remplacé par des constructions statiques correspondantes. C’est
particulièrement utile quant à l’utilisation qui a lieu dans les conteneurs. Une application
conteneurisée n’est de toute façon généralement pas modifiée et est toujours exécutée dans le
même environnement.

Le second mode supporté par Quarkus pour exécuter des applications Java est encore plus
intéressant. Avec la compilation anticipée (AOT), un code machine directement exécutable est
généré depuis la source Java à la place du bytecode, ce qui signifie qu’il n’y a plus besoin d’un
JVM sur le matériel cible. Le programme est uniquement exécutable sur des architectures de
processeur spécifiques et doit être compilé à nouveau sur d’autres plateformes. Quoi qu’il en
soit, cette restriction n’est en général pas pertinente pour un usage dans des conteneurs. Les
économies en termes de consommation de mémoire et de temps de démarrage d’applications
réalisées grâce à la compilation AOT sont tout simplement époustouflantes. Comparez les
niveaux références de performance exposée ci-dessous depuis la page d’accueil officielle de
Quarkus :

38
Quarkus est bien plus qu’une simple structure d’application : ce logiciel a été conçu pour
redéfinir ce que cela signifie de développer des applications avec Java. À titre de rappel :
traditionnellement, il était plus important pour une application Java d’être exécutée de manière
stable sur une longue période. Le temps que mettait une application à démarrer était perçu
comme secondaire.

Prenez les applications basées sur des conteneurs : de nouveaux conteneurs peuvent être lancés
automatiquement par un logiciel d’orchestration. L’application dans le conteneur doit alors être
prête à être immédiatement utilisée. En outre, plusieurs conteneurs redondants sont souvent
lancés pour un même service. La réduction en termes de consommation de ressources réalisée
avec Quarkus est multipliée en conséquence.

7- APPLICATION DE JAVA DANS LE DOMAINE


DE LA FINANCE
Dans le domaine financier, Java est largement utilisé pour le développement d'applications
financières, de commerce électronique, d'entreprise, mobiles, distribuées et de Big Data. Par
exemple, la plupart des logiciels financiers utilisés par les grands acteurs comme Citigroup,
Barclays, etc. sont basés sur Java. De même, plusieurs projets informatiques et scientifiques
utilisent les technologies Java. De plus, Java est utilisé dans le développement d'applications
de gestion de comptes bancaires, de systèmes de gestion financière en ligne, ainsi que dans des
projets de gestion de ventes et de location de voiture. En résumé, Java est un langage de
programmation polyvalent largement utilisé dans le domaine financier pour diverses
applications et solutions pratiques.
Exemple :
1. Budgetize :
o Description : Une application Android pour le suivi des revenus et des dépenses.
o Fonctionnalités : Gestion des finances personnelles, suivi des transactions,
intégration avec Google Sign-In, architecture MVVM, stockage des données
avec Room Database.
o Lien : Budgetize sur GitHub .
2. Financial Calculator App :
o Description : Une application de calculatrice financière développée en Java et
Java FX.
o Fonctionnalités : Calculs financiers courants tels que l’épargne, les prêts et les
hypothèques.
o Lien : Financial Calculator App sur GitHub .

39
3. RigFinances :
o Description : Une application de gestion financière pour suivre les transactions
et les dépenses.
o Fonctionnalités : Gestion des transactions, suivi des dépenses, stockage des
données dans une base de données MySQL.
o Lien : RigFinances sur GitHub .
4. CurrencyConverter :
o Description : Une application permettant de convertir différentes devises.
o Fonctionnalités : Conversion de devises, utilisation de Retrofit pour les requêtes
HTTP.
o Lien : CurrencyConverter sur GitHub .
Ces exemples illustrent différentes approches pour gérer les finances personnelles et effectuer
des calculs financiers à l’aide de Java.

8- JAVA ET LES LUDICIELS

Dans le domaine des jeux, Java est largement utilisé pour le développement de jeux vidéo. Il
existe de nombreuses applications de jeux développées en Java, allant des jeux de plateforme
aux jeux de société en passant par les jeux mobiles. De plus, Java est souvent utilisé pour créer
des jeux éducatifs et des jeux de programmation pour apprendre à coder. Les avis des
utilisateurs sur les jeux développés en Java peuvent varier en fonction de la qualité, de la
jouabilité et de l'expérience globale du jeu. Il est important de noter que la popularité et les avis
des utilisateurs peuvent varier en fonction de chaque jeu spécifique, de ses fonctionnalités et
de son attrait pour le public cible. Java dispose d'un puissant moteur 3D (JMonkeyEngine). Et
comme Java est un langage open source gratuit (ainsi que toutes ses fonctionnalités), de
nombreux développeurs de jeux s'en tiennent à Java, attirés par l'absence de frais de licence à
payer. Soit dit en passant, le moteur offre des performances inégalées lors de la conception de
jeux 3D et peut donner à ses pairs coûteux une course pour leur argent. Les jeux Java les plus
populaires sont Minecraft, Les Sims 3, Space Invaders, Contra et Tetris, un peu primitif mais
très apprécié. Un autre fait : Outre le JMonkeyEngine, Java attire également les développeurs
de jeux avec ses frameworks et bibliothèques populaires comme LibGDX et OpenGL.

40
Minecraft est un jeu de construction et d'aventure
populaire disponible sur différentes plateformes.
Cependant, il existe deux versions principales du jeu
: Minecraft Java Edition et Minecraft Bedrock
Edition. Les deux versions offrent une expérience de
jeu unique, mais elles présentent également des
différences clés qu'il est important de note r
Figure 4
Une autre différence importante réside dans les
caractéristiques et fonctionnalités spécifiques de chaque édition. Minecraft Java Edition
possède une communauté active et dynamique qui a créé de nombreux mods et addons
personnalisés. Ces mods et addons permettent aux joueurs d'ajouter de nouvelles
fonctionnalités, de modifier le gameplay et de personnaliser complètement leur expérience de
jeu. D'un autre côté, Bedrock Edition offre une intégration plus fluide avec d'autres
plateformes, permettant aux joueurs de jouer avec des amis sur différents appareils.

Grand Theft Auto (GTA) est une série de jeux vidéo très populaire. Voici quelques
informations sur la relation entre GTA et Java :

1. GTA San Andreas Savegame Editor:

o C’est un outil graphique pour éditer les sauvegardes de GTA San Andreas. Il
est écrit en Java et fonctionne sur Windows, macOS, et Linux1.

o Lien vers le projet

2. GDevelop Open Game:

o Une communauté de développeurs a créé un jeu similaire à GTA en


utilisant GDevelop 5. C’est un projet en cours de développement et il est
également écrit en Java1.

o Lien vers le projet

3. Grand Theft Auto San Andreas Multiplayer (SA-MP):

o SA-MP est un mod multijoueur pour GTA San Andreas. La bibliothèque qui
gère les requêtes dans SA-MP est écrite en Java1.

o Lien vers le projet

41
4. GTA V Java Mod Menu:

o Ce projet, bien que discontinué, était un menu mod pour GTA V écrit
en Java. Il utilisait JNA (Java Native Access) pour manipuler la mémoire du
jeu1.

o Lien vers le projet

5. GTA Universe MUD:

o Un jeu MUD (Multi-User Dungeon) basé sur l’univers de GTA. Il est écrit
en Java et se joue en mode texte via telnet1.

o Lien vers le projet

9- APPLICATION DE JAVA DANS LE GENIE


CIVIL

Java est un langage de programmation polyvalent qui trouve également des applications dans
le domaine du génie civil. Voici comment Java peut être utilisé dans ce contexte :

1. Simulation et modélisation :

- Java peut être utilisé pour créer des modèles de simulation pour étudier le comportement
des structures, des matériaux et des systèmes.

Java n’est pas directement utilisé pour les essais mécaniques ou la caractérisation des
matériaux. Cependant, il est essentiel de comprendre les concepts de base des essais
mécaniques et de la science des matériaux pour développer des applications logicielles dans ce
domaine.

Voici quelques informations importantes sur les essais mécaniques et leur relation avec les
matériaux :

1. Essais mécaniques :

o Les essais mécaniques sont utilisés pour déterminer les propriétés


mécaniques d’un matériau. Ils permettent de comprendre comment un matériau
réagit sous différentes contraintes et charges.

42
o Différents types d’essais mécaniques incluent :

▪ Essai de traction : Mesure la résistance à la traction d’un matériau.

▪ Essai de dureté : Évalue la résistance à la pénétration d’un matériau.

▪ Essai de flexion : Détermine la résistance à la flexion d’un matériau.

▪ Essai de résilience : Évalue la capacité d’un matériau à absorber de


l’énergie lorsqu’il est soumis à un choc.

▪ Essai de fatigue : Analyse la durabilité d’un matériau sous des charges


cycliques.

▪ Essai de fluage : Étudie la déformation d’un matériau sous une charge


constante pendant une période prolongée.

2. Applications logicielles :

o Bien que Java ne soit pas directement utilisé pour effectuer des essais
mécaniques, il est couramment utilisé pour développer des logiciels de
simulation et des outils d’analyse dans le domaine des matériaux et de la
mécanique.

o Les ingénieurs et les chercheurs utilisent des logiciels basés sur Java pour
modéliser le comportement des matériaux, simuler des essais virtuels et
analyser les résultats.

3. Exemples d’applications :

o Logiciels de simulation par éléments finis (FEA) : Ces logiciels, tels


que ANSYS, ABAQUS et COMSOL, utilisent des méthodes numériques pour
simuler le comportement mécanique des matériaux et des structures.

o Outils de traitement des données expérimentales : Les ingénieurs utilisent des


logiciels pour analyser les résultats d’essais mécaniques, ajuster les modèles et
valider les prédictions.

43
En résumé, bien que Java ne soit pas directement impliqué dans les essais mécaniques, il est
essentiel pour le développement d’applications logicielles qui soutiennent la recherche, la
simulation et l’analyse dans le domaine des matériaux et de la mécanique.

Java dans la conception assistée par ordinateur et dans la modélisation a une contribution sans
pareille comme nous allons détailler ci-dessous :

10- Java et les produits Autodesk

Java est utilisé dans AutoCAD, un logiciel de conception assistée par ordinateur (CAO)
largement utilisé dans le domaine du génie civil. Voici quelques informations pertinentes :
1. Utilisation de Java dans AutoCAD :
o Toutes les fonctionnalités d’AutoCAD qui nécessitent Java ont été intégrées
directement dans l’application. Par conséquent, il n’est pas nécessaire
d’installer séparément une version de Java12.
o Pour afficher des informations spécifiques sur Java dans AutoCAD, suivez ces
étapes :
Lancez AutoCAD.
Ouvrez un dessin existant.
Entrez la commande ABOUT dans la ligne de commande.
Faites défiler la liste jusqu’à trouver l’entrée dédiée à Java.
2. Licences Java dans AutoCAD :
o Les informations concernant les licences et l’utilisation de Java sont incluses
dans les informations de licence du produit. Vous pouvez les consulter en
suivant les étapes ci-dessus.
En résumé, Java est utilisé de manière transparente dans AutoCAD, et vous n’avez pas besoin
de vous soucier d’installer Java séparément pour utiliser AutoCAD dans le domaine du génie
civil

11- JAVA ET BIM


Avant tout rappelons le concept BIM très utile en GC brièvement
BIM (Building Information Modeling) est un concept essentiel dans l’industrie de la
construction. Voici quelques informations à son sujet :
1. Définition :

44
o Le BIM désigne les outils de modélisation des informations de la construction.
Il s’agit d’un processus qui permet de créer et de gérer des informations pour
les ressources de construction, telles que les bâtiments, les infrastructures et les
installations.
o Le BIM va au-delà de la simple modélisation 3D. Il intègre des données sur la
géométrie, les propriétés physiques, les performances, les coûts, les délais, etc.
2. Avantages du BIM :
o Collaboration améliorée : Le BIM facilite la collaboration entre les différentes
parties prenantes d’un projet (architectes, ingénieurs, entrepreneurs, etc.).
o Visualisation réaliste : Les modèles BIM permettent une visualisation réaliste
des projets avant leur construction.
o Gestion des données : Le BIM centralise les informations, ce qui facilite la
gestion des données tout au long du cycle de vie d’un projet.
o Réduction des erreurs : En utilisant le BIM, les erreurs de conception peuvent
être détectées plus tôt, ce qui réduit les coûts et les retards.
3. Plateformes et ressources :
o BIMobject est une plateforme qui propose des objets BIM gratuits à télécharger.
Elle offre des familles Revit et du contenu BIM pour les architectes, ingénieurs
et concepteurs. Vous pouvez y trouver des produits de différentes catégories tels
que le mobilier, les portes, l’éclairage, la plomberie, etc1.
o Autodesk propose également des solutions BIM, notamment des logiciels
comme Revit pour la modélisation et la coordination des projets de
construction .
En somme, le BIM est un outil essentiel pour la conception, la construction et la gestion efficace
des projets dans l’industrie du bâtiment.
Java est largement utilisé dans le domaine du BIM (Building Information Modeling) pour
développer des applications et des outils qui facilitent la conception, la construction et la
gestion des projets de construction. Voici quelques points clés concernant l’utilisation de Java
dans le contexte du BIM :

1. Plateformes et bibliothèques :

o BIMserver : BIMserver est une plateforme open source écrite en Java qui
permet de stocker, gérer et échanger des modèles BIM au format IFC (Industry
Foundation Classes). Elle offre des fonctionnalités telles que la gestion des
versions, la collaboration et l’accès via une API.

45
o Xeokit : Xeokit est un SDK JavaScript open source qui permet de visualiser des
modèles BIM et AEC (Architecture, Engineering, Construction) en 3D dans un
navigateur web. Bien que le SDK lui-même soit en JavaScript, il utilise Java
pour certaines parties de son infrastructure.

2. Traitement des fichiers IFC :

o La bibliothèque XbimEssentials est un composant du Xbim Toolkit écrit


en .NET (C#), mais elle peut également être utilisée avec Java via JNI (Java
Native Interface). Elle permet de travailler avec des données au format IFC
(Industry Foundation Classes) et offre des fonctionnalités telles que la lecture,
l’écriture et la manipulation des modèles BIM.

3. Visualisation BIM :

o Xeokit-bim-viewer est un visualiseur BIM basé sur le SDK Xeokit. Il permet


d’afficher des modèles BIM en 3D dans un navigateur web, offrant ainsi une
expérience interactive pour les utilisateurs.

o BIMsurfer est un autre visualiseur WebGL pour les modèles IFC. Il est
également écrit en JavaScript et est utilisé pour afficher des modèles BIM dans
un navigateur web.

4. Interopérabilité et normes :

o Le collectif open source BIM sur GitHub propose divers projets et


bibliothèques liés au BIM, dont beaucoup sont écrits en Java. Ces projets visent
à promouvoir l’interopérabilité et l’utilisation des normes ouvertes telles que
l’IFC (Industry Foundation Classes).

En résumé, Java est utilisé dans le domaine du BIM pour développer des applications, gérer
des modèles, visualiser des données et promouvoir l’interopérabilité entre les différents acteurs
de l’industrie de la construction

- Les ingénieurs civils peuvent simuler des charges, des contraintes, des déformations et
d'autres paramètres pour évaluer la performance des conceptions.
2. Gestion de projets :

- Java peut être utilisé pour développer des systèmes de gestion de projets spécifiques au
génie civil.

46
- Ces systèmes aident à planifier, exécuter et surveiller les projets de construction, en
automatisant des tâches telles que la gestion des ressources, la planification des travaux et la
budgétisation.

3. Analyse des données :

- Java peut être utilisé pour analyser les données collectées sur le terrain, telles que les relevés
topographiques, les données géospatiales et les essais de matériaux.

- Les ingénieurs civils peuvent développer des outils pour extraire des informations utiles à
partir de ces données.

4. Interfaces graphiques :

- Java offre des bibliothèques telles que Swing et Java FX pour créer des interfaces
graphiques conviviales.

- Les ingénieurs civils peuvent développer des applications avec des interfaces utilisateur
pour visualiser des modèles, des plans et des résultats d'analyse.

12- Applications Web :


- Java est utilisé pour développer des applications Web dans le domaine du génie civil.

- Les ingénieurs peuvent créer des portails pour partager des informations, des rapports et des
documents avec d'autres parties Dans le domaine du génie civil, les applications Java peuvent
être utilisées pour diverses tâches, notamment la modélisation tridimensionnelle de structures
civiles, la conception de modèles de voies ferroviaires, de routes, d'autoroutes, ainsi que pour
l'ingénierie urbaine. Les ingénieurs civils peuvent bénéficier de l'utilisation d'outils de génie
civil efficaces pour concevoir et réaliser des infrastructures, en tenant compte de divers aspects
techniques et environnementaux.

Certains logiciels de génie civil, tels que Microstation de Bentley, offrent une plateforme
logicielle préférée des constructeurs, architectes et professionnels des SIG, procurant un
environnement et une suite d'applications associée à des fonctionnalités avancées De plus, des
outils comme AutoTURN sont spécifiquement conçus pour aider les ingénieurs des transports,

47
les architectes et les planificateurs dans la conception de projets qui répondent aux exigences
de sécurité et de mouvements des véhicules .

En outre, les logiciels de calcul de génie civil, tels que GeoSMART, offrent des outils pour la
surveillance en temps réel de la santé structurelle des ouvrages de génie civil, tandis que la
gamme de logiciels ARTeMIS est un outil efficace pour l'identification modale des structures
de génie civil telles que les bâtiments, les ponts et les ouvrages offshore.

En résumé, les applications Java dans le domaine du génie civil offrent des solutions pour la
modélisation, la conception et la surveillance des infrastructures civiles, contribuant ainsi à la
réalisation de projets de construction sûrs, durables et efficaces .

VIII. Environnement d'exécution


Le langage Java est un langage orienté objet qui doit être compilé. Cependant, le compilateur
Java ne produit pas directement un fichier exécutable, mais du code intermédiaire sous la forme
d'un ou plusieurs fichiers dont l'extension est .class ; ce code intermédiaire est appelé bytecode.
Pour exécuter le programme, il faut utiliser la machine virtuelle Java qui va interpréter le code
intermédiaire en vue de l'exécution du programme.

Il ne s'agit pas d'une compilation normale, car le compilateur ne produit pas du code
compréhensible directement par le microprocesseur, ni d'un langage interprété, car il y a tout
de même la notion de compilation, mais une situation intermédiaire entre un langage interprété
et un langage complètement compilé.

En d'autres termes, un programme Java, une fois compilé en code intermédiaire, n'est
compréhensible que par la machine virtuelle, qui va traduire à la volée (interprétation) les
instructions exécutées en code compréhensible par la machine physique.

Depuis Java SE 1.3, les machines virtuelles d'Oracle contiennent un interpréteur capable
d'optimiser le code appelé HotSpot.

L'interpréteur effectue plusieurs tâches :

• Vérification du code intermédiaire ;


• Traduction en code natif (spécifique à la plateforme, au système d'exploitation) ;
• Optimisation.

48
Outre un interpréteur, l'environnement d'exécution fournit également :

• Un noyau multitâche pour les machines virtuelles fonctionnant sur des systèmes
monotâches (green Virtual machines) ;
• Un « bac à sable » (sandbox) pour l'exécution de processus distants.

Figure 5

1- Java est tout simple le meilleur : quelques notions


générales
Java est un langage de programmation orienté objet développé par Sun Microsystems en 1995.
Depuis ses débuts modestes, Java a beaucoup évolué. A l’heure actuelle, une grande partie du
monde numérique dépend de Java : de nombreux services et applications reposent sur cette
plate-forme fiable. De même, de nouveaux produits et services numériques innovants et tournés
vers l’avenir dépendent aussi de Java. Même si la plupart des applications Java modernes
associent l’application Java et l’environnement JRE (Java Runtime Environment), de
nombreuses applications, et même certains sites Web, ne fonctionnent pas si la version de
bureau de Java n’est pas installée. Le site Web Java.com est destiné aux utilisateurs qui peuvent
encore avoir besoin de Javn a pour leurs applications de bureau, en particulier les applications
ciblant Java 8. Les développeurs et les utilisateurs qui souhaitent découvrir la programmation
Java peuvent consulter le site Web dev.java, et les utilisateurs professionnels peuvent consulter
le site oracle.com/java pour obtenir plus d’informations.

Le téléchargement de Java est-il gratuit ? Oui, vous pouvez télécharger Java gratuitement pour
votre usage personnel. Java est également gratuit pour le développement : les développeurs
trouveront tous les kits de développement ainsi que d’autres outils à l’adresse
oracle.com/javadownload.

49
Pourquoi effectuer la mise à niveau vers le patch Java le plus récent chaque trimestre lorsque
j’y suis invité ? Les patches Java les plus récents contiennent des améliorations importantes
pour renforcer les performances, la stabilité et la sécurité des applications Java exécutées sur
votre ordinateur. L’installation de ces mises à jour garantit que les applications Java continuent
de fonctionner avec la version la plus récente.

Figure 6
Tableau 1

50
2- PLUS D’INFORMATIONS TECHNIQUES
Qu’est-ce que j’obtiens lorsque je télécharge le logiciel Java à partir de java.com ? Lorsque
vous téléchargez le logiciel Java à partir de java.com, vous obtenez la version 8 de
l’environnement JRE (Java Virtual Machine), des classes principales de la plate-forme Java et
des bibliothèques de plate-forme Java de prise en charge. L’environnement JRE est la portion
d’exécution du logiciel Java. A lui seul, il permet d’exécuter les applications Java Web Start à
partir d’un navigateur Web pris en charge. En revanche, aucun outil de développement n’est
fourni. Ces outils font partie du JDK (Java Development Kit).

Qu’est-ce que le logiciel du plug-in Java ? Le logiciel du plug-in Java est un composant de
l’environnement JRE. L’environnement JRE permet aux applications écrites en langage de
programmation Java d’être lancées via certains navigateurs. Le logiciel du plug-in Java n’est
pas un programme autonome et ne peut pas être installé séparément.

J’ai entendu les termes Java Virtual Machine et JVM. S’agit-il du logiciel Java ?

51
IX. Les concepts JVM, JDK, JRE

1- Hiérarchie entre la JVM la JDK et la JRE


La JVM (Java Virtual Machine), le JDK (Java Development Kit) et le JRE (Java Runtime
Environment) sont trois composants essentiels de la plate-forme Java. Voici comment ils sont
hiérarchiquement liés :

1. JVM (Java Virtual Machine) :


o La JVM est le composant qui exécute les programmes Java.
o Elle interprète le bytecode généré à partir du code source Java.
o Il existe plusieurs implémentations de la JVM, mais elles fonctionnent toutes de
manière similaire.
2. JDK (Java Development Kit) :
o Le JDK est l’ensemble d’outils nécessaire pour développer des logiciels en Java.
o Il inclut la JVM, mais aussi des outils de développement, de débogage et de
compilation.
o Les développeurs utilisent le JDK pour écrire leurs applications Java.
3. JRE (Java Runtime Environment) :
o Le JRE est l’environnement d’exécution Java.
o Il crée la JVM et s’assure que les dépendances nécessaires sont disponibles pour les
programmes Java.
o Le JRE est utilisé pour exécuter les applications Java.

En résumé, la JVM exécute les programmes, le JDK permet de les développer, et le JRE fournit
l’environnement d’exécution pour les applications Java. La JVM (Java Virtual Machine) n’est
qu’une partie du logiciel Java qui permet l’exécution d’une application. La JVM (Java Virtual
Machine) est un composant crucial du langage de programmation Java. Voici comment elle
fonctionne :

1. Compilation en bytecode :
o Tout d’abord, le code Java est compilé en bytecode.

Le bytecode

o Le compilateur Java génère ce bytecode à partir du code source Java.

52
2. Interprétation sur différentes machines:
o La JVM interprète ce bytecode sur différentes machines.
o Entre le système hôte et la source Java, le bytecode sert d’intermédiaire.
o La JVM est responsable de l’allocation de l’espace mémoire.
3. Principe “Write Once, Run Anywhere”:
o La JVM traduit le bytecode en code machine natif spécifique au système
d’exploitation et au matériel sous-jacents.
o Cela permet aux applications Java de fonctionner sur plusieurs plates-formes
sans modification.
o Ce principe est souvent appelé “Write Once, Run Anywhere” (écrire une fois,
exécuter partout).

En résumé, la JVM permet aux programmes Java d’être exécutés de manière portable sur
différentes machines, en convertissant le bytecode en instructions spécifiques à chaque système

Figure 7

2- Concept JAVA ME
Java ME (Java Platform, Micro Edition) est une plateforme Java conçue pour les appareils
embarqués et mobiles dans l’Internet des objets (IoT). Elle offre un environnement robuste et
flexible pour les applications s’exécutant sur divers appareils, notamment :

53
1. Microcontrôleurs
2. Capteurs
3. Passerelles
4. Téléphones mobiles
5. Assistant numérique personnel (PDA)
6. Décodeurs TV
7. Imprimantes

Voici quelques caractéristiques clés de Java ME :

• Interfaces utilisateur flexibles : Java ME inclut des interfaces utilisateur flexibles.


• Sécurité robuste : Elle propose un modèle de sécurité solide.
• Protocoles réseau : Des protocoles réseau intégrés facilitent les applications en réseau
et hors ligne pouvant être téléchargées dynamiquement.
• Portabilité : Les applications basées sur Java ME sont portables sur de nombreux
appareils tout en exploitant les capacités natives de chaque appareil.

Oracle propose plusieurs produits et outils liés à Java ME :

1. Oracle Java ME Embedded : Une machine virtuelle Java déployée dans des milliards
d’appareils IoT dans le monde entier.
2. Java ME SDK : Un kit de développement avec émulation d’appareils, environnement
de développement autonome et utilitaires pour le développement rapide d’applications
Java ME.
3. Oracle Java ME Embedded Client : Permet le développement d’applications hautement
fonctionnelles, fiables et portables pour les systèmes embarqués puissants.
4. Java pour mobiles : Utilisé par les développeurs de téléphones mobiles Java, les
opérateurs et les fabricants d’équipements d’origine pour créer des produits de
téléphonie mobile dans le monde entier.
5. Java TV : Une technologie basée sur Java ME pour le développement d’applications
sur les téléviseurs et les décodeurs.

Java ME est efficace en termes de ressources, sécurisé et conçu pour minimiser les exigences
sur la plateforme sous-jacente. C’est une plateforme essentielle pour l’IoT, offrant fiabilité,
performances, débit, sécurité et prise en charge multiplateforme

3- Brève explication des trois


environnements
Java: J2SE, J2ME et J2EE.

54
1. J2SE (Java Platform, Standard Edition) :
o Aussi connu sous le nom de Core Java, c’est la version la plus basique et
standard de Java.
o Il s’agit de la forme la plus pure de Java, servant de base à toutes les autres
éditions.
o J2SE est principalement utilisé pour créer des applications
pour environnements de bureau.
o Il contient tous les éléments fondamentaux du langage Java, tels que les
variables, les types de données primitifs, les tableaux, les flux, les chaînes de
caractères et la connectivité à la base de données JDBC1.
2. J2ME (Java Platform, Micro Edition) :
o Cette version de Java est principalement axée sur les applications s’exécutant
sur des systèmes embarqués, des téléphones mobiles et des petits appareils.
o Elle a été conçue pour répondre aux contraintes des systèmes embarqués,
telles que la puissance de traitement limitée, la durée de vie de la batterie
réduite et les petits écrans.
o Les applications J2ME utilisent de nombreuses bibliothèques et API de J2SE,
ainsi que certaines spécifiques à J2ME.
o L’objectif principal était de permettre l’utilisation de technologies de
compression web pour réduire l’utilisation du réseau et rendre l’accès à
Internet moins coûteux.
3. J2EE (Java Platform, Enterprise Edition) :
o Utilise de nombreux composants de J2SE et introduit également de nouvelles
fonctionnalités telles que les Servlets, les JavaBeans et les Java Message
Services.
o J2EE est utilisé pour créer des applications client-serveur.
o Il permet de créer des applications d’entreprise robustes, notamment des
services web et des applications web.
o J2EE utilise des technologies telles que HTML, CSS, JavaScript, etc., pour
créer des pages web et des services web.

En résumé, chaque environnement Java a son propre domaine d’application :

• J2SE pour les applications de bureau.

55
• J2ME pour les systèmes embarqués et les mobiles.
• J2EE pour les applications d’entreprise et les services web

4- Concept JIT
JIT (Just-in-Time) est une méthode de gestion des stocks dans laquelle les marchandises sont
reçues des fournisseurs uniquement au moment où elles sont nécessaires. L’objectif principal
de cette méthode est de réduire les coûts de détention des stocks et d’augmenter le taux de
rotation des stocks.

En voici quelques aspects importants liés à JIT :


1. JIT dans la fabrication :
o Le JIT est une philosophie de gestion japonaise appliquée depuis le début des
années 1970 dans de nombreuses organisations manufacturières japonaises.
o Il a été développé et perfectionné au sein des usines de fabrication de Toyota
par Taiichi Ohno, dans le but de répondre aux demandes des consommateurs
avec un minimum de délais.
2. JIT et l’inventaire :
o Dans un système JIT, une entreprise reçoit les marchandises au plus près du
moment où elles sont réellement nécessaires.
o Par exemple, une usine d’assemblage automobile n’a pas de stock d’airbags sur
ses étagères, mais les reçoit au fur et à mesure que les voitures arrivent sur la
chaîne d’assemblage2.
3. Avantages et inconvénients du JIT :
o Avantages :
▪ Réduction des coûts de stockage.
▪ Amélioration de l’efficacité.
▪ Réduction des déchets.
o Inconvénients :
▪ Risque accru en cas de perturbations dans la chaîne
d’approvisionnement.
▪ Dépendance vis-à-vis des fournisseurs.

56
▪ Nécessite une planification précise.

En somme, le JIT est une approche efficace pour gérer les stocks et optimiser la production,
mais elle nécessite une mise en œuvre soigneuse et une coordination étroite avec les
fournisseurs.

Figure 8

Figure 9

57
X. PRESENTATION DE L’ENVIRONNEMENT
DE TRAVAIL JAVA

Java est un langage de programmation informatique orienté objet utilisé


pour la création des applications ou logiciels. Pour le faire fonctionner, nous
avons besoin :
Le Java Development Kit (JDK) désigne un ensemble de bibliothèques
logicielles de base du langage de programmation Java, ainsi que les
outils avec lesquels le code Java peut être compilé, transformé en byte
code destiné à la machine virtuelle Java.
Il existe plusieurs éditions de JDK, selon la plate-forme Java considérée (et
bien évidemment la version de Java ciblée) :
• JSE pour la Java 2 Standard Edition également désignée J2SE ;
• JEE, sigle de Java Enterprise Edition également désignée J2EE ;.
JME 'Micro Edition', destinée au marché mobiles ;
À chacune de ces plateformes correspond une base commune de
Development Kits, plus des bibliothèques additionnelles spécifiques selon la
plate-forme Java que le JDK cible, mais le terme de JDK est appliqué
indistinctement à n'importe laquelle de ces plates-formes.
IDE : En programmation informatique, un environnement de
développement est un ensemble d'outils qui permet d'augmenter la
productivité des programmeurs qui développent des logiciels. Il
comporte un éditeur de texte destiné à la programmation, des fonctions
qui permettent, par pression sur un bouton, de démarrer le compilateur
ou l'éditeur de liens ainsi qu'un débogueur en ligne, qui permet
d'exécuter ligne par ligne le programme en cours de construction.
Certains environnements sont dédiés à un langage de programmation en
particulier. L'objectif d'un environnement de développement est

58
d'augmenter la productivité des programmeurs en automatisant une
partie des activités et en simplifiant les opérations.
Dans un environnement de développement « intégré » (abrégé EDI en
français ou IDE en anglais, pour (Integrated Development Environment), les
outils sont prévus pour être utilisés ensemble (le produit d'un outil peut servir de
matière première pour un autre outil). Les outils peuvent être intégrés dès le
départ, c'est-à-dire qu'ils sont construits dans le but d'être utilisés ensemble. Il
peut aussi s'agir d'un ensemble d'outils développés sans lien entre eux et
intégrés à posteriori.
Il existe plusieurs IDE pour Java donc les plus connu sont : Eclipse,
NetBeans, IntelliJ. Dans le cadre de notre travail nous allons utiliser Eclipse.

1- PROCEDURE D’INSTALLATION DE
L’ENVIRONNEMENT DE TRAVAIL

« Eclipse » est un environnement de développement intégré pour des


applications open source et multi-plateformes. Cela fonctionne principalement
comme plateforme de programmation, et il peut compiler et déboguer beaucoup
de langues de programmation : bien qu’il soit plus connu pour la programmation
dans Java, sa modularité permet de l'utiliser pour la programmation en C, Python,
et ainsi que beaucoup d'autres.
C’est un projet, décliné et organisé en un ensemble de sous-projets de
développements logiciels, de la fondation Eclipse visant à développer un
environnement de production de logiciels libre qui soit extensible, universel et
polyvalent, en s'appuyant principalement sur Java.
Son cadre est clair et organisé en plusieurs fenêtres différentes avec un degré
important de personnalisation. Outre cela, bien que l'éditeur ait plusieurs outils
intégrés pour déboguer et analyser les erreurs, il permet aussi de travailler avec

59
des aperçus des projets, donc on peux voir à quoi l'application va ressembler dans
Java sans devoir compiler et le lancer.
Bien qu’Eclipse ait d’abord été uniquement conçu pour produire des
environnements de développement, les utilisateurs et contributeurs se sont
rapidement mis à réutiliser ses briques logicielles pour des applications clientes
classiques. Cela a conduit à une extension du périmètre initial d'Eclipse à toute
production de logiciel : c'est l'apparition du Framework Eclipse RCP (Rich Client
Platform) en 2004.

Procédure d’installation d’un JDK : JDK8

Accédez au site de téléchargement via le site https :


//downzen.com/fr/windows/java-development-kit-jdk/download/8-update-251/

Figure 10

60
Figure 11

Cliquez sur télécharger en choisissant l’extension qui correspond à votre système.

Figure 12

Faites un double clic sur le setup.

61
Cliquez sur ‘Next’

Figure 14

Choisissez ‘Source code’ puis cliquez sur ‘Next’

Figure 15

Installation du JDK

62
Cliquez sur ‘Next’ si Figure 16 vous ne
souhaitez pas modifier l’emplacement du dossier d’installation

Figure 17

Cliquez sur ‘close’ pour terminer l’installation

63
XI. Procédure d’installation d’Eclipse

Dans ce qui suit nous allons vous présenter la procédure d’installation


d’Eclipse partant du site de téléchargement dans un navigateur :
Site de téléchargement : https://wiki.eclipse.org/Older_Versions_Of_Eclipse

Figure 18

Ici on vous présente plusieurs versions d’Eclipse ainsi que leurs années de
sorties. Dans le cadre de notre exposé nous allons utiliser ‘Eclipse Kepler SR2
Packages (2014 – v 4.3.2)’.

64
Tableau 2

Cliquez sur l’extension correspondant à votre système

Figure 19

65
Tableau 3

Faites un double clic sur le fichier pour le décompresser

Choisir l’emplacement ou vous voulez enregistrez le dossier

66
Tableau 4

Faites un double clic sur l’application

Figure 20

Choisissez l’espace de stockage des fichiers de programmation

67
Figure 21

1- PRESENTATION DE L’INTERFACE JAVA-


ECLIPSE

Debug
lecture.java
Run Class
New java
class
Espace de codage

Figure 22

Espace projet

Console
Console d’execution
68
Quelques mots clés pour la suite :

Debug : Repère les erreurs de lecture dans le code source ;


Run : Lance l’exécution du programme ;
New Java Class : Pour créer une nouvelle classe ;
Class : Modèle de définition pour les objets ;
Espace de codage : Lieu réservé aux lignes de code ;
Espace de projet : Lieu ou sont placés les projets ;
Console : Zone d’exécution du code.

XII. Cas pratique : premier programme Java

Enfin

public class BonjourUser {

public static void main (String [] args) {

69
System.out.println("Bonjour Utilisateur !") ;

La première ligne public class BonjourUtilisateur déclare une classe


publique nommée “Bonjour Monsieur/Mademoiselle ”. En Java, tout est organisé en classes,
et c’est essentiellement le “conteneur” qui contient notre code.

Ensuite, public static void main(String[] args) est la méthode principale de la


classe. C’est là que commence l’exécution du programme.

Dans la méthode principale, nous avons System.out.println("Bonjour Utilisateur


!");. Cette ligne est responsable de l’impression de “Bonjour, Monde !” à la console. La
fonction System.out.println() fait partie de la bibliothèque standard Java, qui permet la
sortie vers la console.

Maintenant on ouvre l’environnement pour voir comment s’exécute le programme

70
Comment a-t-on créé le code au-dessus là

On a l’environnement JDK21 donc on choisit cela puis on donne le nom au projet

On clique sur Next

Et puis j’enlève le fragment de code qui est là parce que je veux écrire mon code

71
On crée une nouvelle classe un clic droit sur le src

72
C’est important de comprendre le concept de Classe ici

73
Puis on utilise la méthode telle que décrite plus haut pour afficher à l’utilisateur bienvenu Utilisateur
👤

74
Pour terminer éviter d’appeler vos packages avec des noms comme JavaFirst Javaetc sinon le
module aura des problèmes de cohérence.

C’est tout pour créer un tel programme

J’espère qu’il est compréhensible

75
Conclusion
Il était question de planter le décor du cours par ce premier exposé qui portait sur la
présentation de Java en tant que langage de programmation orienté objet ou devrais-je dire
meilleur langage de la programmation orienté objet nous avons parlé des avantages de ce
dernier par rapport aux autres langages de ses caractéristiques, de son environnement et de la
société sous laquelle elle ne cesse de croitre aujourd’hui avec plus de 21 millions d’utilisateurs
en 2023.

Si vous voulez faire partie de quelque chose d’important, vous ne pouvez vous tromper avec
JAVA. Si vous souhaitez démarrer une carrière dans l’informatique, vous ne pourrez non plus
vous tromper avec Java.

Facile à apprendre, Java est une option parfaite pour tous les niveaux technologiques, tous les
âges, à tous ég ards. C’est un langage de programmation de haut niveau bien établi avec une
courbe d’apprentissage légère mais des résultats fructueux. De plus, les concepts Java sont
hautement transférables à de nombreux autres langages de programmation. Il nous apprend à
penser comme un vrai programmeur, en utilisant la logique et en mettant les idées à l’épreuve
lorsque nous traversons des processus délicats

76

Vous aimerez peut-être aussi