Types et variables de base

Les instructions de base en JAVA sont tres proches du C. Les types de base et leur intervalle de valeur sont les suivants :

type

Intervalle de valeurs

Operations

boolean

true/false

==, !=, !, &, ^, |, &&, ||

byte

-128..127

==, !=, <, >, <=, >=

+, -, *, /, %, ++, --

<<, >>, >>>, &, |, ^

?:

(transtypage)

short

-32768..32767

Cf. byte

int

-2147483648..2147483647

Cf. byte

long

-9223372036854775808..9223372036854775807

Cf. byte

char

1 chaine de caracteres est de type String

'\u0000'..'\uffff'

==, !=

Pour les flottants, nous avons :

float

NaN, -(2^24)^(-149)..(2^24)^104

==, !=, <, >, <=, >=

+, -, *, /, %, ++, --

<<, >>, >>>, &, |, ^

?:

(transtypage)

double

NaN, -(2^53)^(-1075)..(2^53)^970

Cf. float

Pour des raisons de securite, les operateurs ne peuvent etre surcharges en JAVA (pas de + sur un vecteur par exemple).

Une constante est declaree comme une variable avec le mot final en entete. Elles sont generalement ecrites en majuscule. De facon generale, tout element declare final ne pourra etre redefini ou modifie par la suite (par de surcharge en cas d'heritage par exemple).

Un programme est contenu dans un ou plusieurs fichiers ayant l'extension .java et sont compiles par exemple par : 

javac mon_type.java

Un fichier .class est genere pour chacune des classes du fichier mon_type.java. On lance leur execution en tapant par exemple java mon_type (le fichier et la classe appelee doivent avoir le meme nom). La variable d'environnement CLASSPATH doit permettre un acces au repertoire ou se trouve les fichiers .class.

Voici un exemple de programme utilisant ces types :

Programme : 

/* le fichier mon_type.java contient la classe suivante */

class mon_type

{

    final int CONSTANT=1 ;

    public static void main(String[] args)

    {

      boolean test=true ;

      byte octet ;

      short petit ;

      int entier ;

      long entier_l ;

      char car ;

      float flottant ;

      double flottant_l ;

      /* ecrit la valeur des variables en sortie */

      System.out.println("La valeur du booleen test est <" + test

      + "> et sa negation <" + !test +">") ;

      /* traitement des entiers */

      petit = 10 ;

      entier = 1000 * (int) petit - 10 + 3/4 ;

      entier_l = 10000 * (long) entier ;

      System.out.println("Mes entiers ont pour valeurs : " + petit

      + " " + entier + " " + entier_l) ;

      /* traitement des doubles */

      flottant = (float) 1e308 ; /* 1e308 est un double par defaut */

      flottant_l = 10.0 * (double) flottant ;

      System.out.println("Voici ce qui se passe pour un depassement de capacite " + flottant*10) ;

      System.out.println("Voici la valeur de pi : " + Math.PI ) ;

      System.out.println("Voici le resultat d'une division par 0 : " + flottant/Math.sin(0.0)) ;

      /* traitement d'un caractere */

      car = 'a' ;

      System.out.println("Voici un caractere : <" + car + ">") ;

    }

}


Resultat de l'execution :

La valeur du booleen test est <true> et sa negation <false>

Mes entiers ont pour valeurs : 10 9990 99900000

Voici ce qui se passe pour un depassement de capacite inf

Voici la valeur de pi : 3.14159

Voici le resultat d'une division par 0 : inf

Voici un caractere : <a>


Options de javac :

-classpath path Specifies the path javac uses to look up classes.

-d directory Specifies the root directory of the class file hierarchy.

-encoding encoding_name Specify the source file encoding name.

-g Enables generation of debugging tables.

-nowarn Turns off warnings.

-O Optimizes compiled code by inlining static, final and private methods.

-verbose

-depend This option makes the compiler consider recompiling class files which are referenced from other class files.

-Jjavaoption Passes through the string javaoption as a single argument to the Java interpreter which runs the compiler.


Ph. RIS 1997