Vad är JVM?

JVM är en specifikation där funktionen av Java Virtual Machine beskrivs specifikt. Men algoritmen är en oberoende identitet som endast väljs av implementeringsleverantören som Oracle och andra kända företag. Som sådan är JVM en implementering som kallas Java Runtime Environment (JRE).

Definition

Det definieras som en beskrivning för ett program som erbjuder runtime-miljö för kod och dess betydande utförande. Med andra ord, det är så vi kör Java-programmen - konfigurerar JVM: s inställningar och förlitar oss på att hantera programresurser under genomförandet.

Förståelse

Java är känt som plattformsoberoende på grund av Java Virtual Machine. När en inlämning görs till olika datorer med olika operativsystem med JVM, tolkas bytekoden till maskinnivåspråk av JVM. För att vara exakt skrivs JVM-program på C Programming Language, medan JVM är oberoende av operativsystemet. Det är en nyckelkomponent i Java-arkitekturen.

Bortsett från allt detta är det ansvaret för att tilldela det viktiga minne som krävs av ett Java-program. Det är också ansvarigt för att förbjuda minnesutrymmet.

Vad den gör?

De avgörande åtgärder som JVM utför är följande:

  • Laddar kod
  • Kodverifiering
  • Kodutförande
  • Tillhandahållande av körtid i miljön

Bortsett från allt detta rullar det ut klassificeringar för klassfilformat, minnesområde, skräppassad hög, registeruppsättning, dödlig felrapportering etc.

JVM Arkitektur

Låt oss få några viktiga insikter om den interna arkitekturen i JVM som består av:

1. Klasslastare

Det är ett delsystem av JVM som används för att ladda klassfiler. När java-programmet körs laddas det först av klasslastaren. De tre klasslastare som Java innehåller är följande:

a) Bootstrap ClassLoader

Det är superklassen för Extension klasslastare. Det hjälper till att ladda rt.jar-filerna som innehåller alla klassfiler.

b) Extension ClassLoader

Det är föräldrarnas klassläsare till Systemklasslaster och barnklassklassare för Bootstrap. Burkfilerna i katalogen $ JAVA_HOME / jre / lib / ext kan extraheras genom Extension ClassLoader.

C) System / Application ClassLoader

Det är barnet till Extension klasslastare också känd som Application klassloader. Klassfilerna från klassvägen kan extraheras genom den. Classpath, som är inställd på den aktuella katalogen, kan som standard ändras med omkopplaren '-cp' eller '-classpath'.

2.Klass (metod) Area

Förklassstrukturerna som fält- och metodata, runtime konstant pool och koden för metoder lagras i Class (Method) Area. Det är ett minne som skapas vid JVM-start och delas mellan alla trådar som Heap.

3. Högen

Objekten tilldelas genom detta användbara dataområde för runtime. Det är en minnesplats som lagrar objekt tillsammans med dess instansvariabler. Närhelst ett objekt skapas i Java, går det in i högen - minnets område.

4. Stapla

Tillsammans med lagring av ramar innehåller Java Stack variabler och delresultat. Det spelar också en viktig roll i metod, kallelse och återvändande. Varje individuell tråd består av sin privata JVM-stack, skapad samtidigt som tråd. När en metod eskaleras genereras en ny ram och krossas när metodinkallationen blir klar.

5. Programräknare (PC) Register

PC-registret innehåller JVM-instruktionsadressen vid dess genomförande. Genom att hålla reda på instruktioner har det värde för varje instruktion som är odefinierad för de ursprungliga metoderna.

6. Native Method Stack

De ursprungliga procedurerna som används i applikationerna är en del av Native Method Stack. Dessa metoder är skrivna på andra språk än Java. I samband med varje tråd kan JVM-implementationer inte lita på konventionella staplar och kan inte ladda inbyggda metoder. För att vara exakt, det liknar stack men används för ursprungliga metoder.

7. Motor

Eftersom den viktigaste aspekten av JVM kommunicerar det med sina olika minnesområden. Detta inkluderar:

a. Skräp samlare

Detta spelar en viktig roll i JVM: s dynamiska minneshanteringssystem. Det minne som upptas och som inte längre hänvisas till av några av de tillgängliga Java-objekten släpps via Garbage Collector.

b. Tolk

Den kör instruktionerna efter att ha läst bytekodströmmen.

c. Just-In-Time (JIT) kompilator

JIT-kompilatorn möjliggör prestandaförbättring och kompilerar delar av bytkoden med liknande funktioner samtidigt. Det hjälper till att minska den tid som krävs för sammanställningsprocessen.

8. Java Native Interface (JNI)

De applikationer som skriptas på andra språk, dvs C, C ++, Assembly, etc. kan anslutas till, via ett gränssnitt som levereras av JNI. JNI-ramverket används av Java för att interagera med OS-bibliotek eller för att skicka utdata till konsolen.

Vad använder JVM?

JVM har två huvudfunktioner: att tillåta Java-program att köra på alla enheter eller operativsystem (känd som "Skriv en gång, kör var som helst" -principen), och att hantera och optimera programminnet.

Fördelar och nackdelar

Java-program körs lämpligt genom JVM. Bytecode - ett mellanspråk används för att kompilera Java-program och körs sedan via JVM. Varje enskilt program som kompileras till bytecode kan utföras av vilken plattform som drivs av JVM. Detta möjliggör Java-programvara mer effektiva och kompatibla enligt de olika datorplattformarna. JVM har några anmärkningsvärda fördelar och nackdelar som alla utvecklare bör väga noga innan de investerar i Java-utveckling.

1. Säkerhet

Genom JVM: s säkerhetsfunktioner kan programmerarna effektivt skriva avancerade Java-program. Det ger operativsystemets resurser att identifiera skadlig programvara och hjälper också till att förebygga detta.

2. Prestanda

Java-program som körs på en JVM kommer sannolikt att erbjuda långsammare körning jämfört med programmen som är skrivna i C ++. Detta beror på kodoptimeringen som alltför mycket förlitar sig på olika systemspecifika funktioner. Java-bytekoden kan inte heller optimeras för en specifik hårdvara, eftersom den är systemneutral.

3. Korrektitet

Rätt är programmet som fungerar effektivt och uppfyller användarens förväntningar till fullo. JVM: s inbyggda funktioner gör det möjligt att fungera korrekt och felfri.

Varför ska vi använda JVM?

Trots att Java har syntaktisk kod kan JVM köras på olika språkprogram. Några av orsakerna till att det används så mycket och varför man använder det på olika plattformar listas nedan:

Det använder heapminne: Heapminne är en kärnkomponent som används för dynamisk minnesallokering för att definiera klasser och objektinitialisering och eftersom JVM stöder heapminne har det bred acceptans.

Ger säkerhet för fjärrkodslokalisering: JVM-ramverket är utformat på ett sådant sätt att fjärrapplikationen enkelt körs. Denna teori följs för att köra Java-appletten.

Slutsats

Det faktum att JVM fungerar på flera operativsystem ger det en tumme upp i teknologidomänen. Genom att använda den på Windows, Linux och andra operativsystem är det möjligt att transformera bytkod oavsett maskinvara och operativsystem som ska köras. Dessutom är dess förmåga att erbjuda värddatorn säkerhet genom att säkra deras data och program en annan anledning till att JVM har varit så framgångsrikt tidigare och fortsätter att vara dominerande i framtiden.

Rekommenderade artiklar

Detta har varit en guide till What is a JVM (Java Virtual Machine). Här diskuterade vi de grundläggande koncepten med listan över arkitektur och användning av JVM. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Bästa Javascript-ramverk
  2. Är Python objektorienterad
  3. Applikationer av C ++ I Real World
  4. Karriär i ASP.NET
  5. JRE vs JVM | Topp 8 skillnader med (Infographics)

Kategori: