Macchina virtuale Java: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
Nessun 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 cioè 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.
|