Java (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Luki-Bot (discussione | contributi)
m Robot: Automated text replacement (-ò +ò)
Luki-Bot (discussione | contributi)
m Robot: Automated text replacement (-è +è)
Riga 1:
[[Image:Java-Logo.png|right]]
Il linguaggio '''Java''' &egrave;è un [[Programmazione orientata agli oggetti|linguaggio di programmazione orientato agli oggetti]], creato da [[James Gosling]] e altri ingegneri di [[Sun Microsystems]]. Il gruppo iniziò a lavorare nel [[1991]], il linguaggio inizialmente si chiamava Oak. Java 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 10:
 
== Orientamento agli Oggetti ==
La prima caratteristica, l'orientamento agli oggetti, si riferisce a un moderno metodo di programmazione e progettazione. L'idea principale della [[Programmazione orientata agli oggetti|programmazione ad oggetti]] consiste nel rendere il software la rappresentazione di entità reali o astratte ma ben definite (oggetti). Il suo obiettivo &egrave;è di rendere più facile la gestione di grandi progetti, migliorarne la qualità e la manutenibilità.
 
== 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 un linguaggio intermedio '''bytecode''', basato su istruzioni semplificate che ricalcano il linguaggio macchina. 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.
 
La portabilità &egrave;è un obiettivo tecnicamente difficile da raggiungere, e il successo di Java in questo ambito &egrave;è materia di alcune controversie. Sebbene sia in effetti possibile scrivere in Java programmi che si comportano in modo consistente attraverso molte piattaforme diverse, bisogna tenere presente che questi poi dipendono dalle virtual machine, che sono programmi a sè e che hanno inevitabilmente i loro [[Glossario_informatico#B|bug]], diversi dall'una all'altra: per questo è nata una parodia dello slogan di Sun "Scrivi una volta, esegui dovunque", che è diventato "Scrivi una volta, fai il [[Glossario_informatico#D|debug]] ovunque".
 
===Compilazione Just In Time===
Riga 27:
 
== Valutazione ==
Secondo molte persone, la tecnologia Java raggiunge ragionevolmente bene tutti i suoi obiettivi. Il linguaggio comunque non &egrave;è privo di incertezze. Java tende ad essere più ad alto livello di altri linguaggi simili (come il [[Linguaggio C Plus Plus|C++]]); questo comporta carenze in alcune caratteristiche come i tipi di dati specifici, puntatori alla memoria di basso livello e metodi di programmazione come il sovraccaricamento degli operatori.
 
Nonostante queste caratteristiche siano abusate frequentemente dai programmatori, esse sono anche strumenti potenti. Comunque, la tecnologia Java include Java Native Interface (JNI), un modo per chiamare codice nativo da codice Java. Con JNI &egrave;è quindi possibile ugualmente usare queste caratteristiche.
 
Alcuni programmatori lamentano anche la mancanza dell'ereditarietà multipla, un potente mezzo di molti linguaggi orientati agli oggetti, tra cui il C++. Il linguaggio Java separa l'ereditarietà del tipo dall'implementazione, permettendo l'ereditarietà multipla dei tipi attraverso le interfacce. Questo permette di ottenere la maggior parte dei benefici dell'ereditarietà multipla evitando molti dei suoi pericoli. Inoltre, attraverso l'uso di classi concrete, classi astratte e interfacce, un programmatore ha la possibilità di scegliere un grado nullo, parziale o completo di implementazione dell'oggetto che definisce, essendo assicurata la massima flessibilità nella progettazione.
 
Alcune persone pensano che per particolari progetti, la programmazione orientata agli oggetti renda il lavoro più difficile. Questa particolare lamentela non &egrave;è peculiare di Java, ma &egrave;è rivolta a tutti i linguaggi di questo tipo.
 
== Linguaggio ==
Riga 182:
* [[Java 5| JDK 1.5]] 2004, Solaris, Windows, Linux (Mac OS X è fermo alla 1.4.2)
 
Java fu inizialmente rilasciato come Java Development Kit 1.0 (JDK 1.0). Questo comprende '''Java Runtime''' (la virtual machine e le librerie di classi), e gli strumenti di sviluppo (es. il compilatore Java). Successivamente, Sun fornì un pacchetto che comprendeva solo Java runtime, chiamato Java RunTime Environment (JRE). Normalmente le persone si riferiscono ad una particolare versione di Java attraverso la versione del JDK (es. JDK 1.4) Le versioni JDK 1.2 e successive sono spesso chiamate Java 2. Per esempio, il nome ufficiale del JDK 1.4 &egrave;è Java(TM) 2 Platform, Standard Edition 1.4.
 
Il linguaggio &egrave;è rimasto stabile dal JDK 1.0; la libreria di classi che viene fornita con JDK &egrave;è stata progressivamente ampliata e modificata in alcune parti. Le estensioni e architetture legate al linguaggio Java comprendono:
*[[J2SE]] Java 2 Platform Standard Edition;
*[[J2EE]] Java 2 Platform Enterprise Edition;
Riga 217:
=== Come programmare in Java ===
 
La programmazione in Java &egrave;è una specializzazione della programmazione con linguaggi orientati agli oggetti.
 
Il linguaggio Java &egrave;è un linguaggio orientato agli oggetti con una sintassi simile al [[linguaggio C]] e al [[Linguaggio C Plus Plus|linguaggio C++]]. Allo sviluppatore già esperto di programmazione OO, alcuni punti dovrebbero essere evidenziati:
 
# Java supporta solo la singola ereditarietà di classi, ma permette l'ereditarietà multipla di interfacce.
Riga 225:
# Java viene eseguito attraverso una Virtual Machine
 
L'apprendimento del linguaggio non &egrave;è difficile, sebbene la padronanza completa delle librerie sia un processo lungo. La maggior parte degli utenti iniziano con le classi come String e ArrayList.
 
Un buon punto di partenza per imparare Java &egrave;è il [http://java.sun.com/docs/books/tutorial/ tutorial di Sun].
 
Un'altra pagina molto utile per i principianti e gli esperti &egrave;è la pagina della sintassi Java aggiornata all'ultima versione, sempre presso il sito Sun, che si trova [http://java.sun.com/j2se/1.4.1/docs/api/ qui]
 
Per sviluppare programmi in Java è sufficente un qualsiasi editor di testo. Comunque per aiutarci nella realizzazione dei nostri progetti estistono diversi IDE (Integrated Development Environment, ambiente di sviluppo integrato) che ci aiutano in tal senso alcuni dei quali a pagamento altri gratuiti.