Sobes.tech
Junior — Middle

Explique o conceito de tipos de referência na linguagem Java e em que se diferenciam dos tipos primitivos.

sobes.tech IA

Resposta da IA

Em Java, existem dois tipos principais de dados: primitivos e de referência.

Tipos primitivos (por exemplo, int, boolean, double) armazenam diretamente os valores. Eles ocupam um tamanho fixo na memória e são passados por valor. Por exemplo, ao atribuir uma variável a outra, copia-se o valor em si.

Tipos de referência são objetos e arrays. Uma variável de tipo de referência armazena não o valor do objeto em si, mas uma referência (endereço) à área de memória onde o objeto está localizado. Ao atribuir uma variável de referência a outra, copia-se a referência, não o objeto. Isso significa que ambas as variáveis apontarão para o mesmo objeto.

Exemplo:

int a = 5;
int b = a; // copia o valor 5
b = 10; // a permanece 5

String s1 = new String("hello");
String s2 = s1; // copia a referência ao objeto
s2 = "world"; // s1 permanece "hello", pois String é imutável

Assim, a principal diferença é a forma de armazenamento e transmissão de dados: os primitivos armazenam os valores diretamente, enquanto os tipos de referência armazenam referências a objetos na memória.