Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

quinta-feira, 4 de outubro de 2012

(Java Jr - VIII) Atributos e Métodos estáticos

,

Atributos e Métodos estáticos em Java


Ao contrário do que o nome soa, static não significa que a variável ou método sera estática do ponto de vista que seu valor não pode mudar ( final é usado para estes casos ). static nos garante que somente haverá uma, e não mais que uma, referência para determinada variável ou método disponível em mémoria. Em outras palavras, declarando alguma coisa como static, todas as instâncias da classe irão compartilhar a mesma cópia da variável ou método.
Uma pessoa que está iniciando os estudos na linguagem e plataforma Java possui muita dificuldade em entender os atributos e métodos estáticos.

É muito comum ouvir a explicação que ao colocar o operador static no atributo/método este irá pertencer a classe e não ao objeto. Mas, como assim?

Para a melhor compreensão devemos entender como funciona o gerenciamento de memória da JVM (em outra post irei detalhar melhor). Basicamente a JVM dividi a memória em dois "setores": memória HEAP e PERM, onde o primeiro recebe as instâncias dos objetos e a segunda carrega as classes uma unica vez que serão utilizadas na JVM.
 
Na verdade, pode existir mais de uma cópia da mesma classe na JVM, sendo que cada uma deve estar em um classloader separado, mas vamos deixar esse assunto para uma outra hora.

Na instalação do JDK é disponibilizado o aplicativo jconsole que lhe permite ver como funciona o gerenciamento de memória.
 

Pois bem,  quando você marcar um método/atributo com o static este recurso só estará disponível na classe que se encontra na memória PERM, assim quando é instanciado um objeto a partir desta classe tudo que é estático não vai para HEAP e é por isso que falamos que pertence a classe!

Como cada objeto sabe quem é a sua classe, ela consegue acessar todos os recursos estáticos, porém o inverso não possível, pois isso resultaria em grandes problemas. Você consegue entender?!

Exemplo quando usamos um atributo estático em outra classe o valor dela é igual o valor da classe de origem.

Bem, apesar de pequeno este post, espero que seja suficiente para entender melhor o operador static. Até breve!

Para entender melhor sobre assunto acesso o artigo do fórum GUJ -> clique aqui

Fonte(neylorsousa)

0 comentários to “(Java Jr - VIII) Atributos e Métodos estáticos ”

Postar um comentário

Insira seu comentário

 

Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger