Java Virtual Machine (JVM) er et miljø, der udfører Java-programmer. Java-programmer er kompileret til et mellemsprog kaldet bytecode, som er hvad JVM'en udfører. Ethvert program, der er kompileret til bytekode, kan udføres på enhver platform, der har en JVM installeret på den. Dette gør Java-software kompatibel med mange forskellige computerplatforme. JVM har et par bemærkelsesværdige fordele og ulemper, som enhver udvikler bør veje nøje, før de investerer i Java-udvikling.
Platformuafhængighed
Java-bytekode kan skrives én gang og derefter køres på flere platforme. Java-bytekode behøver ikke at blive porteret til et specifikt hardwaremiljø, fordi det kører i Java Virtual Machine. Enhver applikation, der er kompileret i Java bytecode, kan køres på enhver computerplatform, der har en Java Virtual Machine.
Dagens video
Sikkerhed
Java blev skrevet med sikkerhed i tankerne. Java Virtual Machine har indbyggede sikkerhedsfunktioner, der gør det muligt for programmører at skrive meget sikre Java-programmer. Det forhindrer også ondsindet software i at kompromittere operativsystemet (OS), fordi det forhindrer Java-applikationer i at interagere med operativsystemets ressourcer.
Ydeevne
Java-programmer, der kører på en Java Virtual Machine, har en tendens til at udføre langsommere end tilsvarende programmer skrevet i C++. Bytekodens systemneutralitet virker som en ulempe, når det gælder ydeevne. Dette skyldes, at kodeoptimering i høj grad er afhængig af systemspecifikke funktioner. Da Java bytecode er systemneutral, kan den ikke optimeres til et specifikt hardwaresæt.
Rigtigheden
Et program, der fungerer som forventet, siges at være korrekt. Da et Java-program er afhængigt af Java Virtual Machine for at udføre det, skal JVM være fri for fejl, for at programmet kan fungere korrekt. Denne afhængighed af Java Virtual Machine introducerer et muligt fejlpunkt for programmet. Heldigvis er Java Virtual Machine-softwaren produceret med meget høje standarder, og derfor er det ikke sandsynligt, at den sendes med nogen fejl. Uanset hvad er en fejl i Java Virtual Machine en mulighed, der bør overvejes.