static  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Puppets
Virtual Machine Man
[Avatar]

Membro desde: 12/12/2006 14:14:55
Mensagens: 508
Localização: Porto Alegre
Offline

Olá galera.

Qual é o tempo de uma variável estática na memória ?

Quando ela sai da memória ? Creio eu que ele sai com não tenho mais objetos da classe, é isso mesmo galera ?

This message was edited 2 times. Last update was at 23/07/2008 10:20:25


Nunca desista antes de conseguir.
lcegatti
JavaGuru
[Avatar]

Membro desde: 29/01/2007 13:43:20
Mensagens: 218
Localização: São Paulo
Offline

Variavel static dura enquanto a VM estiver no ar.

http://www.guj.com.br/java.tutorial.artigo.121.1.guj



SCJP
Caia na Real
[MSN]
Puppets
Virtual Machine Man
[Avatar]

Membro desde: 12/12/2006 14:14:55
Mensagens: 508
Localização: Porto Alegre
Offline

Então se eu tiver uma aplicação que contenha uma tela por exemplo, e classe que representa essa tela
contém uma variável estática, a variável ficará na memória mesmo que a classe não possua mais referência ?
E se o sistema ficar em constante uso, sempre ficará uma parte da memória ocupada para essa variável estática
até que cancele a aplicação e a VM pare sua execução ? Pra min não faz sentido, pois eu gostaria de saber o conceito de ocupação de memória da variável estática, pois eu também trabalho com c# e creio que a liberação de memória seja similar do Java.

This message was edited 2 times. Last update was at 23/07/2008 10:45:30


Nunca desista antes de conseguir.
dm_thiago
JavaEvangelist
[Avatar]

Membro desde: 14/02/2007 04:23:55
Mensagens: 305
Offline

Puppets wrote:Então se eu tiver uma aplicação que contenha uma tela por exemplo, e classe que representa essa tela
contém uma variável estática, a variável ficará na memória mesmo que a classe não possua mais referência ?


Se a classe for carregada pela JVM, sua variável estática vai estar sempre em memória (e a JVM sempre vai ter referência a sua classe). E não importa quantos objetos você crie dessa classe, todos eles apontaram para a mesma variável. Ela estará sempre carregada porque você não precisa de objetos para referenciá-la. É só colocar NomeDaClasse.variavel.

Puppets wrote:E se o sistema ficar em constante uso, sempre ficará uma parte da memória ocupada para essa variável estática até que cancele a aplicação e a VM pare sua execução ?


Sim.
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline

mas depende do classloader?

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team