cópia profunda vs. cópia superficial vs. clone em java
em java, "cópia profunda", "cópia rasa" e " O clone "são frequentemente usados, mas termos mal definidos. Cada conceito requer esclarecimento para garantir o entendimento adequado. ] e
copiando objetos:
copiando um valor: copiando um valor de um tipo de referência envolve atribuir a referência do objeto, semelhante a copiar um número inteiro. &&&] copiando um objeto: Criando um novo objeto, com sua própria identidade, envolve o uso de "new" "explícita ou implicitamente. Cópia profunda dos objetos
Considere o seguinte exemplo:
Exemplo Eg2 = novo exemplo (Eg1.foo, Arrays.copy (Eg1.bar));
class Example {
int foo;
int[] bar;
...
}
Example eg1 = new Example(1, new int[]{1, 2});
Example eg2 = ...
Ao contrário das cópias rasas e profundas, o clone é um método disponível em todas as classes e matrizes Java. No entanto, é importante observar:
Example eg2 = new Example(eg1.foo, eg1.bar);
A especificação do clone não define se produz um clone raso ou profundo. não cria necessariamente um novo objeto.
Example eg2 = new Example(eg1.foo, Arrays.copy(eg1.bar));
Embora esses termos sejam usados com frequência em Java, suas definições podem variar amplamente. Compreender as nuances de cópia superficial, cópia profunda e clone é crucial para a duplicação precisa de objetos. Também é importante ter em mente as limitações do clone e abordá -lo com cautela. Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3