logo

Wordt Java geïnterpreteerd of gecompileerd?

De programmeertaal Java werd begin jaren negentig ontwikkeld door Sun Microsystem. Java is een objectgeoriënteerde, eenvoudige, efficiënte, robuuste en algemene programmeertaal. Het wordt voornamelijk gebruikt voor webgebaseerde bedrijfsapplicaties. Het was oorspronkelijk ontworpen voor embedded netwerktoepassingen die op verschillende platforms draaien.

Wanneer we beginnen met leren Java-programmering , rijst er één vraag: of Java wordt geïnterpreteerd of gecompileerd, of beide. Deze vraag kan ook door de geïnterviewde worden gesteld in uw Java-gerelateerde interviews. Het antwoord op deze vraag luidt dus Java wordt zowel geïnterpreteerd als gecompileerd . Het is echter niet duidelijk of Java wordt gecompileerd of geïnterpreteerd. Het genereert geen machinecode na het compileren van een bronbestand, noch interpreteert het bronbestand om code-instructies regel voor regel uit te voeren. Om deze vraag te beantwoorden, moeten we begrijpen hoe Java een platformonafhankelijke taal is? Dat betekent dat we Java-code op een platform kunnen schrijven en op andere platforms kunnen draaien, zoals een hardwarebesturingssysteem, zonder enige wijzigingen aan te brengen. Begrijpen hoe Java platformonafhankelijkheid bereikt, zal dus een volledig antwoord op deze vraag opleveren.

Java is volledig draagbaar; dezelfde Java-code werkt identiek op verschillende platforms, ongeacht hardwarecompatibiliteit of besturingssystemen.

De Java-broncode wordt eerst gecompileerd tot een binaire bytecode met behulp van de Java-compiler, waarna deze bytecode wordt uitgevoerd op de JVM (Java Virtual Machine), een op software gebaseerde tolk. Java wordt dus beschouwd als zowel geïnterpreteerd als gecompileerd.

De gecompileerde bytecode maakt dit mogelijk JVM klein, efficiënt en snel presterend te zijn. Bovendien biedt deze bytecode portabiliteit naar de Java-programmeertaal. Het maakt het mogelijk deze code uit te voeren op elke JVM die correct op een machine is geïmplementeerd, ongeacht de hardware- en softwarecomponenten en configuraties van de machine. Bijna alle webbrowsers bevatten JVM om de Java-appletcode uit te voeren.

Laten we het begrijpen met een eenvoudig Java-programma:

Eenvoudig Java-programma en het werkt

Maak een eenvoudig Java-bestand met uw favoriete teksteditor:

Wordt Java geïnterpreteerd of gecompileerd?

Zet de onderstaande code erin:

 class Basic{ public static void main(String args[]){ System.out.println('Hello JavaTpoint'); } } 

En sla het bestand op.

Controleer nu onze map waar we het .java-bestand hebben opgeslagen.

Wordt Java geïnterpreteerd of gecompileerd?

We kunnen een Java-applicatie uitvoeren door twee stappen te volgen.

  1. Compileer het Java-programma
  2. Voer de applicatie uit

Compileer de Java-applicatie:

Om het Java-programma te compileren, voert u de onderstaande opdracht uit:

 javac Basic.java 

Met de bovenstaande opdracht wordt het Java-programma gecompileerd en wordt een .class-bestand van het Java-programma gemaakt dat de bytecode van de Java-toepassing bevat.

Wordt Java geïnterpreteerd of gecompileerd?

Uit de bovenstaande uitvoer kunnen we zien dat na het compileren van het Java-programma een .class-bestand wordt gemaakt. Dit bestand bevat de bytecode van het Java-programma. We kunnen deze bytecode uitvoeren op elk van de machines die JVM implementeren.

Voer de applicatie uit:

Om deze applicatie uit te voeren, voert u de onderstaande opdracht uit:

 java Basic 

Het bovenstaande commando voert de bytecode uit en voert de functionaliteit van het programma uit:

Wordt Java geïnterpreteerd of gecompileerd?

Uit de bovenstaande uitvoer hebben we een eenvoudige verklaring afgedrukt.

Stapsgewijze uitvoering van het Java-programma:

Wordt Java geïnterpreteerd of gecompileerd?
  1. Schrijf Java-code en sla het bestand op met .Java
  2. Nu zal dit bestand worden gecompileerd met behulp van de Java-compiler, namelijk javac.
  3. De Java Compiler compileert het Java-bestand en maakt een .class-bestand met bytecode (wat eigenlijk geen machinecode is, in tegenstelling tot de C-compiler)
  4. Deze gegenereerde bytecode is een niet-uitvoerbare code en heeft nu een tolk nodig om deze in machinecode om te zetten. Hier regelt de JVM het.
  5. Nu zal JVM deze bytecode uitvoeren om Java-bytecode op een machine uit te voeren.
  6. Nu zal ons programma de functionaliteit uitvoeren en de gewenste uitvoer opleveren.

Conclusie:

Java wordt beschouwd als zowel geïnterpreteerd als gecompileerd. Het maakt gebruik van een Java-compiler (javac) en JVM (wat eigenlijk een op software gebaseerde tolk is) om een ​​Java-toepassing volledig op een machine uit te voeren.