[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.
[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.
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!
[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! [/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!
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