O Post de hoje é sobre um assunto básico para qualquer programador que esteja iniciando com
Java e ainda não se aprofundou na estrutura da linguagem. Um exemplo simples para entender o que ocorre internamente quando manipulamos tipos primitivos e classes.
Em Java, os ponteiros são implícitos, ou seja, a linguagem não cria objetos e faz cópias a cada ação. Quando você passa o valor de um Objeto para o outro utilizando o operador de atribuição (sinal de igual), é criada uma referência para aquele novo objeto, e não uma cópia.Em outras palavras, os dois apontam para o mesmo endereço de memória. Exemplo :
Classe c1 = new Classe(); Classe c2 = new Classe(); c1.setAtributo("atributo"); c2 = c1; // Caso você altere c1, o valor de c2 também será alterado.Caso seja necessário fazer cópias de objetos com os mesmo valores, é possível utilizar o seguinte:
Classe c1 = new Classe (); Classe c2 = new Classe (); c1.setAtributo("atributo"); c2 = c1.clone(); // c1 e c2 não irão compartilhar o mesmo endereço de memóriaApenas as variáveis primitivas que fazem cópias de seus valores. Exemplo:
int a = 5; int b = a; b++; System.out.Println("Valor de a: " + a); //Aqui o 'a' continua com o mesmo valor.Espero ter ajudado quem estava com essa dúvida. Obrigado e até a próxima !
Nenhum comentário :
Postar um comentário