Java -- Téléchargez-le

Besoin

Fournir un langage simple et objet pour la plate-forme Java.

Analyse

Le langage source à compiler pour générer un code exécutable (bytecode) par une JVM peut être :

Notes

  • Version Java Commentaire
    Release 1
    Domaine Technologie Fix 0 1 2 3 4 5 6 7
    Exécution Interpréteur Non
    VM Oui JVM
    Machine Non
    Compilation Préprocesseur Non
    Structures de contrôle Condition if () { }
    Cas switch () { x: break; }
    Boucle Itération for (init; while; increment) { }
    Un au moins do { } while
    Tant que while () { }
    Suite continue
    Stop break
    Gestion des erreurs Exceptions Oui
    OO Héritage Simple Oui
    Multiple Non
    Types Classes Internes Non Oui
    Collections Iteration Iterator it = col.iterator(); Object o = it.next(); for (Object o : col)
    Constantes Déclaration final
    Import Non import static package.Class.*;
    Enumérations Non enum MonEnum { val1, val2, val3 }
    Numériques Entiers byte, short, int, long
    Flottants float
    Caractères Unique char
    Chaîne String
    Génériques Types Non Classe<Type>
    Méthodes Non <Type> void methode(<Type>)
    Enregistrements Classe Structs/record
    Robustesse et mise au point Contrôle des conversions Oui
    Contrôle des limites de tableau Oui
    Contrôle division par zéro Oui
    Assertions Non assert booleanCondition : message;
    Gestion mémoire Automatique GC Pointeurs évités volontairement pour plus de robustesse.
  • Créé en 1995 par Sun Microsystems qui le gère toujours aujourd'hui via sa filiale JavaSoft.

Exemples

Un exemple de code Java est :

public class MonApplication {
public static void main (String[] someArgs) {
if (
someArgs.length > 0)
System.out.println ("Hello " + someArgs[0]);
else
System.out.println ("Hello world !");
}
}

Limitations

  • Les classes internes ne font pas partie de la spécification de la JVM. Elle sont simulées par des classes externes situées dans le même package, ce qui implique que n'importe quelle autre classe de ce package peut y accéder. De plus, les classes internes générées sous forme de classes externes doivent pouvoir accéder aux membres privés de la classe englobante. Pour rendre cela possible, le compilateur change la visibilité de ces champs de privé en package. Evitez donc les classes internes qui ne sont pas équivalentes à des classes externes, notamment pour définir des bloc privilégiés dans Java 2.

Voir