A Máquina Virtual Java representa a base da linguagem de programação Java. O software actua como um tampão entre a execução de código Java e o sistema de computador subjacente . Isso permite que o código Java para rodar em qualquer sistema como está , aumentando a portabilidade. Uma vez que a JVM existe como um ambiente no qual executar o código, ele contém a sua própria configuração de memória , incluindo memória superficial e espaço de pilha . O espaço de pilha torna-se uma parte significativa da memória JVM , que contém os dados de tempo de execução de aplicações críticas. Objetos e Memória
Java representa uma linguagem puramente orientada a objetos de programação , o que significa que Java contém os benefícios da programação orientada a objetos, incluindo herança e polimorfismo . Para incluir esses benefícios , a JVM deve ter um espaço para guardar objetos instanciado. Esses objetos não existem na memória imediata de uma uma thread em execução de código Java. Em vez disso, o código Java declara "referências" a objetos que armazenam um local , memória profunda de longo prazo.
A Heap ea Stack
A pilha eo pilha representar a diferença entre a memória de longo e curto prazo em um programa em execução , independentemente da linguagem orientada a objetos . A pilha refere-se às variáveis imediatos e chamadas de método dentro de um programa em execução . Isto inclui variáveis escalares , como bytes e inteiros , bem como as funções chamadas . A pilha , por outro lado , representa o local onde são armazenados objectos criados pelo programa . Os objetos são alocados dinamicamente na pilha e ficar lá até que não é mais necessário pelo programa.
JVM Memória
Designers desenvolveu o sistema de memória da JVM para imitar o sistema orientada a objetos de outras linguagens como C + +. Cada thread em execução de código Java na JVM tem sua própria pilha , o que representa o seu local de variáveis escalares e chamadas de função . Além disso, a JVM tem o seu próprio espaço de pilha . Quando um programa cria uma referência a um objeto, esse objeto atrai memória do espaço de pilha coletiva.
A Heap em JVM Memória
O espaço de pilha é apenas parte da a memória JVM total juntamente com espaço de pilha e outras alocações de memória para funções cruciais e código JVM. No entanto, o espaço de pilha representa uma parte crucial da JVM em que é o veículo pelo qual os objetos são criados . Além disso, a JVM tem um programa de coleta de lixo embutido para apagar objetos não utilizados a partir do heap. Em linguagens orientadas a objetos antigos , objetos tinham de ser excluídos manualmente , ou corria o risco usando o espaço de pilha no que foi chamado de " vazamento de memória. " Coletor de lixo da JVM , no entanto, monitora a pilha e exclui objetos antigos .