'>

langage de programmation Java

Java est un concurrent, orienté objet langage de programmation informatique à usage général basé sur des classes qui est spécifiquement conçu pour avoir aussi peu de dépendances de mise en œuvre possible. Il est destiné à permettre aux développeurs d'applications "write once, run anywhere" (WORA), ce qui signifie que le code qui s'exécute sur une plate-forme n'a pas besoin d'être recompilés pour fonctionner sur un autre. Les applications Java sont généralement compilés en bytecode (fichier de classe) qui peut fonctionner sur n'importe quelle machine virtuelle Java (JVM), indépendamment de l'architecture informatique. Java est, à partir de 2012, l'un des langages de programmation les plus populaires en utilisation, en particulier pour les applications web client-serveur, avec une rapporté 10 millions d'utilisateurs. [10] [11] Java a été initialement développé par James Gosling chez Sun Microsystems (qui a depuis fusionné avec Oracle Corporation) et publié en 1995 en tant que composante de base de la plate-forme Java de Sun Microsystems. La langue tire une grande partie de sa syntaxe du C et du C + +, mais il a moins de facilités de bas niveau que l'un d'eux.

Les machines virtuelles originales, et la mise en œuvre des compilateurs Java de référence, et les bibliothèques de classes ont été développées par Sun à partir de 1991 et d'abord publié en 1995. En mai 2007, en conformité avec les spécifications du Java Community Process, Sun relicenciée la plupart de ses technologies Java sous la licence GNU General Public License. D'autres ont aussi développé d'autres implémentations de ces technologies soleil, comme le compilateur GNU pour Java et GNU Classpath.


Histoire
Voir aussi: Java (plateforme logicielle) # Histoire
Duke, la mascotte de Java

James Gosling, Mike Sheridan, et Patrick Naughton lancé le projet du langage Java en Juin 1991. [12] Java a été conçu à l'origine pour la télévision interactive, mais il était trop avancé pour l'industrie de la télévision numérique par câble à l'époque. [13] La langue a été initialement appelé chêne après un chêne qui se trouvait à l'extérieur du bureau de Gosling, il était connu sous le nom de vert plus tard, et a ensuite été rebaptisé Java, du café de Java, a déclaré être consommés en grande quantité par les créateurs de la langue [citation nécessaire] Gosling visait à. mettre en œuvre une machine virtuelle et un langage qui a eu un familier C / C + + style de notation [14].

Sun Microsystems a publié la première application publique que Java 1.0 en 1995. [1] Il a promis "Write once, run anywhere" (WORA), offrant sans frais des temps de parcours sur les plates-formes populaires. Assez sécurisé et configurable avec la sécurité, il a permis restrictions réseau et d'accès aux fichiers. Les principaux navigateurs Internet bientôt incorporées la capacité d'exécuter des applets Java dans les pages Web, et Java sont rapidement devenus populaires. Avec l'avènement de Java 2 (publié initialement en tant que J2SE 1.2 en Décembre 1998 - 1999), de nouvelles versions avaient de multiples configurations construites pour différents types de plates-formes. Par exemple, J2EE ciblé les applications d'entreprise et la version J2ME considérablement allégée pour les applications mobiles (mobiles Java). J2SE désigné la Standard Edition. En 2006, à des fins de marketing, Sun renommé nouvelles versions J2 que Java EE, Java ME et Java SE, respectivement.

En 1997, Sun Microsystems s'est approché du corps ISO / IEC normes du JTC 1 et plus tard l'Ecma International pour officialiser Java, mais il est vite retiré du processus [15]. Java reste un standard de facto, contrôlée par le Java Community Process. [16] À une certaine époque, Sun a fait la plupart de ses implémentations Java disponibles, sans frais, en dépit de leur statut de logiciel propriétaire. Sun a généré des revenus de Java grâce à la vente de licences pour des produits spécialisés tels que le Java Enterprise System. Sun fait la distinction entre son kit de développement logiciel (SDK) et Runtime Environment (JRE) (un sous-ensemble du SDK), la principale distinction implique l'absence du compilateur, les programmes utilitaires et les fichiers d'en-tête du JRE.

Le 13 Novembre 2006, Sun a publié une grande partie de Java en tant que logiciel libre et open source (FOSS), selon les termes de la Licence Publique Générale GNU (GPL). Le 8 mai 2007, Sun a terminé le processus, ce qui rend tout le code de base de Java disponible sous logiciel libre / conditions de distribution open-source, à part une petite portion de code à laquelle Sun ne détient le droit d'auteur [17].

Vice-président Rich Green Sun a dit que le rôle idéal de Sun à l'égard de Java était comme un "évangéliste". [18] Suite à l'acquisition de Sun Microsystems par Oracle Corporation en 2009-2010, Oracle a lui-même décrit comme le "gardien de la technologie Java avec une engagement sans relâche au développement d'une communauté de participation et de transparence ». [19] Ce n'était pas titulaire d'Oracle, cependant, de déposer une plainte contre Google peu de temps après pour l'utilisation de Java dans le SDK Android (voir la section Google ci-dessous). Logiciel Java s'exécute sur des ordinateurs portables aux centres de données, des consoles de jeux aux superordinateurs scientifiques. Il ya 930 millions de téléchargements Java Runtime Environnement chaque année et 3 milliards de téléphones mobiles exécuter Java. [20] Le 2 Avril 2010, James Gosling a démissionné de Oracle. [21]
Principes
James Gosling, le créateur de Java

Il y avait cinq objectifs principaux dans la création du langage Java [22]:

    Il doit être «simple, orienté objet et familier"
    Il devrait être "robuste et sécurisée"
    Il devrait être "l'architecture neutre et portable"
    Il doit exécuter avec "haute performance"
    Il doit être «interprétée, vissé et dynamique"

Versions
Article détaillé: Histoire de la version Java

Des versions majeures de Java, ainsi que leurs dates de sortie:

    JDK 1.0 (21 Janvier, 1996)
    JDK 1.1 (19 Février, 1997)
    J2SE 1.2 (8 Décembre, 1998)
    J2SE 1.3 (le 8 mai 2000)
    J2SE 1.4 (6 Février 2002)
    J2SE 5.0 (30 Septembre, 2004)
    Java SE 6 (11 Décembre 2006)
    Java SE 7 (28 Juillet, 2011)

Pratiques
Plate-forme Java
Principaux articles: Java (plateforme logicielle) et la machine virtuelle Java

Une caractéristique de Java est la portabilité, ce qui signifie que les programmes informatiques écrits dans le langage Java doivent exécuter la même manière sur tout matériel / plate-forme du système d'exploitation. Ce résultat est obtenu en compilant le code du langage Java à une représentation intermédiaire appelée Java bytecode, au lieu de directement à la plate-forme spécifique du code machine. Instructions bytecode Java sont analogues en code machine, mais ils sont destinés à être interprété par une machine virtuelle (VM) écrite spécialement pour le matériel de l'hôte. Les utilisateurs finaux utilisent couramment un environnement d'exécution Java (JRE) installé sur leur machine pour les applications Java autonomes, ou dans un navigateur Web pour les applets Java.

Bibliothèques standardisées fournissent un moyen générique pour accéder aux fonctionnalités spécifiques à l'hôte tels que des graphiques, de filetage et de réseautage.

Un avantage majeur de l'utilisation de bytecode est le portage. Toutefois, les frais généraux d'interprétation signifie que les programmes interprétés fonctionnent presque toujours plus lentement que les programmes compilés pour des exécutables natifs ferait. Compilateurs Just-in-Time (JIT) ont été introduits à un stade précoce que bytecode de compilation en code machine pendant l'exécution.
Implémentations
Voir aussi: implémentations Java gratuites

Oracle Corporation est le propriétaire actuel de la mise en œuvre officielle de la plate-forme Java SE, suite à l'acquisition de Sun Microsystems, le 27 Janvier 2010. Cette mise en œuvre est basée sur la mise en œuvre initiale de Java par Sun. La mise en œuvre d'Oracle est disponible pour Mac OS X, Windows et Solaris. Parce que Java est dépourvu de toute standardisation formelle reconnue par Ecma International, ISO / IEC, ANSI, ou tout autre organisme de normalisation tiers, la mise en œuvre d'Oracle est le standard de facto.

La mise en œuvre d'Oracle est conditionnée en deux distributions différentes: Le Java Runtime Environment (JRE) qui contient les éléments de la plate-forme Java SE requis pour exécuter les programmes Java et est destiné aux utilisateurs finaux, et le Java Development Kit (JDK), qui est destiné aux développeurs de logiciels et inclut des outils de développement tels que le compilateur Java, Javadoc, Pot, et un débogueur.

OpenJDK est une autre application Java SE notable qui est sous licence GPL. La mise en œuvre a commencé lorsque Sun a commencé à libérer le code source de Java sous licence GPL. Comme de Java SE 7, OpenJDK est l'implémentation de référence officielle de Java.

Le but de Java est de faire toutes les implémentations de Java compatible. Historiquement, marque la licence de Sun pour l'utilisation de la marque Java insiste sur le fait que toutes les implémentations soient «compatibles». Il en est résulté un litige avec Microsoft après que Sun a affirmé que la mise en œuvre Microsoft ne prend pas en charge RMI ou JNI et a ajouté des fonctionnalités spécifiques à la plateforme de leur propre chef. Sun a poursuivi en 1997 et en 2001, a remporté un règlement de 20 millions de dollars, ainsi que d'une ordonnance d'un tribunal l'application des termes de la licence auprès de Sun. [23] En conséquence, Microsoft navires a plus de fenêtres avec Java.

Indépendant de la plateforme Java est essentielle pour Java EE, et une validation plus rigoureuse est nécessaire pour certifier une implémentation. Cet environnement permet aux applications côté serveur portables.
Résultats
Article principal: les performances Java

Les programmes écrits en Java ont la réputation d'être lent et nécessitant plus de mémoire que celles écrites en C + +. [24] [25] Cependant, la vitesse d'exécution des programmes Java s'est améliorée de façon significative avec l'introduction de la compilation juste-à-temps en 1997/1998 Java 1.1 [26], l'ajout de fonctionnalités de langage favorisant une meilleure analyse de code (comme les classes internes, la classe StringBuffer, assertions en option, etc), et des optimisations dans la machine virtuelle Java lui-même, comme HotSpot devenir le défaut pour JVM de Sun en 2000. En Décembre 2012 microbenchmarks montrent Java 7 est environ 44% plus lent que le C + +. [27]

Certaines plates-formes offrent un soutien matériel direct pour Java, il ya des microcontrôleurs qui peuvent exécuter Java dans le matériel au lieu d'une machine virtuelle Java, et processeurs basés sur ARM peuvent avoir un support matériel pour exécuter du bytecode Java à travers leur option Jazelle.
Gestion automatique de la mémoire

Java utilise un garbage collector automatique pour gérer la mémoire dans le cycle de vie de l'objet. Le programmateur détermine le moment où les objets sont créés, et l'environnement d'exécution Java est chargé de récupérer la mémoire une fois que les objets ne sont plus en utilisation. Une fois aucune référence à un objet demeurent, la mémoire inaccessible devient admissible à être libéré automatiquement par le garbage collector. Quelque chose de semblable à une fuite de mémoire peut encore se produire si le code d'un programmeur contient une référence à un objet qui n'est plus nécessaire, généralement lorsque des objets qui ne sont plus nécessaires sont stockés dans des conteneurs qui sont encore en usage. Si les méthodes d'un objet inexistant sont appelés, une «exception de pointeur null" est levée. [28] [29]

L'une des idées derrière le modèle de gestion automatique de la mémoire de Java est que les programmeurs peuvent être épargnés le fardeau d'avoir à effectuer une gestion manuelle de la mémoire. Dans certains langages, une mémoire pour la création d'objets est implicitement allouée sur la pile, ou explicitement allouée et libérée à partir du tas. Dans ce dernier cas, la responsabilité de la gestion de la mémoire réside avec le programmateur. Si le programme n'a pas désallouer un objet, une fuite de mémoire se produit. Si le programme tente d'accéder ou de libérer la mémoire qui a déjà été désaffectées, le résultat est indéfini et difficiles à prévoir, et le programme est susceptible de devenir instable et / ou de collision. Cela peut être résolu partiellement par l'utilisation de pointeurs intelligents, mais ils ajoutent un surplus et la complexité. Notez que la collecte des ordures n'empêche pas les fuites de mémoire "logiques", c'est à dire ceux où la mémoire est toujours référencé mais jamais utilisé.

Collecte des ordures ménagères peut arriver à tout moment. Idéalement, il se produit lorsqu'un programme est inactif. Il est assuré d'être déclenché si la mémoire est libre insuffisant sur le tas pour allouer un nouvel objet, ce qui peut causer un programme visant à bloquer momentanément. Gestion de la mémoire explicite n'est pas possible en Java.

Java ne supporte pas les C / C + + arithmétique des pointeurs de style, où les adresses des objets et des entiers non signés (généralement entiers longs) peuvent être utilisés de manière interchangeable. Cela permet le garbage collector à déménager des objets référencés et assure la sécurité de type.

Comme en C + + et d'autres langages orientés objet, les variables de types de données primitifs de Java ne sont pas des objets. Les valeurs de types primitifs sont soit stockés directement dans les champs (pour les objets) ou sur la pile (pour les méthodes) plutôt que sur le tas, comme souvent vrai pour les objets (mais voir l'analyse d'échappement). Cela a été une décision consciente par les concepteurs de Java pour des raisons de performance. Pour cette raison, Java n'a pas été considéré comme un langage de programmation orienté objet pur. Cependant, comme de Java 5.0, autoboxing permet aux programmeurs de faire comme si les types primitifs étaient des instances de leur classe wrapper.

Java contient plusieurs types d'éboueurs. Par défaut, [citation nécessaire] HotSpot utilise le collecteur de balayage de marque concurrente, également connu sous le CMS garbage collector ou CMS. Cependant, il ya aussi plusieurs autres éboueurs qui peuvent être utilisés pour gérer le tas. Pour 90% des applications en Java, le garbage collector CMS est suffisante. [30] Oracle vise à remplacer CMS avec le Garbage-premier collecteur (G1).
Syntaxe
Article détaillé: syntaxe Java

La syntaxe de Java est largement dérivé du C + +. Contrairement à C + +, qui combine la syntaxe de programmation structurée, générique, et orientée objet, Java a été construit presque exclusivement comme un langage orienté objet. Tout le code est écrit à l'intérieur d'une classe, et tout est un objet, à l'exception des types de données primitifs (par exemple des nombres entiers, nombres à virgule flottante, les valeurs booléennes, et les personnages), qui ne sont pas des classes pour des raisons de performances.

Contrairement à C + +, Java ne supporte pas la surcharge de l'opérateur ou de l'héritage multiple pour les classes. Cela simplifie le langage et aide à prévenir les erreurs potentielles et la conception anti-modèle.

Java utilise des méthodes similaires à commentant C + +. Il existe trois styles différents de commentaires: un seul style de ligne marqué par deux barres obliques (/ /), un style de ligne multiple ouvert avec / * et fermé par * /, et le style commentant Javadoc ouvert avec / ** et fermés avec * / . Le style Javadoc de commenter permet à l'utilisateur de lancer l'exécutable de Javadoc pour compiler la documentation pour le programme.

Exemple:

/ / Ceci est un exemple de commentaire d'une ligne à l'aide de deux barres obliques

/ * Ceci est un exemple d'un commentaire de plusieurs lignes en utilisant la barre oblique et astérisque.
 Ce type de commentaire peut être utilisé pour contenir une foule de renseignements ou désactiver
 code, mais il est très important de se rappeler de fermer le commentaire. * /

/ **
 * Ceci est un exemple d'un commentaire Javadoc; Javadoc peut établir une documentation
 * À partir de ce texte.
 * /

/ ** Enfin, un exemple d'une méthode écrite en Java, enveloppé dans une classe. * /
fibsandlies du paquet;
importer java.util.HashMap;

FibCalculator public class Fibonacci outils Calculatrice {
    private static HashMap <Integer, entier> memoized = new HashMap <Integer, entier> ();

    / ** Compte tenu d'un certain nombre FIBINDEX non-négatif, les retours,
     * Le nombre de Fibonacci Nth, où N est égal FIBINDEX.
     * @ Param fibIndex L'indice du nombre de Fibonacci
     * @ Return Le nombre de Fibonacci lui-même
     * /
    @ Override
    public static int Fibonacci (int fibIndex) {
        si (memoized.contains (fibIndex)) {
            retourner memoized.get (fibIndex);
        } Else {
            int answer = Fibonacci (fibIndex - 1) + Fibonacci (fibIndex - 2);
            memoized.put (fibIndex, réponse);
            retourner répondre;
        }
    }
}

Exemples
Cet article contient des instructions, des conseils, ou comment faire du contenu. Le but de Wikipedia est de présenter les faits, de ne pas s'entraîner. S'il vous plaît aider à améliorer cet article soit en réécrivant le how-to contenu ou en le déplaçant vers Wikiversity, Wikilivres ou Wikivoyage (Janvier 2012)
L'utilisation de cet article des liens externes peuvent ne pas suivre les politiques ou lignes directrices de Wikipedia. S'il vous plaît améliorer cet article en supprimant des liens externes excessifs ou inappropriés, et la conversion de liens utiles le cas échéant dans les références en bas de page. (Mars 2013)
Bonjour tout le monde

Le programme Bonjour tout le monde traditionnel peut être écrit en Java comme suit: [31]

classe HelloWorldApp {
    public static void main (String [] args) {
        System.out.println ("Bonjour tout le monde!"); / / Affiche la chaîne.
    }
}

Pour comparer à d'autres langages de programmation voir la liste des exemples de programmes de Hello World.

Les fichiers sources doivent être nommés d'après la classe publique qu'ils contiennent, ajoutant le suffixe. java, par exemple, HelloWorldApp.java. Il doit d'abord être compilé en bytecode, à l'aide d'un compilateur Java, produisant un fichier nommé HelloWorldApp.class. C'est alors seulement peut-il être exécuté, ou «lancé». Le fichier source Java peut contenir qu'une seule classe publique, mais elle peut contenir plusieurs classes avec autre chose que l'accès du public et un certain nombre de classes internes publics.

Une classe qui n'est pas déclarée public peut être stocké dans un fichier java.. Le compilateur génère un fichier de classe pour chaque classe définie dans le fichier source. Le nom du fichier de classe est le nom de la classe, avec. Classe annexe. Pour la génération de fichier de classe, les classes anonymes sont traités comme si leur nom était la concaténation du nom de leur classe englobante, a $, et un entier.

Le mot clé publique indique qu'une méthode peut être appelée à partir du code dans d'autres classes, ou qu'une classe peut être utilisé par les classes en dehors de la hiérarchie de classes. La hiérarchie de classes est lié au nom du répertoire dans lequel le fichier Java. Est situé.

Le mot-clé statique devant un procédé indique une méthode statique, qui est associé seulement à la classe et non pas avec une instance spécifique de cette classe. Seules les méthodes statiques peuvent être appelées sans une référence à un objet. Les méthodes statiques ne peuvent pas accéder à tous les membres de la classe qui ne sont pas aussi statique.

Le mot-clé vide indique que la principale méthode ne retourne aucune valeur à l'appelant. Si un programme Java est de sortir avec un code d'erreur, il doit appeler System.exit () explicitement.

Le nom de la méthode "main" n'est pas un mot dans le langage Java. Il est tout simplement le nom de la méthode du lanceur Java appelle à passer le contrôle au programme. Les classes Java qui s'exécutent dans des environnements gérés tels que des applets et Enterprise JavaBeans n'utilisent pas ou ont besoin d'une méthode main (). Un programme Java peut contenir plusieurs classes qui ont méthodes principales, ce qui signifie que la machine virtuelle doit être explicitement dit ce qui classe le lancement de.

La principale méthode doit accepter un tableau d'objets String. Par convention, il est référencé comme args bien que n'importe quel autre nom de l'identificateur juridique peut être utilisé. Depuis Java 5, la principale méthode peut également utiliser des arguments variables, sous la forme de public static void main (String. .. args), permettant à la méthode principale pour être appelé avec un nombre arbitraire d'arguments à cordes. L'effet de cette déclaration alternative est sémantiquement identique (le paramètre args est toujours un tableau d'objets String), mais il permet une syntaxe alternative pour la création et passant le tableau.

Le lanceur lance Java Java en chargeant une classe donnée (indiquée sur la ligne de commande ou comme un attribut dans un fichier JAR) et à partir de son public static void main (String []) méthode. Programmes autonomes doivent déclarer explicitement cette méthode. La chaîne paramètre [] args est un tableau d'objets String contenant tous les arguments transmis à la classe. Les paramètres à principale sont souvent transmis par l'intermédiaire d'une ligne de commande.

L'impression est partie d'une bibliothèque standard Java: La classe System définit un champ public static appelé. L'objet en est une instance de la classe PrintStream et fournit de nombreuses méthodes pour imprimer des données sur la sortie standard, y compris println (String) qui ajoute également une nouvelle ligne à la chaîne passée.

La chaîne "Bonjour tout le monde!" est automatiquement converti en un objet String par le compilateur.




/ / OddEven.java
importer javax.swing.JOptionPane;

public class OddEven {
    / **
     * "Input" est le numéro que l'utilisateur donne à l'ordinateur
     * /
    entrée int privé; / / un nombre entier ("int" désigne entier)

    / **
     * Il s'agit de la méthode constructeur. Elle est appelée quand un objet du type OddEven
     * Est créé.
     * /
    OddEven publique () {
        / *
         * Dans la plupart des programmes des constructeurs Java peut initialiser des objets avec des valeurs par défaut, ou créer
         * D'autres objets que cet objet pourrait utiliser pour s'acquitter de ses fonctions. Dans certains programmes Java, l'
         * Constructeur peut être simplement une fonction vide si rien ne doit être initialisé avant l'
         * Le fonctionnement de l'objet. Dans le cas de ce programme, un constructeur vide suffirait.
         * Un constructeur doit exister, mais si l'utilisateur n'a pas mis un dans le compilateur
         * Va créer un vide.
         * /
    }

    / **
     * C'est la méthode principale. Elle est appelée lorsque cette classe est géré par un interpréteur Java.
     * Args arguments de ligne de commande @ param (inutilisé)
     * /
    public static void main (String [] args finale) {
       / *
        * Cette ligne de code crée une nouvelle instance de cette classe appelée "nombre" (aussi connu comme un
        * Object) et l'initialise en appelant le constructeur. La prochaine ligne de code appelle
        * La méthode "showDialog ()", ce qui fait apparaître une invite à vous demander un certain nombre
        * /
       OddEven nombre = new OddEven ();
       number.showDialog ();
    }

    publique showDialog vide () {
        / *
         * "Essayer" s'assure que tout se passe bien. Si quelque chose est le cas,
         * L'interpréteur saute à "attraper" pour voir ce qu'il doit faire.
         * /
        try {
            / *
             * Le code ci-dessous fait apparaître une JOptionPane, qui est une boîte de dialogue
             * La chaîne renvoyée par la "showInputDialog ()» méthode est convertie en
             * Un entier, ce qui rend le programme traiter comme un nombre au lieu d'un mot.
             * Après cela, cette méthode appelle une deuxième méthode, calculer () qui sera
             * Afficher soit «Même» ou «Odd».
             * /
            this.input = Integer.parseInt (JOptionPane.showInputDialog ("S'il vous plaît entrer un nombre."));
            this.calculate ();
        } Catch (NumberFormatException finale e) {
            / *
             * Accès au bloc catch signifie qu'il y avait un problème avec le format de
             * Le nombre. Probablement quelques lettres ont été tapées en place d'un numéro.
             * /
            System.err.println ("ERREUR:.. D'entrée valide S'il vous plaît entrer une valeur numérique");
        }
    }

    / **
     * Lorsque cette est appelée, elle envoie un message à l'interprète.
     * L'interprète montre généralement sur l'invite de commande (Pour les utilisateurs de Windows)
     * Ou le terminal (* Pour les utilisateurs nix). (En supposant que c'est ouvert)
     * /
    calculer private void () {
        if ((this.input% 2) == 0) {
            JOptionPane.showMessageDialog (null, "even");
        } Else {
            JOptionPane.showMessageDialog (null, "Odd");
        }
    }
}

    L'instruction import importe la classe JOptionPane du package javax.swing.
    La classe OddEven déclare un champ privé de type int entrée nommé. Chaque instance de la classe OddEven possède sa propre copie du champ de saisie. La déclaration privé signifie qu'aucun autre classe peut accéder (en lecture ou en écriture) le champ de saisie.
    OddEven () est un constructeur public. Constructeurs avoir le même nom que la classe englobante ils sont déclarés dans, et contrairement à une méthode, n'ont pas de type de retour. Un constructeur est utilisé pour initialiser un objet qui est une instance nouvellement créée de la classe.
    Le calculate () est déclarée sans le mot-clé static. Cela signifie que la méthode est appelée à l'aide d'une instance spécifique de la classe OddEven. (La référence utilisée pour appeler la méthode est passé comme un paramètre non déclarée de Type OddEven nommé ce sujet.) La méthode teste l'expression entrée% 2 == 0 en utilisant le mot-clé if pour voir si le reste de la division du champ de saisie correspondant à l'instance de la classe en deux est égal à zéro. Si cette expression est vraie, alors elle imprime Même, si cette expression est fausse, il imprime Odd. (Le champ de saisie peut être équivalente accessible comme this.input, qui utilise explicitement la non déclaré ce paramètre.)
    Numéro OddEven = new OddEven (); déclare une variable de référence d'objet local dans la principale méthode nommée numéro. Cette variable peut contenir une référence à un objet de type OddEven. La déclaration initialise nombre en créant d'abord une instance de la classe OddEven, en utilisant le nouveau mot-clé et le constructeur OddEven (), puis en attribuant cette instance à la variable.
    La déclaration number.showDialog (); appelle la méthode de calcul. L'instance de l'objet OddEven référencé par la variable locale de numéro est utilisé pour invoquer la méthode et passé comme non déclarés ce paramètre à la méthode de calcul.
    entrée = Integer.parseInt (JOptionPane.showInputDialog ("S'il vous plaît entrer un numéro")); c'est une déclaration qui convertit le type de chaîne à la primitive de type int de données en utilisant une fonction d'utilité dans la primitive Entier classe wrapper.


Applet
Article détaillé: applet Java

Applets Java sont des programmes qui sont incorporés dans d'autres applications, typiquement dans une page Web affichée dans un navigateur Web.

/ / Hello.java
importer javax.swing.JApplet;
java.awt.Graphics d'importation;

public class Bonjour {JApplet
    vide paintComponent publique (finale Graphics g) {
        g.drawString ("Bonjour, monde!", 65, 95);
    }
}

Les états de l'importation directe du compilateur Java d'inclure le javax.swing.JApplet et classes java.awt.Graphics dans la compilation. L'instruction import permet à ces classes pour être référencés dans le code source en utilisant le nom de classe simple (JApplet) à la place du nom de classe entièrement qualifié (ie javax.swing.JApplet).

La classe Bonjour s'étend (sous-classes) le JApplet (Applet Java) classe; la classe JApplet fournit le cadre de l'application hôte pour afficher et contrôler le cycle de vie de l'applet. La classe JApplet est un JComponent (composant graphique Java) qui fournit l'applet avec la capacité d'afficher une interface utilisateur graphique (GUI) et de répondre à des événements utilisateur.

La classe Bonjour remplace le (Graphics) méthode paintComponent (outre indiqué à l'annotation, soutenu dans le JDK 1.5, Override) héritée de la superclasse Container fournir le code pour afficher l'applet. La méthode paintComponent () est passé d'un objet Graphics qui contient le contexte graphique utilisé pour afficher l'applet. La méthode paintComponent () appelle le cordon de contexte graphique (String, int, int) pour afficher le "Bonjour tout le monde!" chaîne à un décalage de (65, 95) à partir du coin supérieur gauche de l'écran de l'applet pixel.

! <DOCTYPE HTML PUBLIC "- / / W3C / / DTD HTML 4.01 / / EN"
"Http://www.w3.org/TR/html4/strict.dtd">
<-! Hello.html ->
<html>
    <head>
        Applet mondiale <title> Bonjour </ title>
    </ Head>
    <body>
        <applet code="Hello.class" width="200" height="200">
        </ Applet>
    </ Body>
</ Html>

Une applet est placé dans un document HTML en utilisant l'élément HTML <applet>. La balise applet a trois ensemble d'attributs: code = "Bonjour" spécifie le nom de la classe JApplet et largeur = hauteur "200" = "200" définit la largeur en pixels et la hauteur de l'applet. Les applets peuvent également être intégrées dans HTML en utilisant soit l'objet ou élément embed [32], bien que le soutien de ces éléments par les navigateurs Web est incompatible. [33] Cependant, la balise de l'applet est obsolète, si la balise object est préférable lorsque pris en charge.

L'application hôte, typiquement d'un navigateur Web, l'applet Bonjour instancie et crée un AppletContext pour l'applet. Une fois l'applet elle-même a été initialisé, il est ajouté à la hiérarchie d'affichage AWT. La méthode paintComponent () est appelée par l'événement AWT thread de distribution chaque fois que l'affichage a besoin de l'applet à se dessiner.
Servlet
Article détaillé: Java Servlet

La technologie Java Servlet fournit aux développeurs Web avec un mécanisme simple, cohérente pour étendre les fonctionnalités d'un serveur Web et pour accéder aux systèmes d'entreprise existants. Les servlets sont des composants côté serveur Java EE qui génèrent des réponses (pages HTML en général) aux demandes (généralement des requêtes HTTP) des clients. Une servlet peut presque être considéré comme un applet qui s'exécute sur le côté, sans serveur un visage.

/ / Hello.java
import java.io. *;
importer javax.servlet *.;

public class Bonjour {GenericServlet
    service public void (demande de ServletRequest finale, la réponse finale de ServletResponse)
    jette ServletException, IOException {
        response.setContentType ("text / html");
        pw PrintWrite final = response.getWriter ();
        try {
            pw.println ("Bonjour, monde!");
        } Finally {
            pw.close ();
        }
    }
}

Les états de l'importation directe du compilateur Java d'inclure toutes les classes publiques et les interfaces de l'java.io et forfaits javax.servlet dans la compilation.

La classe Bonjour étend la classe GenericServlet; la classe GenericServlet fournit l'interface pour le serveur pour transmettre les demandes au servlet et contrôler le cycle de vie du servlet.

La classe Bonjour substitue la méthode de service (ServletRequest, ServletResponse) définie par l'interface Servlet fournir le code pour le gestionnaire de demande de service. Le procédé de service () est transmis: un objet ServletRequest qui contient la requête du client et un objet ServletResponse utilisé pour créer la réponse renvoyée au client. La méthode de service () déclare qu'il jette le ServletException exceptions IOException et si un problème empêche de répondre à la demande.

L'(String) setContentType dans l'objet de réponse est appelée pour définir le type de contenu MIME des données renvoyées à "text / html". Procédé getWriter () dans la réponse renvoie un objet PrintWrite qui est utilisée pour écrire les données qui sont envoyées au client. La méthode println (String) est appelée pour écrire le "Bonjour tout le monde!" chaîne de la réponse et ensuite la méthode close () est appelée à fermer l'écrivain d'impression, ce qui provoque les données qui ont été écrites dans le flux doit être retourné au client.
JavaServer Pages
Article détaillé: JavaServer Pages

JavaServer Pages (JSP) sont composants côté serveur Java EE qui génèrent des réponses, des pages HTML, généralement aux requêtes HTTP des clients. JSP Embed code Java dans une page HTML en utilisant les séparateurs spéciaux <% et%>. Une JSP est compilé pour une servlet Java, une application Java dans son propre droit, la première fois qu'il est accessible. Après cela, le servlet généré crée la réponse.
application Swing
Article détaillé: Balançoire (Java)

Swing est une bibliothèque d'interface utilisateur graphique pour la plate-forme Java SE. Il est possible de spécifier un regard différent et se sentir à travers le regard et la sensation enfichable système de Swing. Les clones de Windows, GTK + et Motif sont fournis par Sun. Apple propose également un Aqua look and feel pour Mac OS X. Lorsque implémentations antérieures de ces regards et se sent peut-être été considéré comme dépourvu, Swing dans Java SE 6 résout ce problème en utilisant widget de plus native GUI dessin routines des plates-formes sous-jacentes.

Cet exemple d'application Swing crée une seule fenêtre avec "Bonjour tout le monde!" à l'intérieur:

/ / Hello.java (Java SE 5)
importer javax.swing *.;

public class Bonjour extends JFrame {
    Bonjour publique () {
        super ("bonjour");
        super.setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE);
        super.add (new JLabel ("Bonjour, monde!"));
        super.pack ();
        super.setVisible (true);
    }

    public static void main (String [] args finale) {
        nouvelle Bonjour ();
    }
}

La première importation inclut toutes les classes publiques et des interfaces du package javax.swing.

La classe Bonjour étend la classe JFrame; la classe JFrame implémente une fenêtre avec une barre de titre et d'un contrôle étroit.

Le constructeur Bonjour () initialise le cadre en appelant d'abord le constructeur de la superclasse, en passant le paramètre "bonjour", qui est utilisé comme titre de la fenêtre. Il appelle ensuite la méthode setDefaultCloseOperation (int) héritée de JFrame pour régler le fonctionnement par défaut lorsque le contrôle étroit sur la barre de titre est sélectionné pour WindowConstants.EXIT_ON_CLOSE - ce qui provoque le JFrame à être éliminés lorsque le cadre est fermé (par opposition au simple caché), qui permet à la machine virtuelle Java pour quitter le programme et de mettre fin. Ensuite, un JLabel est créée pour la chaîne "Bonjour, monde!" et la méthode add (Component) héritée de la superclasse des conteneurs est appelée pour ajouter l'étiquette sur le châssis. La méthode pack () héritée de la superclasse de la fenêtre est appelé à la taille de la fenêtre et se coucha sur son contenu.

La méthode main () est appelée par la machine virtuelle Java au démarrage du programme. Il instancie une nouvelle trame Bonjour et amène à afficher en appelant la méthode setVisible (Boolean) héritée de la superclasse des composants avec le paramètre booléen vrai. Une fois l'image est affichée, en sortant la principale méthode ne provoque pas d'arrêt du programme parce que le fil de dispatching événement AWT reste active jusqu'à ce que toutes les fenêtres de niveau supérieur battantes ont été éliminés.
Generics
Article détaillé: Génériques dans Java

En 2004, les médicaments génériques ont été ajoutées au langage Java, dans le cadre de J2SE 5.0. Avant l'introduction des génériques, chaque déclaration de variable devait être d'un type spécifique. Pour les classes de conteneurs, par exemple, c'est un problème car il n'y a pas de moyen facile de créer un conteneur qui accepte les seuls types d'objets spécifiques. Soit le conteneur fonctionne sur tous les sous-types d'une classe ou d'une interface, le plus souvent l'objet, ou une classe de conteneur différent doit être créé pour chaque classe contenue. Les génériques permettent type de compilation contrôle sans avoir à créer un grand nombre de classes de conteneurs, chacun contenant un code presque identique. En plus de permettre à un code plus efficace, certaines exceptions d'exécution sont converties en exceptions compilation, une caractéristique connue comme la sécurité de type.
Critique
Article détaillé: La critique de Java

Critiques adressées à Java incluent la mise en œuvre des génériques [34], vitesse [35], [36] la manipulation des nombres non signés, [37] la mise en œuvre de l'arithmétique en virgule flottante, [38] et une histoire des failles de sécurité dans le primaire Java VM mise en œuvre HotSpot. [39]
Utilisez par des sociétés externes
Android fait un usage intensif des technologies liées à Java
Google

Google et Android, Inc. ont choisi d'utiliser Java comme un pilier essentiel dans la création du système d'exploitation Android, un système d'exploitation smartphone open-source. Outre le fait que le système d'exploitation, construit sur le noyau Linux, a été écrit en grande partie en C, le SDK Android utilise Java pour concevoir des applications pour la plateforme Android.

Le 7 mai 2012, un jury de San Francisco a révélé que si les API pouvaient être sous copyright, Google avait enfreint les droits d'auteur d'Oracle par l'utilisation de Java dans les appareils Android. La position d'Oracle dans cette affaire a soulevé des questions sur le statut juridique de la langue. Cependant, l'hon. William Haskell Alsup a décidé le 31 mai 2012, que les API ne peut pas être déposé. [40]
Gaikai

Gaikai utilise le plugin du navigateur Java pour écouter des démos de jeux à n'importe quel PC. Gaikai (japonais pour "océan") est un service de jeux basés sur le cloud qui permet aux utilisateurs de jouer PC et console de jeux haut de gamme via le cloud et instantanément démo de jeux et d'applications à partir d'une page Web sur n'importe quel ordinateur ou appareil connecté à Internet.


    La bibliothèque de classes Java sont le bytecode compilé du code source développés par l'exécutant JRE pour soutenir le développement d'applications en Java. Des exemples de ces bibliothèques sont les suivantes:
        Les bibliothèques de base, qui comprennent:
            bibliothèques de collecte qui mettent en œuvre des structures de données telles que des listes, des dictionnaires, des arbres, des décors, des files d'attente et les files d'attente à deux extrémités, ou des piles
            Traitement de données XML (Parsing, la transformation, Validation) bibliothèques
            Sécurité
            Internationalisation et localisation bibliothèques
        Les bibliothèques d'intégration, qui permettent à l'auteur de l'application pour communiquer avec des systèmes externes. Ces bibliothèques sont les suivants:
            Le Java Database Connectivity (JDBC) API pour l'accès de base de données
            Java Naming and Directory Interface (JNDI) pour la recherche et la découverte
            RMI et CORBA pour le développement d'applications distribuées
            JMX pour la gestion et la surveillance des applications
        bibliothèques de l'interface utilisateur, qui comprennent:
            L'(poids lourd, ou natif) Abstract Window Toolkit (AWT), qui fournit des composants d'interface graphique, les moyens pour mettre en forme ces composants et les moyens de gérer les événements de ces composants
            Les bibliothèques (poids léger) Swing, qui sont construits sur AWT mais fournissent (non indigènes) de réalisation de l'widgetry AWT
            API pour la capture audio, le traitement et la lecture
    Une plate-forme dépend de l'implémentation de la machine virtuelle Java qui est le moyen par lequel les codes des bibliothèques Java et des applications tierces octets sont exécutées
    Plugins qui permettent applets pour être exécuté dans les navigateurs Web
    Java Web Start, qui permet aux applications Java d'être distribués efficacement aux utilisateurs finaux à travers l'Internet
    Licence et de la documentation.

Documentation
Article détaillé: Javadoc

Javadoc est un système complet de documentation, créé par Sun Microsystems, utilisé par de nombreux développeurs Java. Il fournit aux développeurs un système organisé pour documenter leur code. Les commentaires Javadoc ont un astérisque supplémentaire au début, c'est à dire les balises sont / ** et * /, alors que les commentaires sur plusieurs lignes normales dans Java sont partit avec les balises / * et * /.
Editions
Voir aussi: gratuit implémentations Java # bibliothèque de classe
Editions Java
Wave.svg

    Java Card
    Micro Edition (ME)
    Standard Edition (SE)
    Enterprise Edition (EE)
    JavaFX
    PersonalJava (discontinué)

    v
    t
    e

Sun a défini et prend en charge quatre éditions de Java ciblant différents environnements applicatifs et segmentés beaucoup de ses API afin qu'ils appartiennent à l'une des plates-formes. Les plates-formes sont:

    Java Card pour les cartes à puce.
    Java Platform, Micro Edition (Java ME) - ciblant des environnements aux ressources limitées.
    Java Platform, Standard Edition (Java SE) - ciblant les environnements de postes de travail.
    Java Platform, Enterprise Edition (Java EE) - ciblant les grandes entreprises distribuées ou environnements Internet.

Les classes de l'API Java sont organisés en groupes distincts appelés paquets. Chaque paquet contient un ensemble d'interfaces connexes, des classes et des exceptions. Reportez-vous aux plates-formes distinctes pour une description des paquets disponibles.

L'ensemble d'API est contrôlé par Sun Microsystems en coopération avec d'autres à travers le programme Java Community Process. Les entreprises ou les particuliers qui participent à ce processus peuvent influer sur la conception et le développement de l'API. Ce processus a été un sujet de controverse.

Sun a également fourni une édition appelée PersonalJava qui a été remplacée par après, basée sur les standards de configuration de profil Java ME appariements.

Published By Drupal french Study