Macchina virtuale Java: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Robot: Removing selflinks |
m WPCleaner v1.31 - Disambigua corretto un collegamento - Scala |
||
Riga 6:
Codice Java : compilazione : bytecode : VM -> esecuzione reale del programma
Il bytecode è generalmente prodotto dalla compilazione di [[codice sorgente|codici sorgenti]] (o [[File sorgente|file sorgenti]]) scritti in linguaggio [[Java (linguaggio di programmazione)|Java]], anche se è possibile produrre bytecode partendo da altri linguaggi come [[Scala (linguaggio di programmazione)|Scala]], [[Clojure]] o [[Groovy]].
La JVM è definita da una [[specifica tecnica|specifica]], mantenuta da [[Sun Microsystems]]. Qualsiasi sistema che si comporti in modo coerente con tale specifica viene considerato come una particolare [[
La disponibilità di implementazioni della macchina virtuale Java per diversi ambienti operativi è la chiave della [[portabilità]] di Java, proclamata nello [[slogan]] ''write once, run everywhere'' ("scrivi una volta, esegui dappertutto"). La macchina virtuale realizza infatti un ambiente di esecuzione omogeneo, che nasconde al software Java (e quindi al programmatore) qualsiasi specificità del [[sistema operativo]] sottostante:
Riga 21:
==Implementazioni==
Oltre a gestire le specifiche della macchina virtuale Java, Sun Microsystems ne fornisce anche implementazioni gratuite e parzialmente open source
Numerose altre parti forniscono regolarmente implementazioni della macchina virtuale Java, in genere con l'intento di competere con l'implementazione Sun in quanto a prestazioni; in alcuni casi si tratta di implementazioni commerciali. Sono disponibili anche altre implementazioni ''[[open source]]''; fra le più note si può citare [[Waba]].
Riga 30:
Questi accorgimenti, a prezzo di una piccola attesa in fase di lancio del programma, permettono di avere delle applicazioni Java decisamente più veloci e leggere. Tuttavia, anche così Java resta un linguaggio meno efficiente dei linguaggi propriamente compilati come il [[C++]], scontando il fatto di possedere degli strati di astrazione in più, e di implementare una serie di automatismi, come il [[garbage collection|garbage collector]], che se da un lato fanno risparmiare tempo ed errori in fase di sviluppo dei programmi, dall'altro consumano [[memoria (informatica)|memoria]] e tempo di [[CPU]] in fase di esecuzione del programma finito.
== Note ==▼
<references />▼
==Voci correlate==
Riga 36 ⟶ 39:
* [[NanoVM]]
* [[IJVM]]
▲== Note ==
▲<references />
{{Portale|Informatica}}
|