Programação  
 
Conhecimento computador >> Programação >> Programação em Java >> 
Heap Vs . Stack em Java
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 .

Anterior :

Próximo : No
  Os artigos relacionados
·O que é uma declaração em Java 
·Function Display em Java 
·Java não consegue encontrar o símbolo com Método Out…
·Como detectar uma circularidade em uma lista encadeada …
·Como Chegar Fundos de botão em Android 
·Como desenhar um círculo no NetBeans 
·Como extrair um APK para um Android 
·Como criar um aplicativo Android no Eclipse 
·Como escrever uma classe e criar uma instância em Java…
·Como calcular o percentual para arquivos de texto em Ja…
  Artigos em destaque
·Como manipular Cordas em MFC 
·Como ler uma linha usando CPP 
·Como aprender Turbo C 
·Como remover registros nulos de uma matriz em Java 
·Como fazer um arquivo LUA por Coordenadas 
·Como atualizar um DataRow em C # 
·Como compilar em TextPad 5 
·Como Normalizar uma Matriz em MatLab 
·Como desenhar uma esfera em Java 
·Mega projectos em Java 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados