Langage de programmation Java
De Wikipédia, l'encyclopédie libre
| Paradigme: | Orienté à des objets |
|---|---|
| est Apparu en: | 1991 |
| Dessiné par: | Sun Microsystems |
| Implémentations: | Nombreuses |
| Influencé par: | Objective-C, C++, Smalltalk, Eiffel |
| Système opérationnel: | Multiplataforma |
| Licence de logiciel: | GNU GPL / Java Community Process |
Java Est un langage de programmation orienté à des objets développé par Sun Microsystems à des principes des ans 90. Le langage en soi même prise beaucoup de de son sintaxis de C et C++, mais a un modèle d'objets plus simple et il élimine des outils de bas niveau, qu'ils ont l'habitude d'induire à des beaucoup d'erreurs, comme la manipulation directe de meilleurs ou mémoire.
Les applications Java sont typiquement compiladas en un bytecode, bien que la compilation en code machine natif aussi est possible. Dans le temps d'exécution, le bytecode est normalement interprété ou compilado à code natif pour l'exécution, bien que l'exécution directe par hardware du bytecode par un procesador Java aussi est possible.
L'implémentation originale et de référence du compilador, la machine virtuelle et les bibliothèques de classes de Java ont été développés par Sun Microsystems en 1995. Dès lors, Sun a contrôlé les spécifications, le développement et évolution du langage à travers le Java Community Process, si bien autrui ont aussi développé des implémentations alternatives de ces technologies de Sun, quelqu'unes même sous des licences de logiciel libre.
Entre novembre de 2006 et mai de 2007, Sun Microsystems a libéré la majeure part de ses technologies Java sous la licence GNU GPL, d'accord avec les spécifications du Java Community Process, de telle forme que pratiquement tout le Java de Sun est maintenant logiciel libre (bien que la bibliothèque de classes de Sun que se requiert pour exécuter les programmes Java encore ne l'est pas).
Sommaire |
Histoire
La technologie Java s'a créé comme un outil de programmation pour être usée dans un projet de manche-top-box dans une petite opération dénommée the Green Project en Sun Microsystems dans l'an 1991. L'équipe (Green Team), composé par treize personnes et dirigé par James Gosling, a travaillé pendant 18 mois en Sand Hill Road en Menlo Park dans son développement.
Le langage s'a dénommé initialement Oak (par un chêne qu'y avait en dehors du bureau de Gosling), est après passé à se dénommer Green après découvrir que Oak était déjà une marque commerciale enregistrée pour adaptateurs de cartes graphiques et enfin se renombró à Java.
Le terme Java a été frappé en une cafetería fréquentée par quelqu'uns des membres de l'équipe. Mais il n'est pas clair si est un acrónimo ou ne, bien que quelques sources signalent qu'il pourrait s'agir des initiales de ses créateurs: Jaimes Gosling, Àrthur Van Hoff, et Àndy Bechtolsheim. Autrui ils plaident par le suivant acrónimo, Just Ànother Vague Àcronym ("seulement un autre acrónimo ambigu plus"). L'hypothèse que plus force a il est celle qui Java dois son nom à un type de café disponible en la cafetería proche, de là l'icône de java soit une tasse de cafe chaude. Un petit signe qui donne force à cette théorie est que les 4 premiers bytes (le nombre magique) des archives .class Que génère le compilador, sont en hexadecimal, 0xCAFEBABE. Autrui ils simplement disent que le nom a été enlevé apparemment d'une liste aléatoire de mots.
Les buts de Gosling étaient implémenter une machine virtuelle et un langage avec une structure et sintaxis similaire à C++. Entre juin et juillet de 1994, après une séance maratoniana de trois jours entre John Gaga, James Gosling, Joy Naughton, Wayne Rosing et Eric Schmidt, l'équipe reorientó la plate-forme vers le Web. Ils ont senti que l'arrivée du navigateur web Mosaic, favoriserait qu'Internet il se convertît en un moyen interactif, comme celui qui ils pensaient il était la télévision par câble. Naughton A créé alors un prototype de navigateur, WebRunner, que plus tard serait connu comme HotJava.
En 1994, il se leur a faits une démonstration d'HotJava et la plate-forme Java à les gouvernements de Sun. Java 1.0À a pu se décharger par première fois en 1994, mais il a eu qu'attendre au 23 mai 1995, pendant les conférences de SunWorld, à que vissent la lumière publique Java et HotJava, le navigateur Web. L'événement a été annoncé par John Gage, le Directeur Scientifique de Sun Microsystems. L'acte a été accompagné par une petite surprise additionnelle, l'annonce par part de Marc Andreessen, Vice-président Exécutif de Netscape, que Java serait supporté dans ses navigateurs. Le 9 janvier de l'an suivant, 1996, Sun a fondé le groupe des entreprises JavaSoft pour que se chargeât du développement technologique. [1] Deux semaines plus tard la première version de Java a été publiée.
La promesse initiale de Gosling était Write Onze, Run Anywhere (Écris-le une fois, exécute-le à n'importe quel endroit), en fournissant un langage indépendant de la plate-forme et un environnement d'exécution la JVM) léger et gratuit pour les plate-formes les plus populaires de sorte que les binarios (bytecode) des applications Java pussent s'exécuter à n'importe quel plate-forme.
L'environnement d'exécution était relativement sûr et les principaux navigateur web ont bientôt incorporé la possibilité d'exécuter applets Java incrustées dans les pages web.
Java A éprouvé des nombreux changements depuis la version primigenia, JDK 1.0, ainsi qu'un énorme accroissement dans le nombre de classes et colis que composent la bibliothèque standard.
Depuis J2SE 1.4, l'évolution du langage a été réglée par le JCP (Java Community Process), qu'use Java Specification Requests (JSRs) pour proposer et préciser des changements dans la plate-forme Java. Le langage en soi même est précisé en la Java Language Specification (JLS), ou Spécification du Langage Java. Les changements en les JLS sont gérés en JSR 901.
- JDK 1.0 (23 janvier de 1996) — Premier lancement.
- JDK 1.1 (19 février de 1997) — Principales additions comprises: Communiqué de presse
- J2SE 1.2 (8 décembre de 1998) — Nom clef Playground. Cette et les suivantes versions ont été ramassées sous la dénomination Java 2 et le nom "J2SE" (Java 2 Platform, Standard Edition), a remplacé à JDK pour distinguer la plate-forme basez de J2EE (Java 2 Platform, Enterprise Edition) et J2ME (Java 2 Platform, Micro Edition). Autres améliorations ajoutées comprenaient: Communiqué de presse
- le mot réservé (keyword)
strictfp - réflexion dans la programmation
- l'API graphique ( Swing) a été intégrée dans les classes basiques
- la machine virtuelle (JVM) de Sun a été équipée avec un compilador JIT (Just in Time) par première fois
- Java Plug-in
- Java IDL, une implémentation d'IDL (Langage de Description de Interface) pour l'interopérabilité avec CORBA
- Collections (Collections)
- le mot réservé (keyword)
- J2SE 1.3 (8 mai de 2000) — Nom clef Kestrel. Les changements les plus notables ont été:Communiqué de presse Prête complète de changements
- l'inclusion de la machine virtuelle de HotSpot JVM (la JVM d'HotSpot a été jetée initialement en avril de 1999, pour la JVM de J2SE 1.2)
- RMI a été changé pour que se basât sur CORBA
- JavaSound
- s'a compris le Java Naming and Directory Interface (JNDI) dans le colis de bibliothèques principales (antérieurement disponible comme une extension)
- Java Platform Debugger Architecture (JPDA)
- J2SE 1.4 (6 février de 2002) — Nom Clef Merlin. Est a été le premier lancement de la plate-forme Java développé sous le Procès de la Communauté Java comme JSR 59. Les changements les plus notables ont été: Communiqué de pressePrête complète de changements
- Mot réservé
assert(Précisé en JSR 41.) - Expressions régulières modeladas au style des expressions régulières Perl
- Encadenación d'exceptions Permet à une exception encapsular l'exception de bas niveau original.
- non-blocking NIO (New Input/Output) (Précisé en JSR 51.)
- Logging API (Specified in JSR 47.)
- API I/Ou pour la lecture et écriture d'images en des formats comme JPEG ou PNG
- Parser XML intégré et procesador XSLT (JAXP) (Précisé en JSR 5 et JSR 63.)
- Sécurité intégrée et extensions criptográficas (JCE, JSSE, JAAS)
- Java Web Start compris (Le premier lancement est arrivé en mars de 2001 pour J2SE 1.3) (Précisé en JSR 56.)
- Mot réservé
- J2SE 5.0 (30 septembre de 2004) — Nom clef: Tiger. (Originalmente numerado 1.5, Cette notation encore est usée internamente.[2]) Développé bas JSR 176, Tiger a ajouté un nombre significatif de nouvelles caractéristiques Communiqué de presse
- Plantillas (génériques) — munit conversion de types (type safety) en temps de compilation pour des collections et élimine le besoin de la plupart de conversion de types (type casting). (Précisé par JSR 14.)
- Metadatos — Aussi appelés anotaciones, permet à des structures du langage comme les classes ou les méthodes, être etiquetados avec des données additionnelles, que puissent être accusés postérieurement par des utilités de procès de metadatos. (Précisé par JSR 175.)
- Autoboxing/unboxing — Conversions automatiques entre types primitivos (Comme les
int) et classes d'envoltura primitivas (Comme Integer). (Précisé par JSR 201.) - Énumérations — le mot réservé
enumcrée une typesafe, liste rangée de valeurs (commeDia.LUNDI,Dia.MARDI, etc.). Antérieurement, ceci seulement pouvait être mené à terme par soutenus entières ou classes bâties manualmente (enum pattern). (Précisé par JSR 201.) - Varargs (Nombre d'arguments variable) — Le dernier paramètre d'un méthode peut être déclaré avec le nom du type suivi par trois points (et.G.
void drawtext(String... lines)). Dans l'appel au méthode, peut s'user n'importe quel nombre de paramètres de ce type, que seront stockés en un array pour les passer au méthode. - Bucle
forAmélioré — La sintaxis pour le buclefors'est étendu avec une sintaxis spéciale pour iterar sur chaque membre d'un array ou sur n'importe quelle classe qu'implémente Iterable, comme la classe standard Collection, de la suivante forme:
GeSHi Error: GeSHi could not find the language java (using path /home/admin/wikilingue-big/commons/extensions/SyntaxHighlight_GeSHi/geshi/geshi/) (code 2)
Dois préciser un langage de cette façon: <source lang="html4strict">...</source>
Langages supportés pour ressortir sintaxis:
(erreur au charger la liste de langages supportés)
Cet exemple itera sur l'objet Iterable widgets, en assignant, en ordre, chacun des éléments à la variable w, et en appelant au méthode display() de chacun d'ils. (Précisé par JSR 201.) |}
- Java SE 6 (11 décembre de 2006) — Nom clef Mustang. Il a été en développement sous la JSR 270. Dans cette version, Sun a changé le nom "J2SE" par Java SE et a éliminé le ".0" Du nombre de version.[3]. Il est disponible en http://java.sun.com/javase/6/. Les changements les plus importants introduits dans cette version sont:
- il Comprend un nouveau cadre de travail et APIs que font possible la combinaison de Java avec des langages dynamiques comme PHP, Python, Ruby et JavaScript.
- Il comprend le moteur Rhino, de Mozilla, une implémentation de Javascript en Java.
- Il comprend un client complet de Services Web et il supporte les dernières spécifications pour des Services Web, comme JAX-WS 2.0, JAXB 2.0, STAX et JAXP.
- Améliorations dans l'interface graphique et dans le rendement.
- Java SE 7 — Nom clef Dolphin. Dans l'an 2006 encore se trouvait dans les premières étapes de planification. Il s'attend que son développement donnez début dans le printemps de 2006, et il s'estime son lancement pour 2008.
- Support pour XML dedans du propre langage.
- Un nouveau concept de superpaquete.
- Support pour closures.
- Introduction d'annotations standard pour détecter fautes dans le logiciel.
- N'officiels:
- NIO2
- Java Module System.
- Java Kernel.
- Nouvelle API pour le manie de Dias et Dates, laquelle remplaçât les anciennes classes Donne-toi et Calendar.
- Possibilité d'opérer avec des classes BigDecimal en usant operandos.
Outre les changements dans le langage, avec le pas des ans se sont effectué beaucoup de plus changements dramatiques dans la bibliothèque de classes de Java (Java class library) qu'a grandi de quelques peu de cents de classes en JDK 1.0 jusqu'à plus de trois mil en J2SE 5.0. APIs Complètement nouvelles, comme Swing et Java2D, ont été introduits et beaucoup de de les méthodes et classes originales de JDK 1.0 sont obsolètes.
Dans le 2005 se calcule en 4,5 millions le nombre de développeurs et 2.500 millions de dispositifs habilités avec technologie Java.
Philosophie
Le langage Java s'a créé avec cinq buts principaux:
- il Devrait user la méthodologie de la programmation orientée à des objets.
- Il devrait permettre l'exécution d'un même programme en des multiples systèmes opérationnels.
- Il devrait comprendre par défaut supportez pour travail en réseau.
- Il devrait se dessiner pour exécuter code en des systèmes lointains de forme sûre.
- Il devrait être facile d'user et prendre le meilleur d'autres langages orientés à des objets, comme C++.
Pour réussir l'exécution de code lointain et le support de réseau, les programadores de Java parfois font appel à des extensions comme CORBA (Common Object Request Agent de change Architecture), Internet Communications Engine ou OSGi respectivement.
Orienté à des Objets
La première caractéristique, orienté à des objets (“OO”), se rapporte à un méthode de programmation et à la création du langage. Bien que il y a beaucoup d'interprétations pour OO, une première idée est dessiner le logiciel de sorte que les divers types de données qui usent soient unis à ses opérations. Ainsi, les données et le code (fonctions ou méthodes) se combinent en des établissements appelés objets. Un objet peut se voir comme un colis que contient le “comportement” (le code) et le “état” (données). Le principe est séparer cela qu'il change des choses que demeurent inalterables. Fréquemment, changer une structure de données il implique un changement dans le code qu'opère sur les mêmes, ou vice versa. Cet écart en objets cohérents et indépendants offre une base une plus stable pour la création d'un système logiciel. Le but est faire que grands projets soient faciles de gérer et manier, en améliorant comme conséquence sa qualité et en réduisant le nombre de projets ratés. Autrui des grandes promesses de la programmation orientée à des objets est la création d'établissements plus génériques (objets) que permettent la reutilización du logiciel entre des projets, une des prémisses fondamentales de l'Ingénierie du Logiciel. Un objet générique “client”, par exemple, devrait en théorie avoir le même ensemble de comportement en des différents projets, surtout lorsque ceux-ci ils coïncident dans une certaine mesure, quelque chose qui a l'habitude d'il arriver dans les grandes organisations. Dans ce sens, les objets ils pourraient se voir comme des pièces reutilizables que peuvent s'employer en des multiples projets divers, en permettant ainsi à l'industrie du logiciel à bâtir projets d'envergure en employant composants déjà existants et de vérifiée qualité; en conduisant ceci enfin à une réduction drástica du temps de développement. Nous pouvons user comme exemple d'objet l'aluminium. Une fois définies données (poids, maleabilidad, etc.), Et son “comportement” (soldar deux pièces, etc.), L'objet “aluminium” peut être reutilizado dans le champ de la construction, de l'automobile, de l'aviation, etc.
La reutilización du logiciel a éprouvé résultés tu tires sur, en trouvant deux difficultés principales: la création d'objets réellement génériques est pobremente compris, et manque une méthodologie pour l'ample communication d'occasions de reutilización. Quelques communautés de “code ouvert” (open source) veulent aider dans ce problème en donnant moyens aux développeurs pour diseminar l'information sur l'usage et versatilité d'objets reutilizables et bibliothèques d'objets.
Indépendance de la plate-forme
La deuxième caractéristique, l'indépendance de la plate-forme, signifie que programmes écrits dans le langage Java peuvent s'exécuter également à n'importe quel type d'hardware. Celui-ci est la signification d'être capable d'écrire un programme une fois et qu'il puisse s'exécuter à n'importe quel dispositif, tel comme prie l'axioma de Java, ‘’’write onze, run everywhere’’’.
Pour cela, se compila le code source écrit en langage Java, pour générer un code connu comme “bytecode” (spécifiquement Java bytecode)—instructions machine simplifiées spécifiques de la plate-forme Java. Cette pièce est “à moyen chemin” entre le code source et le code machine qui comprend la dispositive destination. Le bytecode est exécuté alors dans la machine virtuelle (JVM), un programme écrit en code natif de la plate-forme destine (qu'il est celui qui comprend son hardware), qu'interprète et il exécute le code. En plus, ils se distribuent des bibliothèques additionnelles pour accéder aux caractéristiques de chaque dispositif (comme les graphiques, exécution moyennant hebras ou threads, l'interface de réseau) de forme unifiée. Il se doit avoir présent que, bien que y a une étape explicite de compilation, le bytecode généré est interprété ou converti à des instructions machine du code natif par le compilador JIT (Just In Time).
Il y a des implémentations du compilador de Java que convertissent le code source directement en code objet natif, comme GCJ. Ceci élimine l'étape il intervient où il se génère le bytecode, mais la sortie de ce type de compiladores seulement peut s'exécuter dans un type d'architecture.
La licence sur Java de Sun insiste que toutes les implémentations soient “compatibles”. Ceci a donné lieu à une dispute légale entre Microsoft et Sun, lorsque celui-ci dernier a allégué que l'implémentation de Microsoft ne supportait pas aux interfaces RMI et JNI outre y avoir ajouté caractéristiques ‘’dépendants’’ de sa plate-forme. Sun A poursuivi à Microsoft et il a gagné par dommages et intérêts (quelques 20 millions de dollars) ainsi qu'un mandat judiciaire en forçant l'acatación de la licence de Sun. Comme réponse, Microsoft n'offre pas Java avec sa version de système opérationnel, et en des récentes versions de Windows, son navigateur Internet Explorer n'admet pas l'exécution d'applets sans un conector (ou plugin) écarte. Pourtant, Sun et autres sources offrent des versions gratuites pour des diverses versions de Windows.
Les premières implémentations du langage usaient une machine virtuelle interprétée pour réussir la portabilidad. Pourtant, le résultat étaient des programmes qu'ils s'exécutaient comparativamente plus lents que ces écrits en C ou C++. Ceci a fait que Java se gagnât une réputation de long à rendement. Les implémentations récentes de la JVM donnent lieu à des programmes que s'exécutent considérablement plus rapide que les versions anciennes, en employant diverses techniciennes, bien que continue à être beaucoup plus lent qu'autres langages.
La première de ces techniciennes est simplement compilar directement en code natif comme font les compiladores traditionnels, en éliminant l'étape du bytecode. Ceci donne lieu à un grand rendement dans l'exécution, mais il bouche le chemin à la portabilidad. Une autre technicienne, connue comme compilation JIT (Just In Time, ou ‘’’compilation au vol’’’), convertit le bytecode à code natif lorsque se exécute l'application. Autres machines virtuelles plus sofisticadas usent une ‘’’recompilación dynamique’’’ dans laquelle la VM est capable d'analyser le comportement du programme en exécution et recompila et optimiza les parts critiques. La recompilación dynamique peut remporter majeur degré d'optimisation que la compilation traditionnelle (ou estática), puisque peut baser son travail dans la connaissance que de première main a sur l'environnement d'exécution et l'ensemble de classes chargées en mémoire. La compilation JIT et la recompilación dynamique permettent aux programmes Java profiter de la vitesse d'exécution du code natif sans c'est pour cela que perdre l'avantage de la portabilidad en tous les deux.
La portabilidad est techniquement difficile de remporter, et le succès de Java dans ce champ a été dispar. Bien que il est en fait possible écrire des programmes pour la plate-forme Java qu'agissent de forme correcte en des multiples plate-formes de diverse architecture, le grand nombre de ces avec des petites erreurs ou inconsistencias portent à que parfois se parodie l'eslogan de Sun, "Write onze, run anywhere" comme "Write onze, debug everywhere" (ou “Écris-le une fois, exécute-le il à n'importe quel part” par “Écris-le une fois, épure-le partout”)
Le concept d'indépendance de la plate-forme de Java compte, pourtant, avec un grand succès dans les applications dans l'environnement du serveur, comme les Services Web, les Servlets, les Java Beans, ainsi qu'en des systèmes empotrados basés sur OSGi, en usant environnements Java empotrados.
Le recolector d'ordures
En Java le problème des fuites de mémoire s'évite en grande mesure par le recolección d'ordures (ou automatic garbage collector). Le programador détermine quand ils se créent les objets et l'environnement en temps d'exécution de Java (Java runtime) est le responsable de gérer le cycle de vie des objets. Le programme, ou autres objets ils peuvent avoir localisé un objet moyennant une référence à celui-ci. Lorsqu'ils ne restent pas des références à un objet, le recolector d'ordures de Java efface l'objet, en libérant ainsi la mémoire qui occupait en prévenant possibles fuites (exemple: un objet créé et uniquement usé dedans d'un méthode seulement a établissement dedans de celui-ci; au sortir du méthode l'objet est éliminé). Quand même, il est possible qu'ils se produisent des fuites de mémoire si le code stocke des références à des objets que déjà ne sont pas nécessaires—c'est-à-dire, peuvent encore arriver, mais dans un niveau conceptual supérieur. En définitive, le recolector d'ordures de Java permet une facile création et élimination d'objets, majeure sécurité et il peut que plus rapide qu'en C++
- REDIRECT Personnel:Rendez-vous requis.
Sintaxis
La sintaxis de Java se dérive en grande mesure de C++. Mais à différence de celui-ci, que combine la sintaxis pour programmation générique, structurée et orientée à des objets, Java a été bâti depuis le principe pour être complètement orienté à des objets. Tout en Java est un objet (sauf quelques exceptions), et tout en Java réside dans quelque classe (nous rappelions qu'une classe est un moule à partir duquel ils peuvent se créer divers objets).
Salut Monde
Applications autonomes
GeSHi Error: GeSHi could not find the language java (using path /home/admin/wikilingue-big/commons/extensions/SyntaxHighlight_GeSHi/geshi/geshi/) (code 2)
Dois préciser un langage de cette façon: <source lang="html4strict">...</source>
Langages supportés pour ressortir sintaxis:
(erreur au charger la liste de langages supportés)
Cet exemple précise une petite explication.
- Tout en Java est dedans d'une classe, en comprenant programmes autonomes.
- Le code source se garde en des archives avec le même nom que la classe qu'ils contiennent et avec extension “.java”. Une classe (
class) déclarée publique (public) doit suivre cette convention. Dans l'exemple antérieur, la classe estSalut, par ce que le code source dois se garder dans le fichier “Salut.java” - Le compilador génère quelques archives de classe (avec extension “.class”) Par chacune des classes définies dans les archives source. Une classe anonyme se traite comme si son nom fût la concatenación du nom de la classe que l'enferme, le symbole “$”, et un nombre entier.
- Les programmes qui s'exécutent de forme indépendante et autonome, ils doivent contenir le méthode
”main()”. - Le mot réservé
”void”indique que le méthode main ne rend pas rien. - Le méthode main doit accepter un array d'objets type String. Par accord s'indexe comme
”args”, bien que peut s'employer n'importe quel autrui identificador. - Le mot réservé
”static”indique que le méthode est un méthode de classe, associé à la classe au lieu d'une instances de la même. Le méthode main doit être estático ou ’’de classe’’. - Le mot réservé
publicsignifie qu'un méthode peut être appelé depuis autres classes, ou que la classe peut être usée par des classes en dehors de l'hiérarchie de la propre classe. Autres types d'accès sont”private”ou”protected”. - L'utilité d'impression (en écran par exemple) fait partie de la bibliothèque standard de Java: la classe ‘’’System’’’ définit un champ public estático appelé ‘’’out’’’. L'objet
outest une instance de ‘’’PrintStream’’’, qu'offre le méthode ‘’’println (String)’’’ pour chavirer données dans l'écran (la sortie standard). - Les applications autonomes s'exécutent en donnant à l'environnement d'exécution de Java le nom de la classe dont le méthode main doit s'invoquer. Par exemple, une ligne de commando (en Unix ou Windows) de la forme
java –cp . SalutExécutera le programme de l'exemple (préalablement compilado et généré “Salut.class”) . Le nom de la classe dont le méthode main s'appelle il peut se préciser aussi dans le fichier “MANIFEST” des archives d'empaquetamiento de Java (.jar).
Applets
Les applet Java sont des programmes incrustés dans autres applications, normalement une page Web qui se montre dans un navigateur.
GeSHi Error: GeSHi could not find the language java (using path /home/admin/wikilingue-big/commons/extensions/SyntaxHighlight_GeSHi/geshi/geshi/) (code 2)
Dois préciser un langage de cette façon: <source lang="html4strict">...</source>
Langages supportés pour ressortir sintaxis:
(erreur au charger la liste de langages supportés)
GeSHi Error: GeSHi could not find the language html4strict (using path /home/admin/wikilingue-big/commons/extensions/SyntaxHighlight_GeSHi/geshi/geshi/) (code 2)
Dois préciser un langage de cette façon: <source lang="html4strict">...</source>
Langages supportés pour ressortir sintaxis:
(erreur au charger la liste de langages supportés)
La sentence import indique au compilador de Java que comprenne les classes java.applet. Applet Et java.awt. Graphics, Pour pouvoir les indexer par ses noms, sans devoir donner la préférence la route complète chaque fois qu'ils se veuillent user dans le code source.
La classe Salut étend (extends) à la classe Applet, c'est-à-dire, est une subclase de celle-ci. La classe Applet permet à l'application montrer et contrôler l'état de l'applet. La classe Applet est un composant de l'AWT (Abstract Window Toolkit), que permet à l'applet montrer une inteterfaz graphique d'utilisateur ou GUI (Graphical User Interface), et répondre à des événements générés par l'utilisateur.
La classe Salut surcharge le méthode paint (Graphics) hérité de la superclase contenedora (Applet dans ce cas), pour accéder au code chargé de dessiner. Le méthode paint() reçoit un objet Graphics que contient le contexte graphique pour dessiner l'applet. Le méthode paint() flamme au méthode drawString (String, int, int) de l'objet Graphics pour montrer la chaîne de caractères Salut, monde! Dans la position (65, 96) de l'espace de dessin assigné à l'applet.
La référence à l'applet est placée dans un document HTML en usant l'étiquette <applet>. Cette étiquette ou tag a trois attributs: code="Salut" indique le nom de l'applet, et width="200" height="200" établit le large et hauteur, respectivement, de l'applet. Un applet aussi peuvent se loger dedans d'un document HTML en usant les éléments object, ou embed, bien que le support qu'ils offrent le navigateur Web n'est pas uniforme.[5][6]
Servlets
Les servlets sont des composants de la part du serveur de Java EE, chargés de générer réponses aux demandes reçues des clients.
GeSHi Error: GeSHi could not find the language java (using path /home/admin/wikilingue-big/commons/extensions/SyntaxHighlight_GeSHi/geshi/geshi/) (code 2)
Dois préciser un langage de cette façon: <source lang="html4strict">...</source>
Langages supportés pour ressortir sintaxis:
(erreur au charger la liste de langages supportés)
Les sentences import indiquent au compilador de Java l'inclusion de toutes les classes publiques et interfaces des colis java.io Et javax.servlet Dans la compilation.
La classe Salut étend (extends), est héritière de la classe GenericServlet. Cette classe fournit l'interface pour que le serveur lui passe les demandes au servlet et le mécanisme pour contrôler le cycle de vie du servlet.
La classe Salut surcharge le méthode service (ServletRequest, ServletResponse), défini par l'interface servlet pour accéder au manejador de la demande de service. Le méthode service() reçoit un objet de type ServletRequest que contient la demande du client et un objet de type ServletResponse, usé pour générer la réponse qui se rend au client. Le méthode service() peut jeter (throws) exceptions de type ServletException et IOException si arrive quelque type d'anomalie.
Le méthode setContentType (String) dans l'objet réponse établit le type de contenu MIME à "text/html", pour indiquer au client que la réponse à sa demande est une page avec format HTML. Le méthode getWriter() de l'objet réponse rend un objet de type PrintWriter, usé comme une tuyauterie pour laquelle voyageront les données au client. Le méthode println (String) écrit la chaîne "Salut, monde!" Dans la réponse et il enfin s'appelle au méthode close() pour fermer la connexion, que fait que les données écrites dans la tuyauterie ou stream soient rendus au client.
Applications avec des fenêtres
Swing est la bibliothèque pour l'interface graphique d'utilisateur devancée de la plate-forme Java SE.
GeSHi Error: GeSHi could not find the language java (using path /home/admin/wikilingue-big/commons/extensions/SyntaxHighlight_GeSHi/geshi/geshi/) (code 2)
Dois préciser un langage de cette façon: <source lang="html4strict">...</source>
Langages supportés pour ressortir sintaxis:
(erreur au charger la liste de langages supportés)
Les instructions import indiquent au compilador de Java que les classes et interfaces du colis javax.swing Se comprennent dans la compilation.
La classe Salut étend (extends) la classe javax.swing.JFrame, Qu'implémente une fenêtre avec une barre de titre et un contrôle pour la fermer.
Le constructeur Salut() initialise le cadre ou frame en appelant au méthode setDefaultCloseOperation (int) hérité de JFrame pour établir les opérations par défaut lorsque le contrôle de fermeture dans la barre de titre est sélectionné à la valeur WindowConstants.DISPOSE_ON_CLOSE. Ceci fait qu'ils se libèrent les ressources prises par la fenêtre lorsqu'est fermée, et ne simplement dérobée, ce que permet à la machine virtuelle et au programme finir son exécution. À suite se crée un objet de type JLabel avec le texte "Salut, monde!", Et il s'ajoute au cadre moyennant le méthode add (Component), hérité de la classe Container. Le méthode pack(), hérité de la classe Window, est invoqué pour dimensionar la fenêtre et distribuer son contenu.
Le méthode main() est appelé par la JVM au début du programme. Il crée une instance de la classe Salut et fait la fenêtre il soit montrée en invoquant au méthode setVisible (boolean) de la superclase (classe de laquelle hérite) avec le paramètre à true. Voyez-vous que, une fois le cadre est dessiné, le programme ne termine pas lorsqu'il se sort du méthode main(), puisque le code duquel dépends il se trouve dans un fil d'exécution indépendante déjà jeté, et qu'il demeurera actif jusqu'à ce que toutes les fenêtres aient été détrui.
Environnements de fonctionnement
La création de Java, sa robustesse, le protège de l'industrie et sa facile portabilidad ont fait de Java un des langages avec une majeure croissance et ampleur d'usage en des divers milieux de l'industrie de l'informaticienne.
En des dispositifs mobiles et des systèmes empotrados
Depuis la création de la spécification J2ME (Java 2 Platform, Micro Edition), une version de l'environnement d'exécution Java réduit et hautement optimizado, spécialement développé pour le marché de dispositifs électroniques de consommation s'est produit toute une révolution en ce que à l'extension de Java se rapporte.
Il est possible trouver microprocesadores spécifiquement dessinés pour exécuter bytecode Java et logiciel Java pour des cartes intelligentes (JavaCard), téléphones mobiles, buscapersonas, manche-top-boxes, sintonizadores de TV et autres petits électroménagers.
Le modèle de développement de ces applications est très semblable aux applets des navigateurs sauf que dans ce cas se dénomment MIDlets.
Voyez-vous Sun Mobile Device Tecnology
Dans le navigateur web
Depuis la première version de java existe la possibilité de développer petites applications (Applets) en Java qu'après peuvent être incrustées dans une page HTML pour que soient déchargées et exécutées par le navigateur web. Ces mini-applications s'exécutent en une JVM que le navigateur a configurée comme extension (plug-in) dans un contexte de sécurité restreint configurable pour empêcher l'exécution locale de code potentiellement malicieux.
Le succès de ce type d'applications (la vision de l'équipe de Gosling) n'est pas allé réellement l'attendu en raison de divers facteurs, en étant peut-être le plus important la lenteur et le réduit large de bande des communications en celui-là alors que limitait la taille des applets que s'incrustaient dans le navigateur. L'apparition posterior d'autres alternatives (applications web dynamiques de serveur) a laissé un réduit milieu d'usage pour cette technologie, en restant aujourd'hui réléguée fondamentalement à des composants spécifiques pour l'intermédiation depuis une application web dynamique de serveur avec des dispositifs placés dans la machine client où s'exécute le navigateur.
Les applets Java ne sont pas les uniques technologies (bien que oui les premières) de composants complexes incrustés dans le navigateur. Autres technologies similaires peuvent être: ActiveX de Microsoft, Flash, Java Web Start, etc.
En des systèmes de serveur
dans la part du serveur, Java est plus populaire que jamais, depuis l'apparition de la spécification de Servlets et JSP (Java Server Pages).
Jusqu'alors, les applications web dynamiques de serveur qu'ils existaient ils se basaient fondamentalement en des composants CGI et langages interprétés. Tous les deux avaient divers inconvenants (fondamentalement lenteur, élevée charge computacional ou de mémoire et propensión à des erreurs par son interprétation dynamique).
Les servlets et les JSPs ont supposé une importante avance puisque:
- Le API de programmation est très simple, souple et extensible.
- Les servlets ne sont pas des procès indépendants (comme les CGIs) et par autant s'exécutent dedans du même procès que la JVM en améliorant notablement le rendement et en réduisant la charge computacional et de mémoire requises.
- Les JSPs sont des pages que se compilan dinámicamente (ou se pre-compilan préalablement à sa distribution) de sorte que le code qui se réussit un avantage en rendement substancial face à des beaucoup de langages interprétés.
La spécification de Servlets et JSPs définit un API de programmation et les conditions requises pour un conteneur (serveur) dedans duquel se puissent déployer ces composants pour former applications web dynamiques complètes. ils aujourd'hui existent foule de conteneurs (libres et commerciaux) compatibles avec ces spécifications.
À partir de son expansion entre la communauté de développeurs, ces technologies ils ont donné pas à des modèles de développement beaucoup plus élaborés avec frameworks (pe Struts, Webwork) que se sobreponen sur les servlets et les JSPs pour réussir un environnement de travail beaucoup plus puissant et segmentado dans lequel la spécialisation de rôles soit possible (développeurs, diseñadores graphiques, ...) Et il se facilite la reutilización et robustesse de code. Malgré tout cela, les technologies que subyacen (Servlets et JSPs) sont substancialmente les mêmes.
Ce modèle de travail s'est converti dans un standard de-facto pour le développement d'applications web dynamiques de serveur et autres technologies (pe. ASP) Se sont basé sur il.
En des applications d'escritorio
Aujourd'hui existent foule d'applications graphiques d'utilisateur basées sur Java. L'environnement d'exécution Java (JRE) s'est converti dans un composant habituel dans les PC d'utilisateur des systèmes opérationnels plus usés dans le monde. En plus, beaucoup d'applications Java le comprennent dedans du propre colis de l'application de sorte qu'ils s'exécutent à n'importe quel PC.
Dans les premières versions de la plate-forme Java existaient des importantes limitations en les APIs de développement graphique (AWT). Depuis l'apparition de la bibliothèque Swing la situation a amélioré substancialmente et postérieurement avec l'apparition de bibliothèques comme SWT font que le développement d'applications d'escritorio complexes et avec grand dynamisme, utilisabilité, etc. Il soit relativement simple.
Plate-formes supportées
Une version de l'environnement d'exécution Java JRE (Java Runtime Environment) est disponible dans bien d'équipes d'escritorio. Pourtant, Microsoft il ne l'a pas compris par défaut dans ses systèmes opérationnels. Dans le cas de Apple, celui-ci comprend une version propre du JRE dans son système opérationnel, le Mac VOUS. il aussi est un produit que par défaut apparaît dans bien des distributions de GNU/Linux. En raison d'incompatibilités entre des diverses versions du JRE, beaucoup d'applications préfèrent installer sa propre copie du JRE plutôt que confier sa chance à l'application installée par défaut. Les développeurs de applets de Java ou bien doivent insister aux utilisateurs dans l'actualisation du JRE, ou bien développer sous une version ancienne de Java et vérifier le correct fonctionnement dans les versions posterior.
Industrie liée
Sun Microsystem, comme créateur du langage de programmation Java et de la plate-forme JDK, maintient fortes politiques pour maintenir une spécification du langage[1] ainsi que de la machine virtuelle[2] à travers le JCP. Il est en raison de cet effort que se maintient un standard de facto.
Ils sont innombrables les compagnies qui développent applications pour Java et/ou sont chavirées avec cette technologie:
- L'industrie de la téléphonie mobile est fortement influenciada par la technologie Java.
- Le environnement de développement Eclipse a pris un lieu important entre la communauté de développeurs Java.
- La fondation Apache a aussi une présence importante dans le développement de bibliothèques et composants de serveur basés sur Java.
- IBM, BEA, IONA, Oracle,... Ils sont des entreprises avec des grands intérêts et des produits créés en et pour Java.
Critiques
Harold a dit en 1995 que Java a été créé pour ouvrir une nouvelle voie dans la gestion de logiciel complexe, et il est par règle générale accepté que s'est bien comporté dans cet aspect. Pourtant il ne peut pas se dire que Java n'ait pas des crevasses, ni qu'il s'adapte complètement à tous les styles de programmation, tous les environnements, ou tous les besoins.
Général
- Java n'a pas apporté des capacités standards pour arithmétique en point flottant. Le standard IEEE 754 pour “Standard pour Arithmétique Binaria en Point Flottant” est apparu en 1985, et il dès lors est le standard pour l'industrie. Et bien que l'arithmétique flottante de Java (chose qui a changé depuis le 13 novembre 2006, lorsque se a ouvert le code source et il s'a adopté la licence GNU, écarte de la déjà existante) se base sur grande mesure dans la norme de l'IEEE, ne supporte pas encore quelques caractéristiques. Plus information à ce sujet peut se trouver dans la section finale de raccordes externes.
Le langage
- dans un sens strict, Java n'est pas un langage absolument orienté à des objets, à différence de, par exemple, Ruby ou Smalltalk. Par des motifs d'efficacité, Java y a relajado dans une certaine mesure le paradigme d'orientation à des objets, et ainsi par exemple, ne toutes les valeurs sont des objets.
- Le code Java peut être parfois redundante en comparaison avec autres langages. Ceci est en partie en raison des fréquentes déclarations de types et conversions de type manuel (casting). Aussi se doit à que ne se dispose pas d'opérateurs surchargés, et à une sintaxis relativement simple. Pourtant, J2SE 5.0 introduit des éléments pour agir de réduire la redondance, comme une nouvelle construction pour les bucles ‘’’foreach’’’.
- À différence de C++, Java ne dispose pas d'opérateurs de surcharge définis par l'utilisateur. Pourtant celle-ci a été une décision design qui peut se voir comme un avantage, puisque cette caractéristique peut faire les programmes difficiles de lire et maintenir.
Apparence
L'apparence externe (le ‘’’look and feel’’’) des applications GUI (Graphical User Interface) écrites en Java en usant la plate-forme Swing diffère souvent de laquelle ils montrent des applications natives. Bien que le programador peut user le jeu d'outils AWT (Abstract Windowing Toolkit) que génère des objets graphiques de la plate-forme native, l'AWT n'est pas capable de fonctions graphiques devancées sans sacrifier la portabilidad entre des plate-formes; puisque chacune a un ensemble d'APIs divers, spécialement pour des objets graphiques de grand niveau. Les outils de Swing, écrites complètement en Java, évitent ce problème en bâtissant les objets graphiques à partir des mécanismes de dessin basiques que doivent être disponibles en toutes les plate-formes. L'inconvénient est le travail extra requis pour réussir la même apparence de la plate-forme destine. Bien que ceci est possible (en usant GTK+ et le Look-and-Feel de Windows), la plupart des utilisateurs ne savent pas comment changer l'apparence qu'il se fournit par défaut par celle-là que s'adapte à la de la plate-forme.
Rendement
Le rendement d'une application est déterminé par foule de facteurs, par ce que n'est pas facile faire une comparaison qu'il résulte totalement objective. En temps d'exécution, le rendement d'une application Java dépend plus de l'efficacité du compilador, ou la JVM, que des propriétés intrínsecas du langage. Le bytecode de Java peut être interprété en temps d'exécution par la machine virtuelle, ou bien compilado au se charger le programme, ou pendant la propre exécution, pour générer code natif qui s'exécute directement sur l'hardware. Si il est interprété, sera plus lent qu'en usant le code machine intrínseco de la plate-forme destine. Si il est compilado, pendant la charge initiale ou l'exécution, la sanction est dans le temps nécessaire pour mener à terme la compilation.
Quelques caractéristiques du propre langage comportent une sanction en temps, bien que ils ne sont pas uniques de Java. Quelques d'elles sont le contrôle des limites d'arrays, contrôle en temps d'exécution de types, et l'indirección de fonctions virtuelles.
L'usage d'un recolector d'ordures pour éliminer de forme automatique ces objets ne requis, ajoute une surcharge qu'il peut affecter au rendement, ou être à peine appréciable, en dépenant de la technologie du recolector et de l'application en concret. Les JVM modernes usent recolectores d'ordures que grâce à rapides algoritmos de manie de mémoire, réussissent que quelques applications puissent s'exécuter plus eficientemente.
Le rendement entre un compilador JIT et les compiladores natifs peut être semblé, bien que la distinction n'est pas claire dans ce point. La compilation moyennant le JIT peut consommer un temps appréciable, un inconvénient principalement pour des applications de courte durée ou avec grande quantité de code. Pourtant, une fois compilado, le rendement du programme peut être comparable à celui que réussissent compiladores natifs de la plate-forme destine, inclus en des tâches numériques. Bien que Java ne permet pas l'expansion manuelle d'appels à des méthodes, beaucoup de compiladores JIT réalisent cette optimisation pendant la charge de l'application et ils peuvent profiter d'information de l'environnement en temps d'exécution pour mener à terme transformations performantes pendant la propre exécution de l'application. Cette recompilación dynamique, comme celle qui fournit la machine virtuelle HotSpot de Sun, peut arriver à améliorer le résultat de compiladores estáticos traditionnels, grâce aux données que seulement sont disponibles pendant le temps d'exécution.
Java A été dessiné pour offrir sécurité et portabilidad, et n'offre pas accès direct à l'hardware de l'architecture ni à l'espace de directions. Java ne supporte pas expansion de code ensamblador, bien que les applications peuvent accéder à caractéristiques de bas niveau en usant bibliothèques natives (JNI, Java Native Interfaces).
Ressources
JRE
Le JRE (Java Runtime Environment, ou Environnement en Temps d'Exécution de Java) est le logiciel nécessaire pour exécuter n'importe quelle application développée pour la plate-forme Java. L'utilisateur final use le JRE comme part de colis logiciel ou plugins (ou conectores) dans un navigateur Web. Sun Offre aussi le SDK de Java 2, ou JDK (Java Development Kit) en dont sein réside le JRE, et comprend des outils comme le compilador de Java, Javadoc pour générer documentation ou le depurador. Il peut aussi s'obtenir comme un colis indépendant, et il peut s'envisager comme l'environnement nécessaire pour exécuter une application Java, alors qu'un de développement doit en plus raconter avec autres facilités qu'il offre le JDK.
Composants
- Bibliothèques de Java, que sont le résultat de compilar le code source développé par qui implémente la JRE, et qu'offrent soutien pour le développement en Java. Quelques exemples de ces bibliothèques sont:
- Les bibliothèques centrales, que comprennent:
- Une collection de bibliothèques pour implémenter structures de données comme prêtes, arrays, arbres et ensembles.
- Bibliothèques pour des analyses de XML.
- Sécurité.
- Bibliothèques d'internationalisation et emplacement.
- Bibliothèques d'intégration, que permettent la communication avec des systèmes externes. Ces bibliothèques comprennent:
- Bibliothèques pour l'interface d'utilisateur, que comprennent:
- L'ensemble d'outils natifs AWT (Abstract Windowing Toolkit), qu'offre des composants GUI (Graphical User Interface), mécanismes pour les user et manier ses événements associés.
- Les Bibliothèques de Swing, bâties sur AWT mais offrent des implémentations ne natives des composants d'AWT.
- APIs Pour la capture, traitement et reproduction d'audio.
- Les bibliothèques centrales, que comprennent:
- Une implémentation dépendante de la plate-forme en que s'exécute de la machine virtuelle de Java (JVM), qu'est la chargée de l'exécution du code des bibliothèques et les applications externes.
- Plugins Ou conectores que permettent exécuter applets dans le navigateur Web.
- Java Web Start, pour la distribution d'applications Java à travers Internet.
- Documentation et licence.
APIs
Sun Définit trois plate-formes dans une tentative par couvrir divers environnements d'application. Ainsi, il a distribué beaucoup de de ses APIs (Application Program Interface) de sorte qu'appartiennent à chacune des plate-formes:
- Java ME (Java Platform, Micro Edition) ou J2ME — orientée à des environnements de limitées ressources, comme des téléphones mobiles, PDAs (Personnel Digital Assistant), etc.
- Java SE (Java Platform, Standard Edition) ou J2SE — pour des environnements de gamme moyenne et gares de travail. il ici se situe à l'utilisateur moyen dans un PC d'escritorio.
- Java EE (Java Platform, Enterprise Edition) ou J2EE — orientée à environnements distribués des entreprises ou d'Internet.
Les classes en les APIs de Java s'organisent en des groupes disjuntos appelés coliss. Chaque colis contient un ensemble d'interfaces, classes et exceptions liées. L'information sur les colis qu'offre chaque plate-forme il peut se trouver dans la documentation de celle-ci.
L'ensemble des APIs est contrôlé par Sun Microsystems joins avec autres établissements ou des personnes à travers le programme JCP (Java Community Process). Les compagnies ou individus participants du JCP peuvent influencer de forme active en la création et développement des APIs, quelque chose qui a été motif de controverse.
En 2004, IBM et BEA ont soutenu publiquement l'idée de créer une implémentation de code ouvert (open source) de Java, quelque chose à ce que Sun, à date de 2006, s'est nié.
Extensions et architectures liées
Les extensions de Java sont en colis qu'ils pendent de la racine javax: javax.*. ils ne se comprennent pas en la JDK ou le JRE. Quelques des extensions et architectures liées étroitement au langage Java sont:
- Java EE (Java Platform, Enterprise Edition; avant J2EE) —pour applications distribuées orientées à l'environnement des entreprises
Java En code ouvert
Java s'est converti dans un langage avec une implantation massive en tous les environnements (personnels et des entreprises). Le contrôle qui maintient Sun sur celui-ci génère reticencias dans la communauté d'entreprises avec des forts intérêts en Java (IBM, Oracle) et évidemment dans la communauté de développeurs de logiciel libre.
L'évolution basée sur un comité dans lequel ils participent tous les concernés il n'est pas suffisant et la communauté poursuivait depuis longtemps la libération des APIs et bibliothèques basiques de la JDK.
En décembre de 2006, Sun a commencé relanzamiento de sa plate-forme Java[3] sous la licence GPL de GNU.
Alternatives libres
Existent alternatives pour l'environnement d'exécution et de développement de Java avec une grande couverture de fonctionnalités quant aux implémentations commerciales de Sun, IBM, Bea, etc.
Critiques référents à Java et le logiciel libre
- Free But Shackled — The Java Trap, De Richard Stallman, 12 avril, 2004. (réponse de James Gosling)
- Traduction à l'Espagnol de cet article: est.html Libre mais encadenado. Le piège du Java. (Remarquez-vous qu'il y a une note en un recuadro jaune que parle de la situation actuelle quant à ce que se dit dans cet article)
Remarquer que cet article a été écrit avant de la libération du code source de Java. Dans l'actualité la position de la Free Logiciel Foundation et de Richard Stallman ont changé, en se montrant partisans tous les deux par son usage en logiciel libre.
Voyez-vous aussi
- Applet Java
- JavaOne
- JavaOS
- Javapedia
- Java Community Process
- Java User Group
- Machine virtuelle Java
- Plate-forme Java
Références
- Jon Byous, Java technology: The early years. Sun Developer Network, Sans date[ca. 1998]. Récupéré 21 avril de 2005.
- James Gosling, À brief history of the Green project. Java.Net, sans date [ca. Q1/1998]. Récupéré 22 avril de 2005.
- James Gosling, Bill Joy, Guy Steele, et Gilad Bracha, The Java language specification, troisième édition. Addison-Wesley, 2005. ISBN 0-321-24678-0.
- Tim Lindholm et Frank Yellin. The Java Virtuel Machine specification, deuxième édition. Addison-Wesley, 1999. ISBN 0-201-43294-3.
Notes
Tu raccordes externes
Wikilibros héberge un livre ou manuel sur Programmation en Java.- Programmes faits en java avec code source
Sun
- Site officiel de Java pour des développeurs, etc
- The Java Language Specification, Troisième édition Spécification officielle du langage Java
- Tutorial de Sun sur le Langage de programmation Java
- Livre blanc original de Java, 1996
Tutoriales
- The Java Tutorial De Sun Microsystems (online)
- Thinking in Java, de Bruce Eckel (online)
- An introduction to Computer Science using Java par Bradley Kjell.
- Java Course, De À.B. Downey.
- Computer-Books.us Collection de livres sur Java disponibles pour téléchargement gratuit.
- En castillan:
- Exemples de code pour que tu uses directement dans tes développements.
- Collection «Java à limite» de livres électroniques (Université de Málaga. l'Espagne)
- Tutoriales de Java devancés, basiques et questions de certification pour pratiquer.
- [Http://www.cursodejava.com.mx/index.html Cours de Java, de zéro à jusqu'à connexion à MYSQL] (le Mexique)
- Capacitación en Java sur des Grands Projets
Certifications
- http://www.sun.com/training/certification/java/index.xml Page officielle de certifications de Sun Microsystems
- http://scjp-sun.blogspot.com/ Ressources et information sur des certifications
Critiques
- Softpanorama Java Critique Page: Java vs Scripting Languages, de Nikolai Bezroukov
- How Java’S Floating-Point Hurts Everyone Everywhere, de W. Kahan und Joseph D. Darcy En le ACM 1998 Workshop on Java for High–Performance Network Computing
a scié:Javadonne:Java (programmeringssprog)le:Javaai:Javaallez:Javaai vu:Java (ngôn ngữ lập trình)
