Em Java SE 7, foi adicionada representação literal em forma binária. Você pode usar facilmente literais binários para representar valores numéricos como em decimal.
Por exemplo:
// An 8-bit byte value: byte aByte = 0b100001;// A 16-bit short value: short aShort = 0b10100101001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101;// A Valor longo de 64 bits (observe o sufixo "L" no final) de comprimento = 0B1010L; // O valor literal binário começa com 0b ou 0b e é insensível ao caso int anint2 = 0b101;
Em Java SE 7, representações numéricas de sublinhamentos como delimitadores também são suportadas:
// formulário decimal int anint1 = 123_45_6; // binário, hexadecimal, etc. Também suporta int anint2 = 0b10_0110_100; int anint3 = 0xff_ec_de_5e; // A forma decimal também suporta float pi = 3.14_15f; dupla adulta = 3,14_15; // Os sublinhados múltiplos estão conectados int cadeia = 5______2____0;
No entanto, os seguintes formulários de escrita estão incorretos:
// O sublinhado não pode ser colocado no final int x = 52_; // erro // o sublinhado não pode ser adjacente ao ponto decimal (nem antes nem depois do ponto decimal é adjacente ao ponto decimal) flutuar PI1 = 3_.1415f; // erros float pi2 = 3._1415f; // error // o sublinhado não pode ser colocado na frente do sufixo "L" ou "f" flutuante PI3 = 3.1415_f; // erro por muito tempo1 = 999_9999_l; // erro // O sublinhado não pode ser colocado entre os caracteres prefixos que representam o cardeal int x5 = 0_x52; //Erro
Além disso, você também deve prestar atenção à seguinte situação em que o sublinhado é colocado na frente:
int _52 = 120; // Em Java, os nomes de variáveis não podem começar com números, mas podem começar com sublinhores int x = _52; // Então, _52 aqui não é uma forma literal de um número, mas um identificador variável (nome da variável)