Java (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
Nessun oggetto della modifica
Riga 1:
Il linguaggio '''Java''' &egrave; un [[linguaggio di programmazione]] orientato agli oggetti, creato da [[James Gosling]] e altri ingegneri di [[Sun Microsystems]]. Fu annunciato ufficialmente il [[23 maggio]] [[1995]] a <nowiki>SunWorld</nowiki>. La piattaforma di programmazione Java &egrave; fondata sul linguaggio stesso, sulla Java virtual machine (JVM) e sulle [[API]]. Java &egrave; un marchio registrato di Sun Microsystems.
 
=== Panoramica ===
Riga 13:
=== Indipendenza dalla piattaforma ===
La seconda caratteristica, l'indipendenza dalla piattaforma, significa che l'esecuzione di programmi scritti in Java deve avere un comportamento simile su hardware diverso. Si dovrebbe essere in grado di scrivere il programma una volta e farlo eseguire dovunque. Questo &egrave; possibile con la compilazione del codice di Java in istruzioni dette bytecode -- istruzioni semplificate conformi ad uno standard. Esso viene eseguito da una virtual machine, cioè da un interprete: Java è quindi, in linea di massima, un linguaggio interpretato.
Inoltre, vengono fornite librerie standardizzate per permettere l'accesso alle caratteristiche della macchina (come grafica e networking) in modo unificato. Il linguaggio Java include anche il supporto per i programmi con [[multithreading|multithread]], necessario per molte applicazioni che usano la rete.
 
Le prime implementazioni del linguaggio usavano una virtual machine interpretata per ottenere la massima portabilit&agrave;, ma questa è una soluzione poco efficiente e i programmi interpretati sono molto lenti: per questo, tutte le implementazioni recenti di macchine virtuali Java hanno incorporato un JIT compiler, cioè un compilatore interno che al momento del lancio traduce al volo il programma bytecode Java in un normale programma nel linguaggio macchina del computer ospite; inoltre questa ricompilazione è ''dinamica'', cioè la virtual machine analizza costantemente il modello di esecuzione del codice (''profiling'') e ottimizza ulteriormente le parti più frequentemente eseguite mentre il programma sta girando. Questi accorgimenti, a prezzo di una piccola attesa in fase di lancio del programma, permette di avere delle applicazioni Java decisamente più veloci e leggere. Tuttavia, anche così Java resta un linguaggio meno efficiente dei linguaggi compilati come il C++, scontando il fatto di possedere degli strati di astrazione in più e di implementare una serie di automatismi, come la garbage collection, che se da un lato fanno risparmiare tempo ed errori in fase di sviluppo dei programmi dall'altro consumano memoria e tempo di CPU in fase di esecuzione del programma finito.