alocação estática em java - pilha, pilha e geração permanente

Ultimamente, tenho lido muito sobre esquemas de alocação de memória em java, e houve muitas dúvidas quanto tenho lido de várias fontes. Reuni meus conceitos e solicitei que analisasse todos os pontos e os comentasse. Eu soube que a alocação de memória é específica da JVM, então devo dizer de antemão que minha pergunta é específica da Sun.

As classes (carregadas pelos carregadores de classe) vão para uma área especial no heap: Permanent GenerationTodas as informações relacionadas a uma classe como nome da classe, matrizes de objetos associadas à classe, objetos internos usados pela JVM (como java / lang / Object) e informações de otimização vão para a área Geração permanente.Todas as variáveis de membro estático são mantidas na área Geração Permanente novamente.Os objetos ficam em uma pilha diferente: geração jovemHá apenas uma cópia de cada método por classe, seja o método estático ou não estático. Essa cópia é colocada na área Geração permanente. Para métodos não estáticos, todos os parâmetros e variáveis locais vão para a pilha - e sempre que há uma invocação concreta desse método, obtemos um novo quadro de pilha associado a ele. Não sei onde estão armazenadas as variáveis locais de um método estático. Eles estão no monte da Geração Permanente? Ou apenas sua referência é armazenada na área Geração Permanente, e a cópia real está em outro lugar (Onde?)Também não tenho certeza de onde é armazenado o tipo de retorno de um método.Se os objetos (na geração jovem) precisarem usar um membro estático (na geração permanente), eles receberão uma referência ao membro estático && terão espaço de memória suficiente para armazenar o tipo de retorno do método, etc.

Obrigado por passar por isso!

questionAnswers(1)

yourAnswerToTheQuestion