Java källkod representerar en portabel och flexibel programmeringsspråk för affärer , webb och handhållen applikationsutveckling . Denna fördel av portabilitet kommer i stor del tack vare Java Virtual Machine . Dock representerar JVM också ett verktyg som programmerare måste hantera och underhålla för att få ut det mesta av Java-program . Speciellt minne konsumtion och heapallokering i JVM är detaljer som programmerare skulle göra klokt i att överväga . Java Virtual Machine
p Alla Java-kod körs på toppen av Java Virtual Machine . Java källkoden först kompileras till Java " bytekod , " vilket JVM körs genom att översätta bytekod till maskinläsbar kommandon . För att utföra denna process och tillåter Java att överföra det åtnjuter , ska JVM efterlikna ett datorsystem , komplett med minnes -och datastrukturer , så att källkoden kan lagra och hämta data och kommandon . En av dessa viktiga datastrukturer är högen .
JVM Heap
I datorprogrammering , använder koden minne via två olika interna strukturer inneboende i datorsystemet . Den " stack " innehåller all kod för närvarande verkställande funktioner och kommandon , samt eventuella lokala variabler som har deklarerats . Den " heap ", å andra sidan , innehåller långsiktiga data att ett program kan allokera för data såsom komplexa objekt . Eftersom Java representerar ett helt objektorienterat programmeringsspråk, är högen viktigt. Eftersom Java körs på den virtuella maskinen , måste den virtuella maskinen i sig innehåller en heap . Genom det kan programmerare deklarera och instansiera objekt och statiska variabler .
JVM minne och fysiskt minne
Dock är JVM en mjukvara , och som sådan måste finnas i det fysiska RAM på värddatorn . I huvudsak bosatt JVM heap i en virtuell maskin , som själv kör på minnet av en maskin och använder det maskinens datastrukturer ( såsom dess heap ) . Följaktligen är i högen av JVM begränsad av de fysiska begränsningarna i datorn JVM befinner sig på . Detta innefattar samtidigt kör programvara och systemverktyg . Därför har JVM heap den extra begränsning av vidhäftning inte bara fysiskt minne , men också konkurrerar med minnesanvändningen av andra program . Detta påverkar grundläggande heap attribut , som potentiell storlek . Addera JVM Heap Size
För att hantera heap storlek , kan programmeraren ändra de ursprungliga och högsta attribut stackstorlek av den verkställande instansen av JVM genom " - Xms " och " - xMX " flaggor , respektive . Hur stora högen kan växa beror på de begränsningar i operativsystemet och program som körs . En tumregel är att högen storlek bör vara tillräckligt stor för att undvika att byta data från högen till hårddisken . Och de minsta och största storlekarna aldrig vara större än tillgängligt minne på värdsystemet .