Em Java, a destruição de objetos é feita pelo coletor de lixo módulo e os objetos que não possuem nenhuma referência a eles são elegíveis para coleta de lixo. O Garbage Collector é capaz de identificar esse tipo de objeto. Agora vamos discutir o que exatamente significa Ilha de Isolamento da seguinte forma:
- O Objeto 1 faz referência ao Objeto 2 e o Objeto 2 faz referência ao Objeto 1. Nem o Objeto 1 nem o Objeto 2 são referenciados por qualquer outro objeto. Essa é uma ilha de isolamento.
- Basicamente, uma ilha de isolamento é um grupo de objetos que fazem referência uns aos outros, mas não são referenciados por nenhum objeto ativo na aplicação. Estritamente falando, mesmo um único objeto não referenciado também é uma ilha de isolamento.
Exemplo:
Java
// Java Program to Illustrate Island of Isolation // Main class public class GFG { GFG i; // Method 1 // Main driver method public static void main(String[] args) { // Creating object of class inside main() method GFG t1 = new GFG(); GFG t2 = new GFG(); // Object of t1 gets a copy of t2 t1.i = t2; // Object of t2 gets a copy of t1 t2.i = t1; // Till now no object eligible // for garbage collection t1 = null; // Now two objects are eligible for // garbage collection t2 = null; // Calling garbage collector System.gc(); } // Method 2 // overriding finalize() Method @Override protected void finalize() throws Throwable { // Print statement System.out.println('Finalize method called'); } }
Saída:
tabela hash versus mapa hash
Explicação de saída:
- Antes de destruir um objeto, o Garbage Collector chama o método finalize no máximo uma vez naquele objeto. Isso ocorre porque o método finalize() é chamado duas vezes no exemplo acima porque dois objetos são elegíveis para coleta de lixo. Isso ocorre porque não temos nenhuma referência externa aos objetos t1 e t2 após executar t2=null.
- Tudo o que temos são apenas referências internas (que é a variável de instância i da classe Test) entre si. Não há como chamar a variável de instância de ambos os objetos. Portanto, nenhum dos objetos pode ser chamado novamente até ' t2.i = t1 '

- Ambos os objetos possuem referências externas t1 e t2.
Agora ambos os objetos são elegíveis para coleta de lixo como não há como chamá-los . Isto é popularmente conhecido como Ilha do Isolamento.
Kat timp