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;