Um literal primitivo é apenas uma representação de código-fonte dos tipos de dados primitivos, em outras palavras, um número inteiro, número de ponto flutuante, booleano que é digitado ao escrever código.
Literais Inteiros
Existem três formas de representar números inteiros em Java: decimal (base 10), octal (base 8) e hexadecimal (base 16).
Literais Decimais
Inteiros decimais são representados como realmente são.
Literais Octais
Inteiros octais usam somente os dígitos de 0 a 7. Em Java, um número na forma octal é representado pela colocação de um zero na frente do número. Quando chega ao número 7, deve-se voltar para o 0 e adicionar o número 1 na sua frente, e assim por diante.
Literais Hexadecimais
Números hexadecimais são construídos utilizando 16 símbolos diferentes. Como nunca foram inventados símbolos digitais únicos para números de 10 a 15, são utilizados caracteres alfabéticos para representar esses dígitos (a linguagem aceita letras maiúsculas ou minúsculas nesse caso, sem fazer diferença entre elas).
É possível ter até 16 dígitos em um número decimal, não incluindo o prefixo 0x.
Obs.: todas as três literais (octal, decimal e hexadecimal) são definidas como int por default, mas elas também podem ser atribuídas a uma variável long, colocando o sufixo L ou l depois do número.
Literais de Ponto Flutuante
Números de ponto flutuante são definidos por um número, um símbolo decimal, e mais números representando a fração.
Literais de ponto flutuante são definidos como double (65 bits) por default, então se for necessário assinar uma literal de ponto flutuante como float, deve-se colocar o sufixo F ou f no número.
É possível também colocar o sufixo D ou d para literais double, mas não é necessário porque este já é o default.
Literais Boolean
Um valor boolean somente pode ser definido como true ou false.
Literais Character
Um literal character é representado por um único caractere em aspas simples. Também pode receber o valor Unicode de um caractere.
Caracteres são apenas 16-bits, isso significa que qualquer literal numérica pode ser atribuída, desde que se encaixe nos 16 bits (65535 ou menos). Isso quer dizer que um char pode receber um literal decimal, octal ou hexadecimal, por exemplo, desde que caiba nos 16 bits; caso contrário, será necessário casting com perda de dados.
Valores Literais para Strings
Uma literal string é o valor de um objeto String. Uma string não é um tipo primitivo, mas pode ser representada como literal porque pode ser digitado diretamente no código.
public class Literais_Primitivos {
//literal decimal
byte num = 15;
//literal octal
int six = 06; //equivale ao decimal 6
//literal hexadecimal
int hex = 0x0001;
long hex2 = 0xFFFFFFFL;
//literais de ponto flutuante
//erro - perda de precisão
float f = 23.467890;
//ok - sufixo F
float g = 23.467890F;
//sufixo D é opcional
double d = 110599.995011D;
//literais boolean
boolean teste = false;
//litetais character
char ch = 'A';
char ch2 = '\u004E'; //letra N
char ch3 = 0x892; //hexadecimal literal
char ch4 = 982; // int literal
//necessário cast, pois o valor possui
//mais que 16 bits - perda de precisão
char ch5 = (char)70000;
//literais string
String nome = "Kamilla";
}
Fonte: SCJP Sun Certified Programmer for Java 6 Study Guide
0 comentários:
Postar um comentário