"Amigo, je t'envie. Apprendre de nouvelles choses est tellement merveilleux ! Et aujourd'hui, un nouveau sujet intéressant t'attend : les littéraux."

"Apparemment, je devrais dire que je suis l'étudiant-robot le plus heureux de la planète, Rishi. Eh bien, je suis prêt à absorber les nouvelles connaissances!"

"Allons-y tout de suite. Les littéraux sont des données spécifiques écrites directement dans le code d'un programme. Nous ne parlons pas de n'importe quelles données. Nous ne parlons que de types primitifs et de chaînes.

Par exemple, supposons que vous ayez ce code :

Code Littéraux
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

"Les littéraux de ce code sont le nombre 5 , le nombre 10 et la chaîne ' Sum = '.

Littéraux entiers

"En Java, tout, y compris les littéraux, a un type. Tous les littéraux entiers (entiers) dans le code sont des ints . Le type int est le type entier Java standard."

"Je connais ce type. Je l'ai utilisé."

"Vous souvenez-vous d'autres types d'entiers en plus de int ? Certains qui occupent moins d'espace en mémoire ?"

"Bien sûr ! Byte et court."

"Ce sont ceux-là. Donc, si dans votre code vous décidez d'affecter un littéral entier à une variable de type byte ou short, il n'y aura aucun problème. L'essentiel est que la valeur littérale se situe dans la plage de valeurs que le type de variable peut stocker. Le compilateur Java est suffisamment intelligent pour comprendre qu'une variable d'octet peut se voir attribuer le littéral entier 100.

Exemples:

Code Description
int a = 300;
Cela compilera très bien.
byte a = 100; 
Cela compilera très bien.
byte a = 300;
Il y aura une erreur de compilation, car la valeur d'octet maximale est de 127.

"Qu'en est-il du type long ?"

"Nous pouvons également écrire des littéraux de ce type dans notre code. Pour ce faire, ajoutez la lettre latine 'L' ou 'l' à la fin de l'entier.

Exemples:

Code Description
long a = 3000000000L; 
Cela compilera très bien.
long a = 3000000000; 
Erreur de compilation : 3 milliards est trop grand pour un littéral int.
int a = 3000000000L; 
Erreur de compilation : le littéral est un long, mais la variable est un int. De plus, 3 milliards est plus que le maximum int.

« Avez-vous remarqué à quel point il est difficile de lire de grands nombres de 10 chiffres ou plus ?

"Ouais, si vous n'avez pas activé votre robovision, il ne sera pas immédiatement clair si nous parlons de 3 milliards ou de 30."

"Pour rendre le code plus lisible (et c'est important !), Java permet d'insérer des traits de soulignement dans les littéraux numériques (ils n'affectent pas la valeur du nombre).

"L'exemple ci-dessus peut être réécrit avec des traits de soulignement pour le rendre un peu plus clair :

Code Description
long a = 3_000_000_000L; 
Cela compilera très bien.
long a = 3_000_000_000; 
Erreur de compilation : 3 milliards est trop grand pour un littéral int.
int a = 3_000_000_000L; 
Erreur de compilation : le littéral est un long, mais la variable est un int. De plus, 3 milliards est plus que le maximum int.

"C'est beaucoup plus pratique à lire, même si une virgule au lieu d'un trait de soulignement serait plus familière !"

"Mais nous ne pouvons pas utiliser de virgules dans les littéraux numériques car elles sont déjà utilisées à d'autres fins. Par exemple, pour séparer les arguments les uns des autres lors de l'appel d'une méthode.

Littéraux de nombres réels

"Vous avez probablement déjà deviné que dans votre code, vous pouvez spécifier non seulement des nombres entiers, mais également des littéraux à virgule flottante (nombres réels)."

« Les doubles et les flotteurs ?

"Oui. En fait, la règle est assez simple : si un nombre dans le code contient une virgule décimale, alors le nombre est un littéral à virgule flottante. Et pas n'importe quel littéral, mais un double littéral. Pour créer un littéral flottant , vous besoin de mettre la lettre 'F' (ou 'f') à la fin du numéro .

Exemples:

Code Description
double a = 100.0; 
Cela compilera très bien.
double a = 100.;
Cela compilera très bien.
double a = .0;
Cela compilera très bien.
float a = 100.0f; 
Cela compilera très bien.
float a = 100.0; 
Il y aura une erreur de compilation : la variable est un flottant, mais le littéral est un double.

"Au fait, vous pouvez explicitement convertir un littéral entier en un flottant ou un littéral double en ajoutant simplement le suffixe 'F' (pour float ) ou D (pour double ). Exemples :

Code Description
double a = 100D;
Cela compilera très bien.
float a = 100F; 
Cela compilera très bien.
int a = 300D; 
Il y aura une erreur de compilation : la variable est un int, mais le littéral est un double .

"Les littéraux à virgule flottante peuvent utiliser la notation scientifique : en plus de la partie signée du nombre, vous pouvez également spécifier une puissance de dix. Exemple :

Littéral Notation mathématique Valeur finale
1.23 E 2 1.23*10 2 123,0
1.23 E 3 1.23*103 1230.0
1.23E - 6 1.23*10 -6 0,00000123
1 E 6 1,0 *10 6 1000000.0
1 E -10 1.0*10 -10 0,0000000001

Littéraux de chaîne

"Vous pouvez également spécifier des lignes entières de texte dans votre code. Afin de dire au compilateur de traiter une chaîne comme des données (un littéral) et non comme faisant partie du code, la chaîne entière est entourée de guillemets doubles des deux côtés.

"Si une seule ligne de code comporte plusieurs guillemets doubles, ils sont divisés en paires. Le premier guillemet double indique le début d'un littéral. Le suivant indique la fin du littéral. Le suivant marque à nouveau le début d'un nouveau littéral. Et le suivant marque la fin du deuxième littéral. Et ainsi de suite.

"Chaque littéral de ce type est un String .

Exemples

Code Explication
"+"+"+"+"+"+"+"+"+"
Il y a 5 littéraux dans une ligne. Chacun d'eux est composé d'un seul caractère '+'
""
Ce littéral est une chaîne vide. Une chaîne sans caractères.
"2+3"+"-5"
Il y a deux littéraux ici. Le résultat sera la chaîne '2+3-5', pas un nombre
"return"+";"
Il y a aussi deux littéraux ici. Il n'y a pas de déclaration de retour ici.

"Si un littéral de chaîne est trop long, il peut être divisé en plusieurs lignes et collé avec l'opérateur 'plus' :

Code Explication
String s = "I hold it true, whate'er befall"
         + "I feel it when I sorrow most;"
         + "'Tis better to have loved and lost"
         + "Than never to have loved at all.";
Si vous affichez cette ligne à l'écran, tout le texte sera affiché sur une seule ligne !

Caractères littéraux

"Que se passe-t-il si j'ai besoin d'un littéral qui est un caractère unique plutôt qu'une chaîne ? Dois-je créer une chaîne composée d'un seul caractère ?"

"Non, dans ce cas, vous avez besoin d'un littéral dont le type est char. Pouvez-vous deviner comment le début et la fin d'un tel littéral sont désignés ?"

"Guillemets simples?"

"Oui, et à l'intérieur des guillemets simples, il doit y avoir un caractère et un seul caractère. Vous ne pouvez pas utiliser de guillemets simples vides.

Exemples:

Code Explication
'A'
Un littéral dont le type est char. Il contient la lettre latine 'A'.
'@' 
Un littéral dont le type est char. Il contient le symbole '@'
'' 
Un littéral dont le type est char. Il contient un caractère japonais. Et cela est également possible.
'\u1f3a'
Un littéral dont le type est char. Il contient un caractère Unicode spécifié par son numéro.

"Le dernier exemple attribue un caractère Unicode à l'aide d'une notation spéciale : nous avons d'abord le préfixe \\u, suivi de 4 caractères hexadécimaux. Vous en apprendrez plus à ce sujet dans les prochaines leçons."