Java-program använder datorns minne på olika sätt . Om Java programmerare har åtminstone en grundläggande förståelse för hur minnet hanteras inom språket , de har en mycket bättre chans att skapa effektiva , högpresterande applikationer . Som med de flesta aspekter av programmering , är det inte nödvändigt att förstå alla implementeringen av Java minne styrmodell , men gripa de två grundläggande typer av minne och deras inverkan på programmeringen är användbart . Typer och Memory
Java variabler datamodellen och komponenter kod på olika sätt . Beroende på typ och omfattning av en variabel , kan den lagras antingen i heap eller stack minne . Stack minne kan betraktas som kortfristiga , hög som långfristig. När du närmar dig ett utvecklingsprojekt i Java , kommer du att göra ständiga beslut om hur du modell dataposter , som kommer att avgöra i vilken typ av minne som de är lagrade . Att dessa beslut med en förståelse av konsekvenserna tillåter utvecklare att maximera programmets effektivitet .
Primitives
primitiva typer i Java omfattar grundläggande antal och typer karaktär som " int " för primitiva heltalsvärden och " röding " för primitiva tecken . När Java lagrar primitiva typer , består den information som lagras till stor del av de variabla värdena , så mängden minne tenderar att vara mindre än med objekttyper . Om en primitiv typ variabel existerar endast som en lokal variabel i ett program class -fil , kommer Java lagra den i stacken minne .
Objekt
objekttyper i Java omfattar såväl de olika typer som i själva språket och definierade typer av programmerare använder klassdeklarationer . När ett Java- program skapar ett objekt , allokerar JVM ( Java Virtual Machine ) en del av heap minne för det . Inom programmet fungerar variabelnamnet som tilldelats för en objekttyp som en hänvisning till denna plats i minnet . Utrymmet för ett objekt inom heap minne kan innehålla data i objektet , inklusive variabler av något slag , har vare sig primitiva eller objektet .
Ställbart sikte
Variabel omfattning en direkt inverkan på minneshantering inom ett Java -program . För att skapa effektiva applikationer , utvecklare försöka minimera den erforderliga utrymme för en viss variabel eller dataelement . Till exempel visar följande en villkorlig uttalande med en lokal variabel inuti :
int someNumber = 3 ;
om ( someNumber > 0 ) {
int doubleNumber = someNumber * 2 ;
System.out.println ( doubleNumber ) ;
}
trivialt exempel utför en beräkning på en variabel , skriver resultatet ut . Den variabeln lagrar beräkningsresultatet deklareras inuti villkorligt , så är inte tillgänglig när som helst efter den villkorliga blocket . I allmänhet ger variabler det minsta utrymme som krävs för dem att fungera korrekt hjälper program använda så lite minne som möjligt .
Garbage Collection
JVM Garbage Collector hanterar mängden minne som är tillgängligt för ett program . Om ett föremål eller andra typen inte längre används i ett program ( till exempel om det har fyllt sin funktion och inte längre behövs ) , bör minnet används det helst göras tillgängliga på nytt om det behövs . Sophämtare kan omfördela heap minne om ett program körs lite på minne resurser . Om ett objekt variabel är ur räckvidd , kan dess minne vara en kandidat för sophämtning .