Java-programmer bruger computerens hukommelse på forskellige måder. Hvis Java-programmører har mindst en grundlæggende forståelse af, hvordan hukommelsen er forvaltes inden for sprog , de har en langt bedre chance for at skabe effektive og højtydende applikationer. Som med de fleste aspekter af programmering, er det ikke nødvendigt at forstå alle de nærmere oplysninger om gennemførelsen af Java hukommelse ledelse model, men at tage fat i to grundlæggende typer af hukommelse og deres indvirkning på programmeringen er nyttigt. Typer og hukommelse
Java variabler modeldata og kode -komponenter på forskellige måder. Afhængig af typen og omfanget af en variabel , kan den opbevares enten i bunke eller stak hukommelse. Stakhukommelse kan opfattes som kortsigtet , dynge som lang sigt . Når du nærmer dig et udviklingsprojekt i Java , bliver du nødt til at foretage løbende beslutninger om, hvordan du model dataposter , som vil afgøre , hvor typer hukommelse , de er gemt. Realiseringen af disse beslutninger med en forståelse af konsekvenserne giver udviklere mulighed for at maksimere programmets effektivitet.
Primitiver
Primitive typer i Java omfatte grundlæggende antal og karakter typer som " int " for primitive heltalsværdier og " char " for primitive tegn. Når Java gemmer primitive typer , de lagrede oplysninger består hovedsagelig af de variable værdier , så mængden af hukommelse tendens til at være mindre end med objekttyper . Hvis en primitiv type, variabel eksisterer kun som en lokal variabel i et program class fil, vil Java gemme det i stakken hukommelse.
Objects
Objekttyper i Java omfatter både de typer , der leveres i selve sproget og definerede typer af programmører anvender klasse erklæringer. Når et Java program opretter et objekt , JVM (Java Virtual Machine) tildeler en del af bunke hukommelse for det. Inden for programmet fungerer variabelnavn tildelt et objekt type som en henvisning til denne placering i hukommelsen . Den plads for et objekt inden bunke hukommelse kan indeholde data i objektet , herunder variabler af enhver type , uanset om primitive eller objekt.
Variabel rækkevidde
Variabel omfang har en direkte indvirkning på hukommelse ledelse inden for et Java- program. At skabe effektive applikationer , udviklere søger at minimere den nødvendige muligheder for en given variabel eller data element. For eksempel viser det følgende en betinget erklæring med en lokal variabel inde i det : Hej
int someNumber = 3 ;
if ( someNumber > 0) {
int doubleNumber = someNumber * 2.
System.out.println ( doubleNumber )
}
Denne trivielt eksempel udfører en beregning på en variabel , skriver resultatet ud . Den variable opbevaring beregningsresultatet er erklæret inde i betingede , så er ikke tilgængelige på ethvert tidspunkt efter den betingede blok. I almindelighed korrekt give variable den minimale mængde af muligheder der kræves for dem at fungere hjælper programmer bruger så lidt hukommelse som muligt.
Garbage Collection
JVM Garbage Collector administrerer den mængde hukommelse , der er tilgængelig for et program . Hvis et objekt eller en anden type er ikke længere bliver brugt i et program (for eksempel, hvis den har opfyldt sin rolle , og ikke længere er nødvendig ) , bør hukommelsen det plejede ideelt stilles til rådighed igen, hvis det er nødvendigt. Den Garbage Collector er i stand til at omfordele bunke hukommelse, hvis et program kører med lav hukommelse ressourcer . Hvis et objekt variabel er uden for rækkevidde , kan dens hukommelse være en kandidat til garbage collection .