programas Java usar a memória do computador de maneiras diferentes. Se os programadores Java tem pelo menos um conhecimento básico de como a memória é gerenciada dentro da linguagem , eles têm uma chance muito maior de criar , aplicações de alto desempenho eficientes. Tal como acontece com a maioria dos aspectos de programação , não é necessário entender todos os detalhes de implementação do modelo de gestão de memória Java, mas segurando os dois tipos básicos de memória e seu impacto sobre a programação é útil . Tipos e Memória
variáveis Java de dados modelo e componentes de código de várias maneiras. Dependendo do tipo e extensão de uma variável , que podem ser armazenadas em monte ou pilha memória . Memória pilha pode ser pensada como a curto prazo , como de longo prazo montão . Quando você se aproxima de um projeto de desenvolvimento em Java, você vai ter que tomar decisões contínuas sobre como você modela os itens de dados , que irá determinar em que tipos de memória são armazenados . Fazendo essas decisões com a compreensão das implicações permite aos desenvolvedores maximizar a eficiência do programa.
Primitives
tipos primitivos em Java incluem número básica e tipos de caracteres , como " int" para valores inteiros primitivos e " char" para caracteres primitivos. Quando Java lojas tipos primitivos , as informações armazenadas consiste em grande parte dos valores de variáveis , de modo que a quantidade de uso de memória tende a ser menor do que com os tipos de objetos . Se uma variável do tipo primitivo existe apenas como uma variável local dentro de um arquivo de classe de aplicativos, Java irá armazená-lo na memória stack.
Objetos
tipos de objeto em Java incluem ambos os tipos previstos dentro do próprio e tipos definidos por programadores que utilizam declarações de classe linguagem. Quando um programa Java cria um objeto , a JVM (Java Virtual Machine) aloca uma parte da memória heap para ele. Dentro do programa, o nome da variável atribuída a um tipo de objeto funciona como uma referência a este local na memória. O espaço para um objeto em memória heap pode conter os dados dentro do objeto, incluindo variáveis de qualquer tipo , seja
Escopo de variável primitiva ou objeto.
Escopo variável tem um impacto direto sobre o gerenciamento de memória dentro de um programa Java. Para criar aplicativos eficientes , os desenvolvedores procuram minimizar o alcance necessário para qualquer variável ou dados item. Por exemplo, a seguir demonstra uma instrução condicional com uma variável local dentro dele:
int someNumber = 3;
if ( someNumber > 0) {
int doubleNumber = someNumber * 2;
System.out.println ( doubleNumber );
}
Este exemplo trivial executa um cálculo em uma variável , escrevendo o resultado fora. A variável que armazena o resultado do cálculo for declarado dentro da condicional , por isso não está acessível em qualquer ponto após o bloco condicional. Em geral , dando variáveis a quantidade mínima de espaço necessário para que eles funcionem corretamente ajuda a programas usar o mínimo de memória possível .
Coleta de Lixo
O Garbage Collector JVM consegue a quantidade de memória que está disponível para um programa . Se um objeto ou outro tipo já está sendo usado dentro de um aplicativo (por exemplo, se ele tem realizado sua função e não é mais necessário ) , a memória que costumava deve idealmente ser disponibilizados novamente , se necessário. O coletor de lixo é capaz de realocar memória heap se um aplicativo está funcionando baixo em recursos de memória. Se uma variável de objeto está fora do escopo , sua memória pode ser um candidato para coleta de lixo .