IL LINGUAGGIO JAVA: CARATTERISTICHE



Похожие документы
Programmazione ad Oggetti. Java Parte I

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Strumenti per la programmazione

Programmare in Java. Olga Scotti

Appunti di Informatica 1

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Le command line di Java

Scrivere un programma in Java

Java: Compilatore e Interprete

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Ambienti di Sviluppo

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Installazione del Software. per lo Sviluppo di Applicazioni Java

Tale attività non è descritta in questa dispensa

2 - Introduzione al linguaggio Java

Panoramica: che cosa è necessario

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Programmazione Orientata agli Oggetti in Linguaggio Java

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Introduzione alla programmazione in Java

19. LA PROGRAMMAZIONE LATO SERVER

Programmazione in Java Parte I: Fondamenti

APPENDICE. Appendice. Strumenti per lo sviluppo dei programmi Java

Corso Eclipse. Prerequisiti. 1 Introduzione

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Struttura di un programma Java

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Applicazioni web centrati sui dati (Data-centric web applications)

Mac Application Manager 1.3 (SOLO PER TIGER)

Fondamenti di programmazione in Java. Lezione III

Il Sistema Operativo (1)

Eclipse. Avviare un progetto e compilare un semplice programma

Siti web centrati sui dati (Data-centric web applications)

Installazione del software Fiery per Windows e Macintosh

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Getting Started. Walter Cazzola. Dipartimento di Informatica e Comunicazione Università degli Studi di Milano

Compilatore risorse display grafico LCD serie IEC-line

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Approccio stratificato

INFORMATICA 1 L. Mezzalira

Corso di Informatica Modulo T3 B2 - Database in rete

Introduzione alla programmazione in C

Il linguaggio di programmazione JAVA

sito web sito Internet

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Capitolo 4 Pianificazione e Sviluppo di Web Part

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

FRANCESCO MARINO - TELECOMUNICAZIONI

Introduzione ad Eclipse

Programmazione ad oggetti

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Installazione del JDK 6

Istruzioni per l installazione

Introduzione a Dev-C++

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

MOBS Flussi informativi sanitari regionali

Usare MUD2010 con Windows 7

Esercitazione 4 JDBC

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Corso di Informatica

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Protocolli applicativi: FTP

Usare MUD2011 con Windows 7

Primi programmi in Java. Lezione IV

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Configurare TPTP in Eclipse e testare un applicazione

IBM SPSS Statistics - Essentials for Python- Istruzioni di installazione per Windows

Il Software. Il software del PC. Il BIOS

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

IBM SPSS Statistics - Essentials for Python- Istruzioni di installazione per Windows

Linguaggi di programmazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Oggetti Lezione 3. aspetti generali e definizione di classi I

Manuale Operativo per la firma digitale

FPf per Windows 3.1. Guida all uso

Fondamenti di Informatica T1 Guida all uso di JDK e Eclipse

Installazione e caratteristiche generali 1

Linguaggi 2 e laboratorio

BMSO1001. Orchestrator. Istruzioni d uso 02/10-01 PC

FONDAMENTI di INFORMATICA L. Mezzalira

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

IBM SPSS Statistics - Essentials for R- Istruzioni di installazione per Windows

INSTALLAZIONE MS WINDOWS 7 SU MACCHINA VIRTUALE VMWARE

FORMAZIONE PROFESSIONALE

Gestione dei File in C

Linguaggio C. Fondamenti. Struttura di un programma.

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Il web server Apache Lezione n. 3. Introduzione

Variabili e tipi di dato

Транскрипт:

CHE COS È JAVA È un linguaggio (e relativo ambiente di programmazione) definito dalla Sun Microsystems per permettere lo sviluppo di applicazioni sicure, performanti e robuste su piattaforme multiple, in reti eterogenee e distribuite (Internet)

IL LINGUAGGIO JAVA: CARATTERISTICHE Semplice e orientato agli oggetti Interpretato Architetturalmente neutro e portabile Robusto Distribuito Sicuro Dinamico Ad elevate prestazioni Concorrente (multithread)

SEMPLICE E OO Sintassi simile a C e C++ (facile da imparare) Elimina i costrutti più "pericolosi" di C e C++ aritmetica dei puntatori (de)allocazione esplicita della memoria strutture (struct) definizione di tipi (typedef) preprocessore (#define) Aggiunge garbage collection automatica Conserva la tecnologia OO di base di C++ Rivisita C++ in alcuni aspetti (C++--==)

INTERPRETATO Il compilatore produce un codice di tipo intermedio per una Java Virtual Machine ( byte-code )... che viene interpretato codice sorgente codice sorgente compilatore compilatore byte byte code code interprete interprete

BYTECODE: ESEMPIO void spin ( ) { int i; for (i = 0; i < 100; i++) { } ; } 0 iconst_0 // push int constant 0 1 istore_1 // store into local 1 (i=0) 2 goto 8 // first time, don t increment 5 iinc 1 1 // increment local i by 1 (i++) 8 iload_1 // push local 1 (i) 9 bipush 100 // push int constant (100) 11 if_icmplt 5 // compare, loop if < (I<100) 14 return // return void when done

ARCHITETTURALMENTE NEUTRO Il byte-code è indipendente dall architettura hardware (ANDF: Architecture Neutral Distribution Format) Pertanto, un programma bytecode può essere eseguito su qualsiasi sistema su cui giri un ambiente run-time Java

ESEMPIO Sistema tradizionale codice sorgente codice sorgente compilatore compilatore macchina macchina A compilatore compilatore macchina macchina B. eseguibile macchina eseguibile macchina A eseguibile macchina eseguibile macchina B Sistema ANDF compilatore compilatore macchina macchina A interprete macchina interprete macchina A codice sorgente codice sorgente compilatore compilatore macchina macchina B byte byte code code interprete macchina interprete macchina B..

ESEMPIO Il formato dei dati è specificato esattamente, e non di minima, come nel C: byte 8 bit complemento a 2 short 16 bit int 32 bit long 64 bit float 32 bit IEEE 754 floating double 64 bit char 16 bit Unicode

PORTABILE Il sistema Java (compilatore + interprete + librerie run-time) è facilmente portabile su piattaforme diverse codice sorgente codice sorgente compilatore compilatore byte byte code code interprete interprete libreria libreria S.O. il compilatore Java è scritto in Java l ambiente run-time è scritto in ANSI C con interfacce standard (POSIX) verso il sistema operativo nessuna implementation dependency

ROBUSTO Controlli estensivi a compile-time e a run-time, per rilevare gli errori quanto prima possibile (es.: type checking) Per questo, le caratteristiche insicure di C e C++ sono rimosse: Nessuna gestione esplicita dei puntatori (no aritmetica dei puntatori, no malloc e free esplicite, ) Gestione della memoria con garbage collection Array e stringhe veri Verifica del byte-code a load-time

DISTRIBUITO Pensato per essere eseguito in rete L ambiente run-time incorpora funzioni di rete (sia di basso livello: TCP/IP, che di alto livello: HTTP, ) La rete è facilmente accessibile (come i file locali)

SICURO L ambiente di esecuzione si protegge da bytecode potenzialmente ostile Esempi: il bytecode viene verificato prima dell interpretazione ( theorem prover ), in modo da essere certi di alcune sue caratteristiche gli indirizzamenti alla memoria nel bytecode sono risolti sotto il controllo dell interprete

COMPILE-LOAD-RUN Sorgente Sorgente Java Java Loader Loader delle delle classi classi Verifica Verifica del del byte-code byte-code Compilatore Compilatore Rete Interprete Interprete Byte-code Byte-code Java Java Ambiente Ambiente run-time run-time hardware hardware

ELEVATE PRESTAZIONI La verifica del bytecode permette di saltare molti controlli a run-time: l interprete è pertanto efficiente Per maggiore efficienza, possibilità compilazione on-the-fly del bytecode in codice macchina

COMPILAZIONE ON-THE-FLY Sorgente Sorgente Java Java Loader Loader delle delle classi classi Verifica Verifica del del byte-code byte-code Compilatore Compilatore Rete Interprete Interprete Generatore Generatore di di codice codice Byte-code Byte-code Java Java Ambiente Ambiente run-time run-time hardware hardware

DINAMICO Il codice è eseguibile anche in assenza di alcuni moduli: le classi necessarie per la esecuzione di un programma Java possono essere caricate e collegate dinamicamente quando servono Esempio: nuove release di moduli caricabili automaticamente dalla rete quando servono

CONCORRENTE Multithreading parte integrante del linguaggio: Applicazioni interattive più facili a scriversi Migliore "reattività" (anche se non real-time) Esempio: caricamento asincrono di immagini nei browser di rete riduce i tempi di attesa

RICCO La Standard Library Java contiene una ricca collezione di classi e di metodi preconfezionati: Language support Utilities Input/output Networking Abstract Window Toolkit (AWT)

JAVA E INTERNET

WEB BROWSER E SERVER Server abc.com Server xyz.com Client Hyperlink Browser program to xyz.com Disk Disk HTTP used over this TCP connection HTTP Server HTTP Server Internet

URL: Uniform Resource Locator <protocollo> :// <nome del server> <nome del file> Esempio: http://www.dsi.unimi.it/dsi/corsi/programmi/f2 deve essere risolto in indirizzo internet (IP) 8005/index.html con l aiuto di un Domain Name Server (DNS)

HTML: ESEMPIO <HTML> <HEAD> <TITLE> Esempio </TITLE> Esempio </HEAD> Testo <BODY> DSI <P> Testo <A HREF= http://www.dsi.unimi.it > DSI </A> </BODY> </HTML>

APPLET JAVA Sono programmi Java riferiti da link in pagine HTML Vengono caricati e interpretati dal browser (se questo supporta Java) Permettono di animare le pagine web

HTML con APPLET: ESEMPIO <HTML> <HEAD> <TITLE> Esempio </TITLE> </HEAD> <BODY> <P> Testo Esempio Testo Hallo! <APPLET CODE= HelloWorld.class WIDTH=300 HEIGHT=80> Qui c è un applet che ti saluta </APPLET> </BODY> </HTML> testo che esce se il browser non supporta gli applet

JAVA BROWSER rete TCP / IP http client ftp ftp client client java loader interprete HTML interprete JAVA I/O library local disk UI library

UN NUOVO PARADIGMA: NETWORK COMPUTING Approccio tradizionale DATI PROGRAMMI RETE Network computing RETE PROGRAMMI E DATI PC NC load and run

Installazione del kit di sviluppo di Java (SDK) ed esecuzione del primo programma

Installazione del JDK sul disco fisso Ricerca o download dell eseguibile JDK Doppio click sull icona del file A questo punto partirà la procedura automatica d installazione. Seguire le istruzioni a video.

Installazione del JDK sul disco fisso Se l installazione va a termine correttamente sul disco fisso sarà presente la directory Jdk1.X.X con le seguenti sotto directory: bin, contente il compilatore e gli altri eseguibili; demo, contente alcuni demo; lib, etc. jre: contiene l interprete, estensioni, ed altre informazioni di configurazione docs: contiene la documentazione (N.B.: da scaricare separatamente)

PATH e CLASSPATH Cosa è una variabile di ambiente: Una variabile del sistema operativo e visibile da tutte le applicazioni Può essere settata temporaneamente in una finestra Può essere settata per l intero sistema PATH: contiene la lista delle directory dove il sistema operativo cerca i comandi da eseguire CLASSPATH: contiene la lista delle directory dove il compilatore java e l interprete cercano le classi JAVA_HOME: per far sapere ad applicazioni che utilizzano JAVA dove si trova la cartella di

Aggiornamento delle variabili di ambiente Prima di poter scrivere ed eseguire un programma Java è necessario aggiornare le variabili di ambiente per permettere al sistema operativo di trovare il compilatore Java e le classi di sistema. Bisogna aggiornare quindi il PATH e aggiungere una variabile di ambiente detta CLASSPATH

2.1- Aggiunta nel Path di Jdk\bin La procedura è leggermente diversa a seconda del sistema operativo adoperato: Sotto Windows 98 si deve inserire nella variabile path dell AUTOEXEC.BAT il percorso drive :\jdk1.xx\bin. Ad esempio la linea diventa: set path= C:\WINDOWS;C:\WINDOWS\COMMAND; Set path=c:\windows;c:\windows\command;c:\jdk1.xx\bin

Aggiunta nel Path di Jdk\bin Sotto Windows XP/2000 si deve aprire il control panel, selezionare System (o Sistema nella versione Italiana), quindi Environment (o Ambiente). Scorrere la lista fino a trovare la variabile chiamata PATH e aggiungere il testo drive \jdk1.xx\bin all inizio o alla fine della linea. Dove drive è il disco su cui si è installato il Jdk Attenzione il Sistema Operativo cerca in Ordine..!!!!

2.2-Aggiunta della variabile ClassPath La procedura è identica al caso precedente, con la differenza che la variabile d ambiente deve essere aggiunta in quanto non presente in genere fra quelle standard. Sotto Win98 quindi bisogna aprire l AUTOEXEC.BAT e aggiungere la linea: SET CLASSPATH=.;c:\Nome_dir_lavoro\

Aggiunta della variabile ClassPath Sotto WinXP/2000 bisogna aprire il pannello di controllo, quindi aprire l icona System e selezionare la scheda Environment. Nel campo Variabile scrivere: Nel campo valore: CLASSPATH.;c:\Nome_dir_lavoro\

Aggiunta della variabile ClassPath Con il punto s indica al compilatore Java di cercare le eventuali altre classi nella stessa directory dove si trova il file sorgente. La stringa Directory_Lavoro si dovrà sostituire con il nome dato alla directory che conterrà i file.class (mentre inserire il punto nel ClassPath è necessario, indicare una directory di lavoro è opzionale)

Scrittura del programma di esempio Il modo più semplice per editare un file sorgente Java è quello di adoperare un programma di scrittura come Notepad o WordPad di Windows. Supponiamo di voler scrivere il seguente programma Java, che stampa a video un messaggio di saluto:

Testo del primo programma public class HelloWord { public static void main (String[] args) { System.out.println( Hello world ); } }

Generazione del bytecode Una volta scritto con un editor il testo si salvi il file con il nome HelloWorld.java (in Java è obbligatorio chiamare il file sorgente con lo stesso nome della classe che contiene il main). N.B.: Visualizza estensioni Aprire una finestra Dos, posizionarsi nella directory dove si è salvato il file sorgente e lanciare il Compilatore (in realtà non è un vero compilatore in quanto non genera codice oggetto ma bytecode).

3.2-Generazione del bytecode Il comando da eseguire è: javac HelloWorld.java Si ricorda che Java distingue tra maiuscole e minuscole, quindi i nomi helloworld, helloworld e Helloworld sono tutti e tre errati. Perche trova javac? Perche trova HelloWord. java?

3.3-Esecuzione del bytecode Per eseguire il file HelloWorld.class generato si deve lanciare la Java Virtual Macchine. Il comando da adoperare sarà: java HelloWorld Si noti che non deve essere presente l estensione.class Perche trova java? Quale Java usa? Perche trova HelloWord? Se mi trovassi altrove?

4-Un altro esempio In questo secondo esempio si adopererà la libreria grafica di Java, creando una dialog box per l immissione di alcuni dati. Lo scopo del programma è solo quello di mostrare un primo esempio di output grafico, non è necessario comprendere tutte le istruzioni. Il testo sorgente è:

Testo secondo esempio import javax.swing.*; public class InputTest { public static void main(string[] args) { String nome=joptionpane.showinputdialog ( Come ti chiami? ); System.out.println( Salve +nome); System.exit(0); } }

Compilazione ed esecuzione del secondo esempio Il file va salvato con lo stesso nome della classe con in più l estensione.java (InputTest.java). Per la generazione del bytecode il comando sarà: Per l esecuzione: javac InputTest.java java InputTest

Esecuzione del programma Eseguendo il programma compare la seguente finestra di input:

Esecuzione del programma Immettendo dei caratteri e premendo OK si otterrà un output su console.