O que é uma referência suave?
Na linguagem de codificação Java®, são feitas referências constantemente a objetos, strings e variáveis, mesmo que o programador não tenha conhecimento dessas referências. Essas referências se comunicam diretamente com o coletor de lixo, uma função que reúne informações desnecessárias e as joga para que não ocorra mais memória. Por padrão, todas as referências são fortes referências e são definidas sem codificação, o que significa que não são liberadas para o coletor de lixo. Uma referência suave permite que os dados sejam jogados fora. É a referência de nível médio para todas as referências não fortes. O programador não precisa escrever um comando de referência; A referência é feita automaticamente e é, por padrão, uma forte referência. Isso significa que os dados da referência não podem ser jogados fora, porque estão ligados a objetos integrais necessários para todo o script.
AlgunsOs dados precisam ser jogados fora, porém, porque, de outra forma, ocupam muita memória. Por exemplo, se um programador criar um script no qual os números de série são usados ou outras informações temporárias são coletadas ou criadas, mantendo essas informações se tornará prejudicial. O programa Java® se recusaria a jogar fora as informações, mesmo quando for desnecessário, e o script precisaria cada vez mais memória para funcionar.
Especificando uma string ou seção como uma referência suave, que precisa ser colocada na codificação, isso diz ao coletor de lixo que os dados podem ser liberados. Uma vez lançado, a string ou seção será lida como "NULL". O coletor de lixo, dependendo de sua configuração, decidirá quando os dados devem ser expulsos.
Existem três referências não fortes: referência suave, referência fraca e referência fantasma. A referência fraca é a mais fraca e seus dados são lançadoslonge rapidamente. As referências suaves, que são melhores para scripts, onde os dados temporários podem ser usados várias vezes, são os próximos na fila. Uma referência fantasma é jogada fora quase automaticamente, dentro de um segundo, e deve ser usada com moderação.
O período de tempo que uma referência suave permanece geralmente depende da quantidade de memória no computador. Se a memória estiver cheia, o coletor de lixo destruirá primeiro todas as referências fracas. Quando todas as referências fracas desaparecerem, e se a memória ainda precisar purgar dados, as referências suaves serão lançadas a seguir.