Tipos Primitivo

Java possui oito tipos de dados, referenciados como tipos primitivos. Estes oito tipos representa a base para os objetos Java, porque todos os objetos são apenas coleções complexas para os tipos primitivos.

Na Table 1.1 mostrar os tipos primitivos do java com seus tamanhos em bytes e a faixa de valores que eles suportam.

Vamos ver algumas informações da tabela.

float e double são utilizados para valores que não são inteiros.

um float precisa da letra f no fim do valor para o Java saber que é um float.

byte, short, int e long são utilizados para números inteiros.

Cada tipo tem o dobro do tamanho do seu antecessor na tabela. Por exemplo, short é duas vezes maior que o byte.

No exame não será perguntado sobre os tamanhos dos tipos. Mas você deve saber que um byte pode guardar um valor entre -128 a 127. É bom saber o valor que cada tipo precisa de memória do seu computador. Por exemplo, o Java reserva 32 bits na memória quando você digita:  int num;

O maior valor que o tipo int consegue guardar é 2.147.483.647. Para saber isto por meio de código basta digitar System.out.println(Integer.MAX_VALUE);

Mais algumas coisas que precisamos saber sobre os primitivos numéricos. Quando um número está presente em um código, ele é chamado de literal. Por padrão, o Java define o valor int como um literal. Isto significa que o Java espera que você saiba o valor máximo que o tipo int suporta e todo número que estiver no código será considerado do tipo int.

long max = 3123456789; //não compila

O código não compila porque a variável max recebeu um valor acima do que o tipo int suporta. Se quiser guardar este valor o correto é:

long max = 3123456789L; //agora sim o Java sabe que isto é um long.

Se você adicionar a letra L na forma minúscula também funciona, porém não é recomendado, já que a letra L (l) pode ser confundido com o número 1.

Outra maneira de programar com número é mudando a sua base decimal para outras. Os prefixos utilizados são para o Java reconhecer a base utilizada.

Octal (dígitos de 0 a 7), utiliza o número zero como prefixo. Exemplo, 017 é igual ao valor 15 decimal.

Hexadecimal (dígitos de 0 a 9 e letras de A a F), utiliza o número zero seguindo da letra x maiúscula ou minúscula como prefixo. Exemplo, 0xFF é igual ao valor 255 decimal.

binário (dígitos de 0 a 1), utiliza o número zero seguido da letra b maiúscula ou minúscula como prefixo. Exemplo, 0b10 é igual ao valor 2 decimal.

No exame não cairá conversões de números, mas você deve saber que valores literais podem ser modificados.

Mais um recurso que o valor numérico possui a partir do Java 7 é poder adicionar underscore entre números para ficar mais fácil de ler.

int milhao = 1000000;

int milhao = 1_000_000;

Não pode colocar underscore no início ou no fim dos números. Não pode colocar underscore seguido de ponto. Vamos ver exemplos.

double noInicio = _1000.00; //não compila

 double noFim = 1000.00_; //não compila

double comPonto = 1000_.00; //não compila

double estranhoMaisFunciona = 1_00_0.0_0; //compila

Tipos de Referência

Um tipo de referência para um objeto (é uma instância de uma classe). Diferente dos tipos primitivos que guarda o valor na memória, a referência guarda o valor do objeto. Diferente de outras linguagens, o Java não permite você manipular o endereço de memória física. Só é permitido referenciar um objeto.

Vamos ver um exemplo. Suponhamos que queremos declarar uma referência para o tipo java.util.Date e uma referência para o tipo String.

java.util.Date hoje;

String greeting;

A variável hoje é referência do tipo Date e só pode ser utilizado por um objeto Date. A variável greeting é referência do tipo String e só pode ser utilizado por um objeto String. Um valor pode ser atribuído a uma referência de duas formas:

Uma referência pode ser atribuída a outro objeto de mesmo tipo.

Uma referência pode ser atribuída para um novo objeto utilizando a palavra new.

hoje = new java.util.Date();

greeting = “How are you?”;

 Agora a variável hoje aponta para um novo objeto Date na memória e pode utilizar vários campos e métodos do objeto Date. Isto acontece também com a variável greeting quando assume o valor “How are you?”. Os objetos String e Date não tem nomes e só podem ser acessados via referência. A figura 1.1 mostra como os tipos de referência aparece na memória.

As Diferenças

Há algumas diferenças que você deve saber entre primitivos e tipos de referência. Primeiro, tipos de referência pode ter o valor null, isto significa que não está referenciando nenhum objeto. Um tipo primitivo se for relacionado ao um valor null, haverá um erro de compilação. Exemplo.

int valor = null; //não compila

String s = null; //tudo certo

Tipos de referência podem utilizar métodos quando não estão nulos. Primitivos não possuem métodos.

String referencia = “hello”;

int ok = referencia.length();

int errado = len.length(); //não compila

Uma outra diferença é que o tipo primitivo começa com a letra minúscula e as classes com a letra maiúscula.

Declarando Múltiplas Variáveis

Você pode declarar e inicializar múltiplas variáveis de uma vez. Quantas variáveis você acha que estão declaradas e inicializadas nas duas linhas seguintes?

String s1, s2;

String s3 = “sim”, s4 = “não”;

Quatro String foram declaradas: s1, s2, s3 e s4. Duas variáveis foram inicializadas: s3 e s4. Você pode declarar muitas variáveis na mesma declaração. Você também pode inicializar muitas ou todas as variáveis que estão na mesma declaração.

Preste atenção nas pegadinhas na prova. Quantas variáveis você acha que estão declaradas e inicializadas neste código?

int i1, i2, i3 = 0;

São três variáveis declaradas: i1, i2 e i3. Contudo, somente a i3 foi inicializada. Outra pegadinha.

int num, String value; //não compila;

Este código não compila porque há múltipla variáveis de tipos diferentes na mesma declaração. Só pode declarar múltipla variáveis se for do mesmo tipo.

boolean b1, b2;

String s1 = “1”, s2;

double d1, double d2;

int i1; int i2;

int i3; i4;

O primeiro exemplo compila, é válido declarar duas variáveis sem inicializá-las.

O segundo exemplo compila, são declaradas duas variáveis e inicializada apenas uma.

O terceiro exemplo não compila, o Java não permite declarar mais de um tipo na mesma declaração, mesmo que os tipos sejam iguais.

O quarto exemplo compila, apesar de estarem na mesma linha o Java entende como outra linha por causa do ponto e vírgula.

O quinto exemplo não compila, porque o i4 está sem declaração de tipo.

❤️ Curso Java Para Iniciantes

http://bit.ly/java-swing

👍 Curso de Desenvolvimento Web Completo

http://bit.ly/2FnB5Sp

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário

*

Seja o primeiro a comentar!