Modificador static nos metodos, codigo mais rapido?

[quote=Mark_Ameba]Gostei.

Mas vou procurar para ver como a JVM faz mais internamente.[/quote]

Se encontrar, por favor escreva um livro sobre isso, porque o que menos tem é literatura específica do funcionamento da JVM.

Agora eu desesti de procurar. :stuck_out_tongue:

O que você pode procurar é o wiki do pessoal do OpenJDK; lá há alguma coisa.

http://wikis.sun.com/display/HotSpotInternals/PerformanceTechniques

Eu procurei no OpenJDK sobre Reflection e não tinha achado… mas valeu vou olhar o link.

Nossa esse post foi demais, o que gerou de debate e polemica…

Isso prova como algo simples pode se tornar complexo, devido a amplitude de recursos de uma boa linguagem de prograçao.

Abraços a todos!
:slight_smile:

[quote=joaosiqueira]Nossa esse post foi demais, o que gerou de debate e polemica…

Isso prova como algo simples pode se tornar complexo, devido a amplitude de recursos de uma boa linguagem de prograçao.

Abraços a todos!
:slight_smile: [/quote]
Para quem quiser melhor informações sobre Reflection
:arrow: [b]Tutorial Java Reflection[/b]

Valeu Marcio Duran,

Esse artigo de Reflections me ajudou bastante.

Obrigado!
:smiley:

Uma parte ali que eu nao conhecia era sobre as Proxys com Reflection… eu sabia sobre elas mas não sabia que fazia parte.

Marcio Duran,

So trazendo o mundo hacking no GUJ… eheheh

muito bom!!! :twisted:

Veja bem, é uma questão de lógica. Uma classe é uma estrutura em que existem metodos e variáveis.

Mas quando um metodo é definido não importa se ele é estático ou dinamico a estrutura dele será a mesma, ou seja, o trecho de código que o método estático ou dinâmico (no compilador) sao quase iguais (semanticamente falando) o que mudam são as posições de memória pois metodos estáticos nao podem referenciar variaveis de uma instância.

O mesmo não é verdade para uma váriavel estática, que está sim economiza espaço de memória.

Veja o código:


public class Pessoa{

	public int idadeLimite1 = 18;
	public static int idadeLimite2 = 18;

	public printIdade(){

		System.out.println(this.idadeLimite1);
		System.out.println(Pessoa.idadeLimite2); 
	}
}

Em:

System.out.println(this.idadeLimite1); // cada instância de pessoa terá uma posição para armazenar o valor

No entanto em:

System.out.println(Pessoa.idadeLimite2); // na memória só existirá uma posição para armazenar o valor dessa variável