Introduction à Java

Java est un terme générique désignant le langage de programmation orienté objet Java et la plateforme Java lancés par Sun Microsystems en mai 1995. Il a été développé par James Gosling et ses collègues et officiellement publié en 1995.

Plus tard, Sun a été racheté par Oracle Corporation, et Java est ensuite devenu un produit d'Oracle.

Java est divisé en trois systèmes :

  • JavaSE (J2SE) (Java 2 Platform Standard Edition, Java Platform Standard Edition)
  • JavaEE (J2EE) (Java 2 Platform, Enterprise Edition, Java Platform Enterprise Edition)
  • JavaME (J2ME) (Java 2 Platform Micro Edition, Java Platform Micro Edition).

En juin 2005, la conférence JavaOne s'est tenue, et Sun a annoncé Java SE 6. À cette époque, les différentes versions de Java ont été renommées pour supprimer le chiffre "2" : J2EE a été renommé Java EE, J2SE a été renommé Java SE, et J2ME a été renommé Java ME.


Fonctionnalités principales

  • Le langage Java est simple :

    La syntaxe du langage Java est très similaire à celle du C et du C++, ce qui facilite l'apprentissage et l'utilisation pour la plupart des programmeurs. En revanche, Java abandonne les fonctionnalités de C++ rarement utilisées, difficiles à comprendre et sources de confusion, telles que la surcharge des opérateurs, l'héritage multiple et la conversion de type forcée automatique. En particulier, le langage Java n'utilise pas de pointeurs mais des références. Il offre également une allocation et une récupération automatiques de l'espace mémoire, de sorte que les programmeurs n'ont pas à se soucier de la gestion de la mémoire.

  • Le langage Java est orienté objet :

    Le langage Java fournit des fonctionnalités orientées objet telles que les classes, les interfaces et l'héritage. Pour plus de simplicité, il ne prend en charge que l'héritage simple entre classes, mais il prend en charge l'héritage multiple entre interfaces, et prend en charge le mécanisme d'implémentation entre classes et interfaces (le mot-clé est implements). Le langage Java prend entièrement en charge la liaison dynamique, tandis que C++ n'utilise la liaison dynamique que pour les fonctions virtuelles. En bref, Java est un langage de programmation purement orienté objet.

  • Le langage Java est distribué :

    Le langage Java prend en charge le développement d'applications Internet. Dans l'interface de programmation d'applications Java de base, il existe une interface de programmation d'applications réseau (java net), qui fournit des bibliothèques de classes pour la programmation d'applications réseau, notamment URL, URLConnection, Socket, ServerSocket, etc. Le mécanisme RMI (Remote Method Invocation) de Java est également un moyen important de développer des applications distribuées.

  • Le langage Java est robuste :

    Le mécanisme de typage fort de Java, la gestion des exceptions et le ramasse-miettes automatique sont des garanties importantes de la robustesse des programmes Java. L'abandon des pointeurs est un choix judicieux pour Java. Le mécanisme de vérification de sécurité de Java rend Java encore plus robuste.

  • Le langage Java est sécurisé :

    Java est souvent utilisé dans les environnements réseau. Pour cette raison, Java fournit un mécanisme de sécurité pour empêcher les attaques par du code malveillant. Outre les nombreuses fonctionnalités de sécurité du langage Java, Java dispose d'un mécanisme de prévention de sécurité (la classe ClassLoader) pour les classes téléchargées sur le réseau, comme l'attribution d'espaces de noms différents pour empêcher la substitution de classes locales portant le même nom, la vérification du bytecode, et un mécanisme de gestion de la sécurité (la classe SecurityManager) qui permet aux applications Java de définir des sentinelles de sécurité.

  • Le langage Java est indépendant de l'architecture :

    Les programmes Java (fichiers avec l'extension .java) sont compilés sur la plateforme Java dans un format de bytecode indépendant de l'architecture (fichiers avec l'extension .class), qui peut ensuite s'exécuter sur tout système mettant en œuvre la plateforme Java. Cette approche convient aux environnements réseau hétérogènes et à la distribution de logiciels.

  • Le langage Java est portable :

    Cette portabilité découle de l'indépendance vis-à-vis de l'architecture. De plus, Java spécifie strictement la longueur de chaque type de données de base. Le système Java lui-même est également hautement portable : le compilateur Java est implémenté en Java, et l'environnement d'exécution Java est implémenté en ANSI C.

  • Le langage Java est interprété :

    Comme mentionné précédemment, les programmes Java sont compilés au format bytecode sur la plateforme Java, puis peuvent s'exécuter sur tout système mettant en œuvre la plateforme Java. À l'exécution, l'interpréteur Java de la plateforme Java interprète et exécute ces bytecodes, et les classes nécessaires pendant l'exécution sont chargées dans l'environnement d'exécution pendant la phase d'édition de liens.

  • Java est performant :

    Comparé aux langages de script de haut niveau interprétés, Java est effectivement performant. En fait, avec le développement de la technologie de compilateur JIT (Just-In-Time), la vitesse d'exécution de Java se rapproche de plus en plus de celle de C++.

  • Le langage Java est multi-thread :

    Dans le langage Java, un thread est un objet spécial qui doit être créé par la classe Thread ou ses sous-classes (classes descendantes). Il existe généralement deux façons de créer un thread : l'une consiste à utiliser un constructeur avec la signature Thread(Runnable) pour encapsuler un objet qui implémente l'interface Runnable dans un thread ; l'autre consiste à dériver une sous-classe de la classe Thread et à redéfinir la méthode run ; l'objet créé à l'aide de cette sous-classe est le thread. Il convient de noter que la classe Thread implémente déjà l'interface Runnable, donc chaque thread possède sa méthode run, et la méthode run contient le code que le thread doit exécuter. L'activité d'un thread est contrôlée par un ensemble de méthodes. Le langage Java prend en charge l'exécution simultanée de plusieurs threads et fournit un mécanisme de synchronisation entre plusieurs threads (le mot-clé est synchronized).

  • Le langage Java est dynamique :

    L'un des objectifs de conception du langage Java est de s'adapter à des environnements en évolution dynamique. Les classes requises par un programme Java peuvent être chargées dynamiquement dans l'environnement d'exécution, et les classes nécessaires peuvent également être chargées via le réseau. Cela facilite également les mises à niveau logicielles. De plus, les classes en Java ont une représentation à l'exécution, ce qui permet la vérification des types à l'exécution.


Historique du développement

  • Le 23 mai 1995, le langage Java est né.
  • En janvier 1996, le premier JDK - JDK 1.0 - est né.
  • En avril 1996, 10 des principaux fournisseurs de systèmes d'exploitation ont annoncé qu'ils intégreraient la technologie Java dans leurs produits.
  • En septembre 1996, environ 83,000 pages web ont été créées à l'aide de la technologie Java.
  • Le 18 février 1997, JDK 1.1 est sorti.
  • Le 2 avril 1997, la conférence JavaOne a eu lieu, avec plus de 10,000 participants, établissant un record à l'époque pour l'ampleur des conférences similaires dans le monde.
  • En septembre 1997, la communauté Java Developer Connection comptait plus de 100,000 membres.
  • En février 1998, le JDK 1.1 a été téléchargé plus de 2,000,000 fois.
  • Le 8 décembre 1998, la plate-forme Java 2 pour l'entreprise J2EE a été publiée.
  • En juin 1999, Sun a publié trois versions de Java : Standard Edition (Java SE, anciennement J2SE), Enterprise Edition (Java EE, anciennement J2EE) et Micro Edition (Java ME, anciennement J2ME).
  • Le 8 mai 2000, le JDK 1.3 a été publié.
  • Le 29 mai 2000, le JDK 1.4 a été publié.
  • Le 5 juin 2001, Nokia a annoncé qu'elle vendrait 100 millions de téléphones mobiles compatibles Java d'ici 2003.
  • Le 24 septembre 2001, J2EE 1.3 a été publié.
  • Le 26 février 2002, J2SE 1.4 a été publié, et depuis lors, les capacités de calcul de Java ont été grandement améliorées.
  • À 18 h 00 le 30 septembre 2004, J2SE 1.5 a été publié, devenant un autre jalon dans l'histoire du langage Java. Pour indiquer l'importance de cette version, J2SE 1.5 a été renommé Java SE 5.0.
  • En juin 2005, la conférence JavaOne s'est tenue, et Sun a annoncé Java SE 6. À cette époque, les différentes versions de Java ont été renommées pour supprimer le chiffre "2" : J2EE a été renommé Java EE, J2SE a été renommé Java SE, et J2ME a été renommé Java ME.
  • En décembre 2006, Sun a publié JRE 6.0.
  • Le 20 avril 2009, Oracle a acquis Sun pour 7.4 milliards de dollars, obtenant les droits d'auteur sur Java.
  • En novembre 2010, en raison de l'attitude peu amicale d'Oracle envers la communauté Java, Apache a menacé de se retirer du JCP.
  • Le 28 juillet 2011, Oracle a publié la version officielle de Java 7.0.
  • Le 18 mars 2014, Oracle a publié Java SE 8.
  • Le 21 septembre 2017, Oracle a publié Java SE 9.
  • Le 21 mars 2018, Oracle a publié Java SE 10.
  • Le 25 septembre 2018, Java SE 11 est sorti.
  • Le 20 mars 2019, Java SE 12 est sorti.

Outils de développement Java

Pour le langage Java, essayez de vous assurer que le système dispose de plus de 1G de mémoire. Les autres outils sont les suivants :

Après avoir installé les outils ci-dessus, nous pouvons afficher le premier programme Java, « Hello World! »

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }

Dans le chapitre suivant, nous présenterons comment configurer l'environnement de développement Java.

Autres extensions