
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 :
- Java
- Groovy
- Scala
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.