logo

Tipos de dados de referência em Java

Java fornece dois tipos de

Tipos de referência Java

Existem os seguintes cinco tipos de tipos de referência em Java:

é um personagem especial
Tipo de referência Descrição
Aula É um conjunto de instruções. Ele descreve o conteúdo do objeto.
Variedade Ele fornece a estrutura de dados de tamanho fixo que armazena os elementos do mesmo tipo.
Anotações Ele fornece uma maneira de associar metadados a elementos do programa.
Interface É implementado por classes Java.
Enumeração É um tipo especial de classe com segurança de tipo. Cada elemento dentro do enum é uma instância desse enum.

Tipos de dados de referência vs primitivos

Tipo de referência Tipo Primitivo
Não é predefinido, exceto a String. É pré-definido em Java.
Todo tipo de referência começa com letra maiúscula. Todo tipo primitivo começa com uma letra minúscula.
Os tipos não primitivos têm todos o mesmo tamanho. O tamanho de um tipo primitivo depende do tipo de dados.
É usado para invocar ou chamar métodos. Não podemos invocar o método com um tipo primitivo.
Pode ser nulo. Não pode ser nulo. Sempre tem valor.
Exemplos de tipos de dados de referência são classe, Arrays, String, Interface, etc. Exemplos de tipos de dados primitivos são int, float, double, Boolean, long, etc.
A JVM aloca 8 bytes para cada variável de referência, por padrão. Seu tamanho depende do tipo de dados.
Exemplo : Demonstração d1; Exemplo : int num=78;

Alocação de memória e coleta de lixo

Em Java, o nova palavra-chave é usado para criar um instância da classe. Em outras palavras, ele instancia uma classe alocando memória para um novo objeto e retornando uma referência a essa memória. Os objetos ocupam memória no espaço de heap Java. Também podemos usar a palavra-chave new para criar o objeto de matriz .

 ClassName objectName = new ClassName(); 

Se não houver referências a um objeto, a memória usada por esse objeto poderá ser recuperada durante o processo de coleta de lixo.

Conversão entre tipo primitivo e tipo de referência

A conversão do tipo primitivo em tipo de referência é chamada boxe automático e a conversão do tipo de referência em tipo primitivo é chamada desembalar .

Comparando tipo de referência

Também podemos comparar os tipos de referência em Java. Java fornece duas maneiras de comparar tipos de referência:

Usando o operador igual (==)

Ele compara as localizações de memória dos objetos. Se o endereço de memória (referência) de ambos os objetos for o mesmo, os objetos serão iguais. Observe que ele não compara o conteúdo do objeto. Por exemplo:

 Demo d1 = new Demo('Atlanta'); //creating a reference of Demo class Demo d2 = d1; //assigning the reference d1 into d2 if(d1=d2) //comparing reference 

Usando o método String.equals()

O método pertence ao Corda aula. Ele substitui o é igual a() método do Objeto aula . Ele também usa o operador igual (==) para comparar o tipo de referência. Por exemplo, considere o seguinte trecho de código:

arquitetura de colmeia
 String str1='JAVA'; String str2='JAVA'; String str3='java'; System.out.println(str1.equals(str2)); //returns true because content and case is same System.out.println(str1.equals(str3)); //returns false because case is not same 

Copiando tipo de referência

Existem duas possibilidades quando copiamos tipos de referência: é feita uma cópia da referência a um objeto ou é feita uma cópia real (criando uma nova cópia) do objeto.

No exemplo a seguir, atribuímos uma referência ao objeto. Se fizermos alguma alteração no objeto, ela também refletirá a referência e vice-versa.

 Sum s1 = new Sum(); Sum s2= s1;