2. Les types primitifs

Type de variable - définition


2.1.    Les types entiers

2.1.1      Les différents types d’entiers

Type

Taille

(octets)

Valeur minimale

Valeur maximale

byte

1

-128

127

short

2

-32 768

32 767

int

4

-2 147 483 648

2 147 483 647

long

8

-9 223 372 036 854 775 808

9 223 372 036 854 775 807

Tab. 2.1 Quatre types entiers de Java

2.1.2 Notation des constantes entières

décimales 
25   -634   +12432  de type int
 25L - de type long

hexadécimale
0x1f             valeur décimale 31 (1*16+15 )
0xA4           valeur décimale 164 (10*16+4)

octale
017             valeur décimale 15 (1*8+7)

binaire

0b00100001     valeur décimale 17 (1*16+1)

underscore" ( _ ) entre deux caractères numériques pour lisibilité

long ln = 0b11010010_01101001_10010100_10010010;


2.1.3      Déclaration des variables

public class TypeEntier {
      public static void main(String args[]){
            
byte bt;                                          //Entier byte non initialisé        
            
byte bt1 = 12;                              //Initialisation valeur décimale
             byte bt2 = 015, bt3 = 0xE;        //valeur octale et hexadecimale
            
short sh;
             short sh1 = 12, sh2 = -0145, sh3 = 0x1F2;
            
int en;      
            
int en1 = -12, en3 = 01450, en4 = -0x1A3F2;
            
long ln;
             long ln1 = 12, ln2 = 534L, ln3 = 01450L, ln4 = 0x1A3F2;
     
}
}


2.1.4      Représentation mémoire

2                 00000010                   02
3                 00000011                   03
-2               11111110                   FE
-3               11111101                   FD

public class Debord {
      public static void main(String args[]){
             byte bt = 127;
             bt++;
             System.out.println("bt = "+ bt);
     
}
}

2.2.    Les types flottants

2.2.1  Les différents types flottants et leur représentation en mémoire

Type

Taille en

octets

chiffres

significatifs

Valeur absolue minimale

Valeur absolue maximale

float

4

7

1.40239846E-45

3.40282347E38

double

8

15

4.9406564584124654E-324

1.797693134862316E308

Tab. 2.2 Deux types flottants de Java


 2.2.2    Notation des constantes flottantes

15.43         -0.28          -.28     4.

4.25E4            4.25e+4          42.5E3

54.27E-32            542.7E-33            5427e-34

48e13        48.e13       48.0E13

4.25E4f                 4.25E4F

2.2.3    Déclaration des variables flottantes

public class TypeFlottante {
    public static void main(String args[]){
        float ft;                                            //non initialisé   
        float ft1 = 12, ft2 = 12.1f, ft3 = 12.5E8F;        //avec initialisations
        double db;
        double db1 = 12, db2 = 12.1, db3 = 12.5E8;       
    }
}

2.3    Le type caractère


2.3.1    Notation des constantes de type caractère

'a'       'E'       'é'        '+'

Notation

Unicode

(hexadécimal)

Abréviation usuelle

Signification

\b

0008

BS (Backspace)

Retour arrière

\t

0009

HT(Horizonta tabulation)

Tabulation horizontale

\n

000A

LF(Line feed)

Saut de ligne

\f

000C

FF(Form feed)

Saut de page

\r

000D

CR (Cariage return)

Retour chariot

\"

0022

 

guillemet

\'

0027

 

apostrophe

\\

005C

 

le caractère "\"

Tab 2.3 Les caractères disposant d’une notation spéciale

Normalement le programme source est saisi avec un éditeur local codant les caractères sur un octet. Avant la compilation les caractères sont convertis en unicode

'\141'        le caractère 'a'            en octale ( entre 0 et 255)
'\143'        le caract
ère 'c'

en unicode

'\u0061'        le caractère 'a'         en hexadécimale (entre 0 et 65535)
'\u0063'        le caractère 'c'

codage local (sur 8 bits)

2.3.2    Déclaration des variables caractères

public class TypeChar {
    public static void main(String args[]){
        char c;
        char c1 = 'a', c2 = '\141', c3 = '\u0061';
        char c4 = '\"', c5 = '\n';
    }
}
2.4    Le type booléen

true     false

2.4.1    Déclaration des variables booléens

public class TypeBool {
    public static void main(String args[]){
        boolean bl;
        boolean bl1= true, bl2 = false;
    }
}

2.5    Variable non initialisées

int n ;
System.out.println ("n = " + n ) ; // erreur de compilation

int n ;
int p = n+3 ; // erreur de compilation

Java est capable de détecter toutes les situations où il y a des risques des variables non initialisées.
int n ;
if (...) n = 30 ;
p = 2*n ; // erreur de compilation



2.6    Le mot-clé final

final int n = 20 ;
n = n + 5 ; // erreur : n a été déclarée final

public class VarFinal {
    public static void main(String args[]){
        final int k =20;  //initialisation dans la declaration
        final  double d;
        d = Math.random();    //initialisation pendant l'exécution   
    }
}