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.