Introduzione

29
Introduzione Fondamenti di informatica L-B Laboratorio Alessandro Falchi [email protected]

description

Introduzione. Fondamenti di informatica L-B Laboratorio Alessandro Falchi [email protected]. Java: un po’ di storia…. - PowerPoint PPT Presentation

Transcript of Introduzione

Page 1: Introduzione

Introduzione

Fondamenti di informatica L-BLaboratorio

Alessandro [email protected]

Page 2: Introduzione

Java: un po’ di storia… 1992: il Green Team di Sun, capitanato da James Gosling, realizza

il linguaggio Oak (quercia), indirizzato al controllo di reti di dispositivi di elettronica di consumo (TV, frigoriferi, …). Oak, che non ha vincoli di retrocompatibilità, è un linguaggio ad oggetti con caratteristiche “moderne”: portabililtà (deve essere indipendente dalla piattaforma), multithread, gestione della memoria (garbage collector) e orientamento alle reti.

1993: il mercato degli elettrodomestici intelligenti è ancora immaturo, mentre esplode il boom di Internet. Oak viene dunque “reindirizzato” per supportare l’inclusione di codice nelle pagine Web

1994: WebRunner (ribattezzato poi HotJava) è il primo browser in grado di eseguire applet Java

1995: Oak viene ribattezzato Java (miscela di caffè) ed il 23 Maggio Sun ne annuncia la versione 1.0. Gli elementi che determinano il successo di Java, oltre alle sue caratteristiche, sono l’inclusione della Java Virtual Machine nel browser Netscape (al tempo leader) e il rilascio gratuito, da parte di Sun, del codice sorgente di Java nel Developer Kit (JDK)

Page 3: Introduzione

Java: l’evoluzione 1.0: versione iniziale. Contiene 212 classi. 1.1: prima evoluzione del linguaggio e della JVM 1.2: release significativa: il numero di classi arriva a 1520,

includendo le librerie Swing per le interfacce grafiche e il supporto alle Collection. A sottolineare l’importante evoluzione della piattaforma, viene adottato il brand Java2, che però ha solo valenza commerciale (e di confusione…)

1.3: questa versione mira soprattuto a migliorare le performance della JVM ed a consolidare il class system

1.4: forte evoluzione della piattaforma, che arriva a 2991 classi e interfacce. Estensioni in numerose direzioni (I/O, grafica, XML, sicurezza…)

1.5: ultima release attualmente disponibile. Estensioni al nucleo del linguaggio (generics, enumeration…), al class system (che conta ora 3552 classi e interfacce) e alla JVM (gestione remota e programmazione concorrente). Questa versione è anche chiamata Java 5.0

Page 4: Introduzione

Un linguaggio, tre architetture J2SE (Java2 Standard Edition): è la versione base,

“generica” di Java, contenente l’intero class system e gli strumenti per sviluppare applicazioni e applet (programmi Java inseriti nelle pagine web)

J2EE (Java2 Enterprise Edition): estende J2SE con funzionalità per lo sviluppo di applicazioni enterprise, quali JSP (Java Server Pages), Servlet, EJB (Enteprise Java Bean) e Web Services. Evolve in maniera più contenuta rispetto a J2SE.

J2ME (Java2 Micro Edition): versione ridotta di J2SE per il supporto allo sviluppo di applicazioni per dispositivi mobili quali palm e telefoni. Esistono anche diverse versioni della JVM per J2ME a seconda della potenza computazionale dei dispositivi

Page 5: Introduzione

Cosa installare?J2SE SDK Software Development Kit (chiamato anche JDK – Java Development Kit): contiene tutte le classi con relativo codice sorgente, gli strumenti per lo sviluppo e il Java Runtime Environment (JRE) per il supporto all’esecuzione di applicazioni Java.Il JRE è disponibile come modulo stand alone per chi non deve sviluppare ma solo eseguire applicazione Java (tipicamente è noto come plugin Java per il browser)

Versioni: il version numbering segue la notazione X.Y.Z_nmAd esempio: 1.4.2_10, 1.5.0_06

X: versione della piattaforma (ad oggi solo 1)Y: versione della release (l’ultima è 5)Z: aggiornamenti alla release che con modifiche alle classinm: bugfix e security fix che non alterano l’accesso alle classi

Nota: l’ultima release del JDK è etichettata sia come 5.0 che come 1.5.0!

Page 6: Introduzione

DocumentazioneL’intero class system di Java è dettagliatamente

documentato nelle pagine HTML che costituiscono la JavaDoc, nome che deriva dal tool per la generazione automatica della documentazione.

Sul sito di Sun potete sia scaricare la JavaDoc relativa alla versione di Java che utilizzate (es: 1.4.2 oppure 1.5.0) che “sfogliarla” on-line. L’accesso è in entrambi i casi attraverso un browser web o un tool in grado di visualizzare le pagine HTML.

Consiglio: scegliete la visualizzazione “con frame”, oggi supportata dalla totalità dei browser e decisamente più pratica

Page 7: Introduzione

Tool da linea di comando

Compilatore - javac Macchina virtuale - java Debugger - jdb Generatore automatico di documentazione

ipertestuale - javadoc Altri comandi - appletviewer, javap, rmic,

Page 8: Introduzione

javac1. Trasforma il codice sorgente (file .java) in bytecode

(file .class) interpretabile dalla JVM2. Permette di compilare classi singole e gruppi di classi,

anche mantenendo direttori separati per sorgenti e compilati

javac [opzioni] [sorgenti] [@ElencoSorg]

possibili opzioni:– -classpath: classi bootstrap, extension, poi classpath di

utente (variabile di ambiente e opzione)– -d (direttorio per classi)– -g (debugging abilitato)– -verbose (info estese sulla compilazione), ...

Page 9: Introduzione

java

1. Mette in esecuzione una applicazione Java

2. Avvia una macchina virtuale Java, carica una classe specificata e invoca il suo metodo main (pubblico e statico)

java [opzioni] File.class [parametri]

java [opzioni] -jar File.jar [parametri]

varianti: javaw, oldjava, oldjavaw

opzioni: -classpath/-cp, -jar, -verbose, -?, ...

Page 10: Introduzione

javadocAnalizza i file sorgenti Java e produce la corrispondente documentazione ipertestuale (formato html) sulla base di particolari commenti inseriti nei sorgenti stessi

Può essere invocato su singole classi o interi package

javadoc [opzioni][package][sorg][@ElencoS/P]

Vari tag standardizzati per i commenti:@author, @param, @return, @throws, @see, @version…

Sono validi anche diversi tag HTML (<p>, <b>, …)

Page 11: Introduzione

ECLIPSEEclipse è una community open source focalizzata sullo sviluppo di strumenti per sviluppatori Homepage: http://www.eclipse.org/

Eclipse è anche il nome della piattaforma IDE (Integrated Development Environment)

Vantaggi Strumento potente e completo Codice sorgente (Java) disponibile Modulare (numerose estensioni disponibili) Supporto allo sviluppo in altri linguaggi

Svantaggi Pesantezza

Page 12: Introduzione

ECLIPSE – cosa installarePer il corso di fondamenti di informatica (e più in generale per usare Eclipse nella realizzazione di semplici programmi Java) sono necessari: Eclipse platform (prelevare la versione per il sistema

operativo usato) JDT (Java Development Tool): OS independent

Ad oggi, la versione di Eclipse più recente è la 3.1.2.Eclipse richiede come prerequisito l’installazione di almeno una JVM (è sufficiente il JRE ma è consigliato il JDK)

[per utenti Windows] I file zip scaricati vanno semplicemente posti in una cartella e da lì decompressi: verrà creata una cartella eclipse. L’IDE si avvia facendo partire il file eclipse.exe

Page 13: Introduzione

Avvio e selezione workspace

Page 14: Introduzione

Welcome Screen e workbench

Page 15: Introduzione

Creazione di un progetto (1)

Page 16: Introduzione

Creazione di un progetto (2)

Page 17: Introduzione

Creazione di un progetto (3)

Page 18: Introduzione

Creazione di un package

Page 19: Introduzione

Nome del package

Per convenzione, i nomi dei package hanno l’iniziale minuscola: provando a mettere “Test” anziché “test”, Eclipse segnala un avvertimento nella parte alta della finestra

Page 20: Introduzione

Creazione di una classe con main (1)

Page 21: Introduzione

Creazione di una classe con main (2)

I nomi delle classi hanno per convenzione l’iniziale MAIUSCOLA (Eclipse segnala il non rispetto della convenzione)

Page 22: Introduzione

Editing del codice sorgente

Package Explorer

Problems

Outline

Area di editing

Page 23: Introduzione

package test;

public class PrimoProgramma {

/** * @param args */public static void main(String[] args) {

System.out.println("ORA DOMINO JAVA ED ECLIPSE!!!");}

}

Eclipse segnala errori nel sorgente in tempo reale, sottolineandoli con una linea ondulata di color rosso chiaro

Il nostro primo programma

Page 24: Introduzione

Esecuzione del programma

RUN

Page 25: Introduzione

Java Application

Page 26: Introduzione

Avvio dell’esecuzione

Page 27: Introduzione

Salvataggio

Page 28: Introduzione

Ad esecuzione terminata…

Page 29: Introduzione

Alcune note

Per essere eseguibile come Java Application, il codice sorgente deve contenere il metodo main(String[] args)

Una volta eseguito un programma, Eclipse ricorda le impostazioni fatte e permette di eseguirlo nuovamente (anche se modificato) con un clic sull’icona “Run” nella toolbar.Il menu a tendina accanto a tale icona “ricorda” i programmi messi in esecuzione più di recente (così che con un clic su tale oggeto si riavvi l’esecuzione)

Eclipse mette a disposizione numerosi strumenti che rendono più agevole il vostro lavoro: provateli! Un esempio: il menu Source → Format sistema il codice in modo da rispettare le convenzioni di indentazione

Salvate il codice più spesso di quanto non lo eseguiate!!