Le langage Java™Support de cours DESS et IST3/SETI 4
http://java.sun.com/docs/books/jls/
–The Java™Virtual Machine Specification, 2eédition, de Sun Microsystems Inc. :
http://java.sun.com/docs/books/vmspec/
– la “Java™software FAQ index” :
http://java.sun.com/docs/faqindex.html
– la “Java™Infrequently Answered Questions” :
http://www.norvig.com/java-iaq.html
1.4 Quelques références d’outils
– le site officiel :
http://www.javasoft.com/
– version 1.4.0 b3 (38 Mo 30 Mo de doc - versions RC pour 2002) pour Solaris, Windows et Linux :
http://java.sun.com/j2se/1.4/
,
– version 1.3.1 pour Solaris, Windows et Linux :
http://java.sun.com/j2se/1.3/
,
– version 1.2.2 pour Solaris, Windows et Linux :
http://java.sun.com/products/jdk/1.2/
,
– version 1.1.8 pour Solaris et Windows :
http://java.sun.com/products/jdk/1.1/
,
–Java™-Linux :
http://www.blackdown.org/
1.5 Langages concurrents
– Internet C++ (et sa machine virtuelle ICVM, Open Source) :
http://www.xmission.com/~icvm/
– le C# (Microsoft C-Sharp) :
http://www.csharpindex.com/
1 using System;
2class Welcome
3 {
4static void Main() {
5 Console.WriteLine("Welcome to csharpindex.com");
6 }
7 }
comparatif
http://www.25hoursaday.com/CsharpVsJava.html
– C++, Objective-C, Smalltalk, Eiffel, perl,
1.6 Principales caractéristiques du langage
– Java : A simple, object-oriented, network-savy, interpreted, robust, secure, architecture neutral, portable, high-
performance, multithreaded, dynamic language.
– plus d’informations techniques dans "The Java Language Environment White Paper", de J. Gosling et H. Mc-
Gilton, mai 1996, disponible à l’adresse suivante :
http://java.sun.com/docs/white/langenv/
.
–Java™c’est : un langage, une machine virtuelle, un ensemble de classes standards (réparties dans plusieurs
API), des outils (JDB,javadoc)...
– Simple : reprise de la syntaxe du C/C++, sans les pointeurs, ni l’héritage multiple de classes, mais avec un
ramasse-miettes,
– Orienté-objet : tout est classe dérivant de java.lang.Object, à l’exception de quelques types primitifs,
– Interprété : au niveau d’une JVM, après production de byte code,
– Robuste : mécanisme d’exceptions, langage fortement typé, ramasse-miettes, pas d’accès direct à la mémoire
par pointeur,
– Sécurisé : pas d’accès direct aux ressources physiques, compilateur “exigeant”, JVM Verifier (vérificateur de
byte code), Class Loader et Security Manager (système de fichiers, accès réseau),
– Indépendant du matériel et portable : la JVM s’intercale entre le hardware et les applications/applets,
– Performant : un peu plus à chaque nouvelle version de JVM,
– Distribué : API réseau standard conséquente, mécanismes de RMI, JavaIDL (pour intégration et adéquation à
CORBA), JNDI (Java™Naming and Directory Interface, pour les services d’annuaires),
– Multithreads : nativement et de façon simple, géré directement par la JVM,
– Dynamique : chargement des classes en cours d’exécution, à la demande, pas de phase d’édition de liens,
Thomas LEDUC leduc@lsv.ens-cachan.fr Nov 2001 - fév 2002