Macchina virtuale Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Osmosis (discussione | contributi)
mNessun oggetto della modifica
Riga 1:
{{vedi anche|Architettura della macchina virtuale Java}}
La '''macchina virtuale Java''', detta anche Java Virtual Machine o JVM, è la [[macchina virtuale]] che esegue i programmi in linguaggio [[bytecode]], ovvero i prodotti della [[compilatore|compilazione]] dei [[codice sorgente|sorgenti]] Java. La JVM è formalmente una [[specifica]], mantenuta da [[Sun Microsystems]]. Qualsiasi sistema che si comporti in modo coerente con tale specifica sarà quindi da considerarsi una particolare [[implementazione]] della JVM. Esistono implementazioni [[software]] per praticamente tutti i [[sistema operativo|sistemi operativi]] moderni, sia gratuite che commerciali. Inoltre, esistono implementazioni che operano in contesti [[hardware]]/software particolari, per esempio [[telefono cellulare|telefoni cellulari]], e persino implementazioni hardware .
Le specifiche della JVM vengono dettate e aggiornate dalla [http://java.sun.com/ Sun Microsystems] in quanto iniziatore e mantenitore del progetto, ma vengono spesso disattese dalla maggioranza delle implementazioni non-sun di JVM che sono in circolazione, soprattutto per quanto riguarda il [[framework]] che ogni JVM include . Di conseguenza, le diverse JVM non sono totalmente compatibili tra loro ed occorre fare attenzione nello scrivere i programmi, se si vuole che essi funzionino su ogni JVM . La cosa migliore da fare a tale scopo sarebbe non usare le ultime caratteristiche del linguaggio introdotte dalla SUN nelle JVM più recenti e usare delle [[Application programming interface|API]] "stabili" , che cioe' siano presenti nella JVM SUN da varie versioni.
A tale proposito è in atto una controversia tra la Sun e la Microsoft in quanto quest'ultima ha sviluppato una JVM per ambienti Microsoft, contravvenendo a quello che è lo spirito di Java e soprattutto il motivo del suo rapido sviluppo che consiste, appunto, nella scrittura di un codice unico in grado di comportarsi in maniera identica su tutte le macchine.
 
----
 
== Caratteristiche della JVM ==
Line 21 ⟶ 20:
#''la Client HotSpot'': che inizia subito con l'esecuzione ed è quella usata come standard dalla JVM Sun.
Per questi motivi si usa la Server HotSpot per programmi server o in generale per programmi che resteranno in esecuzione a lungo e per i quali il tempo di avvio non è importante. Un altro approccio possibile potrebbe essere compilare il programma Java in codice nativo anziché in bytecode, usando ad esempio il compilatore [[gcc|gcj]] della FSF, ma questo ridurrebbe i benefici sul fronte peculiare della portabilità.
 
----
 
== JVM Open Source==
Va inoltre detto che esistono dei progetti [[Open Source]] che non seguono le specifiche della Sun e che presentano delle caratteristiche veramente interessanti. Infatti, oltre a rendere disponibili i sorgenti (nel pieno rispetto della filosofia open source) presentano una ridottissima occupazione di memoria (intorno ai 50 KB).
La prima ad essere sperimentata è stata la '''JVM "Waba"''', in grado di interpretare direttamente i bytecodes prodotti da un qualunque compilatore Java e quindi in grado di eseguire la stessa applicazione sia sul personal computer che sul [[palmare]].
 
{{Informatica}}
 
[[Categoria:Sun]]
[[Categoria:Informatica]]
 
[[bs:Java Virtualna Mašina]]