Dans Java SE 7, une représentation littérale sous forme binaire a été ajoutée. Vous pouvez facilement utiliser des littéraux binaires pour représenter des valeurs numériques comme en décimal.
Par exemple:
// une valeur d'octet 8 bits: octet Abyte = 0b100001; // une valeur courte de 16 bits: Ashort court = 0b1010010100101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 Valeur longue 64 bits (Remarque le suffixe "L" à la fin) long le long = 0b1010l; // La valeur littérale binaire commence par 0b ou 0b et est insensible au cas int anint2 = 0b101;
Dans Java SE 7, les représentations numériques des soulignements à mesure que les délimiteurs sont également soutenus:
// Formale décimale int anint1 = 123_45_6; // binaire, hexadécimal, etc. prend également en charge int anint2 = 0b10_0110_100; int anint3 = 0xff_ec_de_5e; // La forme décimale prend également en charge Float pi = 3.14_15f; Double Adouble = 3.14_15; // plusieurs soulignements sont connectés dans la chaîne int = 5______2____0;
Cependant, les formulaires d'écriture suivants sont incorrects:
// Le soulignement ne peut pas être placé à la fin int x = 52_; // Erreur // Le soulignement ne peut pas être adjacent au point décimal (ni avant ni après le point décimal n'est adjacent au point décimal) float pi1 = 3_.1415f; // Erreur float pi2 = 3._1415f; // Erreur // Le trait de soulignement ne peut pas être placé à l'avant du suffixe "L" ou "F" float pi3 = 3.1415_f; // Erreur long le long1 = 999_9999_l; // Erreur // Le soulignement ne peut pas être placé entre les caractères de préfixe représentant le cardinal int x5 = 0_x52; //Erreur
De plus, vous devez également prêter attention à la situation suivante où le soulignement est placé à l'avant:
int _52 = 120; // En Java, les noms de variables ne peuvent pas commencer par les nombres, mais peuvent commencer par des soulignements int x = _52; // donc, _52 ici n'est pas une forme littérale d'un nombre, mais un identifiant de variable (nom de variable)