O que é a extensão de vida de uma variável em um programa (em Java)?
-
20-09-2019 - |
Pergunta
Você pode me dizer quanto tempo uma variável vive em um programa (em Java).i.e.variáveis declaradas dentro de métodos, variáveis usadas em parâmetros, variáveis ESTÁTICAS, as variáveis utilizadas para o retorno de um método, etc.
Obrigado.
Solução
- Referências declaradas dentro de métodos fora do escopo quando o método termina.
- Parâmetros passados para os métodos de não ser elegível para o GC até que não há mais referências a eles ou eles ficarem fora do escopo.
- Referências estáticas são associados a uma classe e viver o máximo que a classe é carregada.
- Referências retornadas não ser elegível para o GC até que não há mais referências a eles ou eles ficarem fora do escopo.
Outras dicas
Objetos em Java são garantidos para viver tanto tempo quanto eles são referenceable através de um transitivo encerramento do raiz.Este é um conservador aproximação da aplicação do ao vivo objects1.
Editar: Esta pergunta é relativa tempo de vida do objeto, ou escopo de variável?Temos alguns misto terminologia acontecendo.
1 Um objeto vivo é um objeto que vai ser referenciado novamente antes de o aplicativo termina.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow