Java/Introduzione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
frase
incollo e correggo testo interamente scritto da me, preso da qui: http://it.wikibooks.org/w/index.php?title=Java/Introduzione/2&oldid=213685
Riga 1:
{{Java/Prima parte}}
Java è un linguaggio originariamente sviluppato dalla [[w:it:Sun, aziendaMicrosystems|Sun cheMicrosystems]], daattualmente anni opera nel campo dell'informaticadalla e[[w:it:Oracle dellaCorporation|Oracle programmazioneCorporation]].
 
La sintassi del Java ricorda molto da vicino quella del [[w:it:C++|C++]], tuttavia i due linguaggi sono stati scritti con scopi diversi, e quindi risultano sensibilmente diversi tra di loro.
Come linguaggio Java ricorda molto da vicino il C++, ma è fortemente diverso in molti punti: è un linguaggio orientato ad oggetti in cui, a differenza del C++ si possono utilizzare con meno libertà alcune caratteristiche tipiche del C tradizionale, come i puntatori, ma si ha in compenso una maggiore strutturazione di tutto il linguaggio.
<br/>In particolare Java si basa sul concetto di '''ereditarietà''' delle classi: ogni classe in Java eredita, direttamente o indirettamente, da una classe base, Object, che definisce un'interfaccia e un comportamento comuni definiti per tutti gli oggetti. Un'altra caratteristica saliente di Java che lo ha reso così popolare è la possibilità d'essere documentato oggetto per oggetto, metodo per metodo e la possibilità di estrarre la documentazione al di fuori del sorgente tramite il meccanismo di JavaDoc.
 
Imparare una lingua significa entrare in un'ottica diversa: non si deve pensare nella propria lingua madre e tradurre, ma ''pensare direttamente'' nella lingua in cui si parla o si scrive. Ciò vale per le [[w:it:lingua naturale|lingue naturali]], così come per i linguaggi di programmazione. <br/>
Ma il vero cuore di Java sta nella sua portabilità: Java può funzionare virtualmente ovunque, grazie al meccanismo della Java Virtual Machine che fa da filtro tra il codice Java e la macchina. Un qualsiasi sorgente Java può quindi potenzialmente essere programmato per un'architettura x86, ma essere portato facilmente e velocemente su un'architettura per PowerPC.
Pertanto, il lettore che si avvicina al Java avendo già programmato in C++ o in altro linguaggio, o avendo già qualche nozione di programmazione ad oggetti, cancelli la ''[[w:it:forma mentis|forma mentis]]'' che tale linguaggio gli ha impresso.
 
== Caratteristiche ==
Java è un linguaggio
*''[[w:it:case sensitive|case sensitive]]''
*''[[w:it:strongly typed|strongly typed]]''
*''[[w:it:object oriented|object oriented]]''
*dotato di ''[[w:it:garbage collection|garbage collector]]''
 
Le specifiche di linguaggio vengono mantenute dalla Oracle e sono definite da un documento
chiamato ''The Java Language Specification'', o, abbreviato, ''JLS''. Nel tempo, sono state realizzate tre edizioni di questo
documento (a gennaio 2011, la più recente è la terza), che hanno via via aggiunto diversi costrutti e regole al linguaggio.
 
Le specifiche vengono scritte avendo sempre in mente la ''retrocompatibilità'': tutto il codice sorgente che era corretto con le vecchie versioni di Java deve risultare corretto anche con quella nuova e deve avere lo stesso significato.
 
== Schema di funzionamento ==
Per realizzare un programma Java, si segue questo modello:
#il programmatore scrive il [[w:it:codice sorgente|codice sorgente]] in linguaggio Java;
#i file che compongono il sorgente vengono compilati, ovvero uno [[w:it:compilatore|strumento automatico]] li traduce dal Java in un altro linguaggio di programmazione;
#il programma Java (costituito dai file risultanti dalla compilazione) viene lanciato avviando un altro programma, scritto in codice nativo del sistema operativo su cui ci si trova, e chiamato [[w:it:Java Virtual Machine|Java Virtual Machine]]. Alla virtual machine sono indicati i file compilati che dovrà eseguire e alcuni [[w:it:metadato|metadati]] che consentono la corretta esecuzione del programma.
 
Il codice eseguibile prodotto dalla compilazione (''bytecode'') è scritto in un linguaggio di programmazione che non è direttamente comprensibile dagli esseri umani. Questo linguaggio è definito da un documento chiamato ''The Java Virtual Machine Specification'', il cui sviluppo viene mantenuto dalla Oracle. A gennaio 2011, la versione più recente delle specifiche è la seconda.
 
== Un linguaggio rivoluzionario ==