JAVA Caratteristiche e costrutti fondamentali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "JAVA Caratteristiche e costrutti fondamentali"

Transcript

1 JAVA Caratteristiche e costrutti fondamentali Andrea BEI (andrea.bei@libero.it)

2 CARATTERISTICHE DI JAVA Object Oriented Distribuito e Portabile Robusto Concorrente (multithreading) Livelli di astrazione

3 Object Oriented Sintassi simile a C e C++ Elimina i costrutti più "pericolosi" di C e C++ aritmetica dei puntatori preprocessore (#define) (de)allocazione esplicita della memoria Funzionalità di garbage collection (GC) automatica

4 Distribuito e Portabile Incorpora molte funzionalità per l accesso alla rete (TCP/IP) Il compilatore produce codice di tipo bytecode interpretato da una virtual-machine e indipendente dall architettura HW Lo stesso codice gira su piattaforme Unix, Microsoft e Macintosh

5 Robusto Rilevamento errori e Type-checking a tempo di compilazione e di esecuzione Mascheramento dei puntatori all'utente Controllo automatico degli indici degli array Gestione delle eccezioni da parte dell'utente Gestione della memoria (allocazione & GC)

6 Livelli di astrazione Interfacce Classi astratte Classi e programmi Codice Sorgente file.java Compilazione Codice Byte-Code file.class Esecuzione JAVA VIRTUAL MACHINE Windows Unix Macintosh

7 CLASSI [Doc comment][modifiers] class ClassName [extends SuperClassName] [implements InterfaceName [, InterfaceName]] {ClassBody} Doc comment - commento "di documentazione" Modifiers - uno dei cinque qualificatori abstract, final, public, private, synchronizable extends - la classe è sottoclasse di un'altra (e di una sola: ereditarietà singola) implements - la classe realizza una o più interfacce (può "simulare" ereditarietà multipla) ClassBody - gli attributi e i metodi della classe

8 TIPI DI CLASSE Quattro tipi di classe abstract: tra i vari metodi, deve contenerne almeno uno astratto, ma non può contenere metodi privati o statici; deve dare origine a sottoclassi; non può essere istanziata final: termina una catena di classi-sottoclassi, non può dare origine a ulteriori sottoclassi public: può essere usata da altre classi nel package che ne contiene la dichiarazione senza formalità; disponibile anche in altri package, purché vi venga "importata" synchronizable: tutti i metodi interni sono "sincronizzati"

9 COMMENTI Il codice sorgente JAVA può essere commentato con tre diversi stili // Doppio slash va bene per commenti di una riga /* Commenti con un numero di righe maggiore o uguale a uno vanno delimitati in questo modo */ /** Commenti delimitati così vengono inclusi nella documentazione generabile automaticamente a partire dal codice sorgente e vanno inseriti prima di una dichiarazione di classe o di interfaccia */

10 TIPI SEMPLICI I tipi semplici predefiniti sono: boolean - tipo enumerativo (due elementi) char - carattere di 16 bit (Unicode) byte - intero di 8 bit con segno short - intero di 16 bit con segno int - intero di 32 bit con segno long - intero di 64 bit con segno float - floating-point di 32 bit double - floating-point di 64 bit L accesso ai dati semplici è diretto

11 TIPI COMPOSTI Tipi composti predefiniti: Array Classi Interfacce L accesso ai dati composti avviene tramite puntatori non accessibili dall utente

12 TIPO COMPOSTO ARRAY Array di dati semplici o composti: char a[]; int a[]; (semplici) String tema[]; Point poligono[]; int matrice[][]; (composti) Indicizzati con int (indice del primo elemento = 0), Dichiarazione, creazione e inizializzazione possono essere fatte in fasi distinte o contemporaneamente. Es: char ca[]; // dichiarazione ca = new char[4]; // creazione ca[0]= N ;ca[1]= S ;ca[2]= E ;ca[3]= O // inizializzazione char ca[]=new char[4]; // dichiaraz. E creazione ca[0]= N ;ca[1]= S ;ca[2]= E ;ca[3]= O // inizializzazione char ca[]={ N, S, E, O } // dich.,creaz. E inizializzaz.

13 CLASSI, ATTRIBUTI E METODI Una classe è l astrazione di una entità reale di cui descrive lo stato con gli attributi e il comportamento con i metodi Esempio di classe: la classe Serbatoio public class Serbatoio { int livello; /* attributo */ public Serbatoio () { /* metodo costruttore: ha lo livello = 10; stesso nome della classe */ } public void Rifornimento (int j) { /* metodo */ livello = livello+j; } public void Consumo (int j) { /* metodo */ livello = livello-j; } }

14 ATTRIBUTO this E implicitamente presente in ogni oggetto e punta all oggetto stesso Es: public class Serbatoio { int livello; /* attributo */ public Serbatoio (int livello) { /* parametro */ this.livello = livello; /* disambiguazione */ }... } Permette di usare lo stesso nome per attributi e parametri

15 CREAZIONE, USO E RIFERIMENTO DI OGGETTI Creazione e uso di un oggetto della classe Serbatoio Serbatoio S; /* dichiarazione,*/ S = new Serbatoio(); /* creazione: l attributo livello vale 10 */ S.consumo(5); /* ora livello vale 5 */ S.rifornimento(10); /* livello vale 15 */ Riferimenti ad un oggetto della classe Serbatoio Serbatoio S, S1; /* dichiarazione, non creazione */ S = new Serbatoio(); /* S punta ad un oggetto Serbatoio */ S1=S; /* S1 e S puntano allo stesso oggetto */ S1=null; S=null; /* l oggetto non è più accessibile */

16 DISTRUZIONE DI OGGETTI Java non supporta "distruttori" espliciti: gli oggetti privi di puntatori incidenti (non più accessibili) vengono eliminati automaticamente e la memoria che questi occupano viene liberata String s; /* dichiarazione */ s = new String ("abc"); /* creazione: s punta a "abc" */ s = "def"; /* "abc" non è più puntata da s */ Questo viene fatto da un thread (garbage collector, o GC) che viene eseguito contemporaneamente ai thread utente e di sistema Vantaggi: il programmatore non si deve preoccupare della deallocazione della memoria

17 FINALIZZATORI DI OGGETTI Per un oggetto potrebbero essere previste delle operazioni da effettuare prima della definitiva eliminazione (per esempio la chiusura di file aperti) Prima di procedere alla eliminazione di un oggetto il GC invoca il suo metodo finalize, definibile dall utente protected void finalize () { close (); } /*chiudi tutti i file aperti */ Il metodo finalize esiste sempre: se non è stato ridefinito viene ereditato da Object la classe più generale nella gerarchia delle classi JAVA

18 EREDITARIETA E' il meccanismo di specializzazione che consente di derivare una sottoclasse da una classe data Esempio: Fuoristrada come sottoclasse di Automobile public class Automobile {int Ruote, Marce, Livello; public Automobile () { Ruote = 4; Marce = 5; Livello=10} public void Rifornimento(int Rif) { Livello=Livello+ Rif } public void Consumo(int Cons) { Livello=Livello-Cons; } } public class Fuoristrada extends Automobile { int Serbatoio_di_riserva; public Fuoristrada (int SR) { Serbatoio_di_riserva = SR; } public void Rifornimento(int Rif) /* ridefinizione */ { Livello=Livello+Rif/2; Serbatoio_di_riserva=Serbatoio_di_riserva+Rif/2 } }

19 INCAPSULAMENTO Quattro tipi di diritti d'accesso a metodi e attributi - public void TuttiAccedono () {... } - protected void SoloSottoClassiAccedono () {... } - private void NessunoAccede () {... } - void SoloDaDentroIlPackage () {... } L'ultimo tipo si chiama "friendly Attributi statici: condivisi da tutti gli oggetti della stessa classe; Metodi statici: operano solo su dati statici class NewDocument extends Document { static int Version = 10; int Chapters; static void NewVersion () { Version++; } /* OK */ static void AddChapter () { Chapters++; } } /* KO */

20 CLASSI ASTRATTE Create per generalizzazione, rappresentano descrizioni "incomplete" di oggetti Non posseggono esemplari ("non possono essere istanziate"), ma è possibile derivarne sottoclassi. Usate principalmente come strumenti di polimorfismo per definire operazioni ("print") comuni a più classi poco correlate public abstract class Graphics { /* generica */ public abstract void DrawLine(int x1,y1,x2,y2); } public class VGA extends Graphics { /*specifica */ public void DrawLine(int x1,y1,x2,y2) { <codice per VGA> }}

21 INTERFACCE Alternativa alle classi astratte: non richiede la derivazione esplicita di sottoclassi public interface AudioClip { void play (); /* avvia i esecuzione */ void loop (); /* esegui ciclicamente una audio clip */ void stop (); } /* interrompi l esecuzione */ class MyAudio implements AudioClip { void play () { <codice che implementa play> } void loop () { <codice che implementa loop> } void stop () { <codice che implementa stop> } } class YourAudio implements AudioClip { <codice> } I metodi possono essere public o abstract, gli attributi public, static o final

22 POLIMORFISMO Possibile utilizzo di metodi omonimi. Devono essere distinguibili per il numero e/o per il tipo degli argomenti (arità) Esempio: Serbatoio polimorfo public class Serbatoio { int livello; /* attributo */ public Serbatoio () { /* metodo costruttore: ha lo i = 10; stesso nome della classe */ } public Serbatoio (int j) { /* altro metodo costruttore livello= j; diverso dal precedente */ }... }

23 JAVA Packages e Classi fondamentali Andrea BEI (andrea.bei@libero.it)

24 PACKAGE: Definizione e Uso Contenitori di classi organizzati in modo gerarchico java lang sql io String System La classe String è definita nel package java.lang il file String.class si trova nella directory CLASSPATH\java\lang\ Prima di usare una classe occorre importarla dal package in cui è definita con il comando: import package1[.package2] [packagen].(classname *) es: import java.lang.string; oppure import java.lang.*;

25 PACKAGE: Creazione e Popolamento 4 operazioni fondamentali Creazione della directory che ospiterà il package es: C:\MyPackages\P1\ Concatenazione della root con la variabile di ambiente CLASSPATH es: SET CLASSPATH=c:\jdk1.1\lib\classes.zip;c:\MyPackages; Creazione del file sorgente con la definizione della classe preceduta dall istruzione: package pkg1[.pkg2] [.pkgn] es: (file Point.java) package P1; public class Point { int x; int y; } Compilazione del file sorgente e copia del file.class nella directory definitiva: es: c:\copy Point.class c:\mypackages\p1

26 Package e classi predefinite Gestione delle stringhe (java.lang) String StringBuffer Scrittura e lettura (java.io) Input e Output Stream Object Serialization Random Access File Accesso alle risorse e proprietà del sistema (java.lang) System Accesso alla rete (java.net) InetAddress Socket ServerSocket

27 String Definizione: Un oggetto di tipo String è una stringa costante (più economico di StringBuffer) Creazione: Esplicita: tramite il costruttore polimorfo String() es: String S=new String( parola ); String S=new String(); Implicita: quando il compilatore incontra una serie di caratteri delimitati da virgolette crea un oggetto di tipo String a cui assegna la stringa individuata. es: String S= parola ; è uguale a String S=new String( parola ); Metodi principali: lenght(): ritorna la lunghezza della stringa (es: S.lenght()=6) charat(int i): ritorna il carattere in posizione i-esima (es: S.charAt(3)= r ) indexof(int char): ritorna l indice della 1 occorrenza di char (es: S.indexOf( o )=4) lastindexof(int char): come sopra ma per l ultima occorrenza di char substring(int da; int a): ritorna una sottostringa (es:s.substring(2,4)= ro ) Operatore di concatenazione: + es: String S= prova + di + concatenazione ;

28 StringBuffer Definizione: Un oggetto di tipo StringBuffer è una stringa variabile nel contenuto e nella dimensione Creazione: tramite i costruttori StringBuffer() StringBuffer(int) StringBuffer(String) es: StringBuffer S=new StringBuffer( parola ); Metodi: oltre ai metodi definiti nella classe String e all operatore di concatenazone (+) definisce i seguenti metodi polimorfi per la manipolazione di stringhe: append(char c) aggiunge in coda il carattere c (es: S.append( a ); ) insert(int offset,char c) inserisce in posizione offset+1 il carattere c setcharat(int pos,char c) sovrascrive il carattere in posizione pos con c capacity() restituisce la quantità di spazio allocato setlenght(int lenght) imposta la dimensione della stringa a lenght

29 Esempio di uso di String e StringBuffer public class ReverseString { public static String reverseit(string source) { int i, len = source.length(); StringBuffer dest = new StringBuffer(len); for (i = (len - 1); i >= 0; i--) dest.append(source.charat(i)); return dest.tostring(); } }

30 Lettura e Scrittura di dati Astrazione su sorgente e destinazione dei dati: stream di input e stream di output Algoritmi di lettura e scrittura standard Lettura Scrittura apertura dello stream di input apertura dello stream di output while ci sono dati da leggere while ci sono dati da scrivere leggi scrivi chiusura stream chiusura stream Il package java.io contiene una collezione di classi che implementa il concetto di stream e supporta gli algoritmi mostrati sopra Gli stream possono essere suddivisi per tipo di dato: stream di caratteri (16 bit), stream di byte (8 bit) funzionalità: data sink stream (durante il transito i dati non sono processati) processing stream (i dati vengono processati es: bufferizzazione)

31 Stream di caratteri Le classi astratte Reader e Writer forniscono le API e una parziale implementazione di stream di caratteri di input e output Le sottoclassi di Reader e Writer implementano stream specializzati in bianco: processing stream in grigio: data sink stream

32 Stream di caratteri: Classi Data Sink Stream fondamentali CharArrayReader, CharArrayWriter: lettura e scrittura in memoria FileReader, FileWriter: lettura e scrittura su File PipedReader, PipedWriter: Implementano le componenti input e output di una Pipe. Le pipe sono utilizzate per la comunicazione tra thread. PipedReader e PipedWriter sono collegati o tramite costruttori o tramite il metodo connect. Processing Stream fondamentali BufferedReader, BufferedWriter: lettura e scrittura bufferizzata riduce gli accessi aumenta l efficienza LineNumberReader: lettura bufferizzata tenendo traccia delle linee. Possiede il metodo ReadLine() per leggere linea per linea

33 Stream di caratteri: esempio import java.io.*; public class Copia { // questo programma copia il file input.txt sul file output.txt public static void main(string[] args) throws Exception { File inputfile = new File("input.txt"); // Tramite File si può accedere alle proprietà File outputfile = new File("output.txt"); // del file es: dimensione, protezioni, ecc. FileReader in = new FileReader(inputFile); // l oggetto in ora è uno stream di input FileWriter out = new FileWriter(outputFile); // associato al file inputfile BufferedReader inb=new BufferedReader(in); //l oggetto inb è uno stream di input BufferedWriter outb=new BufferedWriter(out); // bufferizato a partire da in } } int c; while ((c = inb.read())!= -1) outb.write(c); inb.close(); outb.close();

34 Stream di byte Le classi astratte InputStream e OutputStream forniscono le API e una parziale implementazione di stream di byte di input e output Le sottolassi di InputStream e OutputStream implementano stream di byte specializzati in bianco: processing stream in grigio: data sink stream

35 Stream di byte: Classi Funzioni analoghe alle classi che implementano stream di char tranne che per le classi ObjectOutputStream, ObjectInputStream Queste permettono di serializzare un oggetto ovvero di codificarlo come stream di bytre per poi salvarlo o trasmetterlo via rete. Es: Salvataggio su file di due oggetti FileOutputStream out = new FileOutputStream( Tempo"); ObjectOutputStream s = new ObjectOutputStream(out); s.writeobject( Oggi"); s.writeobject(new Date()); // Scrive nel file Tempo 2 oggetti: la stringa Oggi s.flush(); // ed un oggetto di tipo Date() Es: Recupero di due oggetti salvati su un file FileInputStream in = new FileInputStream( Tempo"); ObjectInputStream s = new ObjectInputStream(in); String today = (String)s.readObject(); // Gli oggetti vengono letti dal file Tempo Date date = (Date)s.readObject();

36 Random Access File La classe RandomAccessFile: Consente la lettura e la scrittura di file ad accesso casuale. Es: RandomAccessFile F=new RandomAccessFile( input.txt, r ); // lettura RandomAccessFile F=new RandomAccessFile( input.txt, rw ); // lettura e scrittura Supporta il concetto di file pointer per il mantenimento della posizione corrente nel file. Il file pointer è l offset in byte dall inizio del file Per il posizionamento del file pointer fornisce i metodi: skipbytes(int n) fa avanzare il file pointer di n byte seek(long pos) imposta il file pointer alla posizione pos getfilepointer restituisce il valore del file pointer

37 System Fornisce una interfaccia alle risorse del sistema. Implementa lo standard input, output ed error Le sue variabili e i suoi metodi sono statici ( Non può essere istanziata) e vi si puo accedere solo tramite dot-notation System.<variabile>; System.<metodo>; Variabili in Standard input. Variabile di tipo InputStream out Standard output. Variabile di tipo PrintStream err Standard err. Variabile di tipo PrintStream L istruzione: System.out.println( una frase qualsiasi ); fornisce il display della stringa una frase qualsiasi Metodi currenttimemillis() fornisce in ms il tempo di sistema dal 1 Gennaio 1970 setin, setout, seterr riassegnano rispettivamente standard input, output ed error exit(int i) exit dall interprete java con return code = i

38 Accesso alla rete: TCP e UDP I computer collegati ad Internet comunicano tramite i protocolli TCP o UDP. TCP fornisce una comunicazione affidabile (ritrasmissionedei pacchetti persi). Tutti i pacchetti spediti dall applicazione mittente vengono ricevuti dall applicazione destinataria nell ordine con cui sono stati spediti. (Telnet, HTTP ) UDP fornisce una comunicazione non affidabile. Non garantisce che una volta spediti i pacchetti giungano a destinazione. (Applicazioni real-time, audio, video ) L affidabilità di TCP si paga con una maggiore durata complessiva della comunicazione

39 Accesso alla rete: Socket Il protocollo IP definisce l indirizzamento dei computer collegati ad Internet. Ad ogni computer è univocamente associato un indirizzo IP formato da 4 byte (es: ) Ogni computer rende disponibili un certo numero di porte ( ) usate dalle applicazioni per trasmettere o ricevere dati Applicazioni diverse che girano contemporaneamente sullo stesso computer devono collegarsi ( effettuare un bind ) a porte diverse Un Socket identifica una porta su un dato computer ed è formato da Indirizzo IP del computer e numero di Porta

40 Accesso alla rete: le classi del package java.net La classe InetAddress Definizione: Un oggetto di questo tipo è un Indirizzo IP Creazione:. La classe InetAddress non possiede costruttori publici ma dei metodi factory (metodi static che ritornano un istanza dell oggetto). Es: // Ad Address viene assegnato l indirizzo della macchina locale InetAddress Address = InetAddress.getLocalHost(); // Ad Address viene assegnato l indirizzo IP del sito InetAddress=InetAddress.getByName( ); Metodi principali: gethostname: restituisce l indirizzo mnemonico (es: getaddress: restituisce l indirizzo numerico (es: )

41 Accesso alla rete: le classi del package java.net La classe Socket Definizione: Socket viene usata per la creazione di un Socket TCP da una applicazione client. Creazione: Socket(String host, int port) crea un socket connettendo la macchina locale alla macchina host e alla porta port Socket(InetAddress address, int port) Metodi principali: getinputstream() restituisce l InputStream relativo a questo Socket getoutputstream() restituisce l OutputStream relativo a questo Socket

42 Accesso alla rete: le classi del package java.net La classe ServerSocket Definizione: ServerSocket viene usata per la creazione di un Socket TCP da una applicazione Server che rimane in ascolto di richieste di connessione da parte dei Client) Creazione: ServerSocket(int port) crea un socket per il server sulla porta port ServerSocket(int port, int timeout) crea un socket per il server aspettando al massimo timeout millisecondi che la porta si liberi Metodi: accept() la chiamata a questo metodo è bloccante: l applicazione rimane in attesa di richieste di connessioni al socket. Il metodo restituisce il Socket su cui è stata accettata la connessione.

43 Esempio di comunicazione Client/Server LAN del DIS (Via Salaria) LAN del CNR (Via Labicana) Internet disparc10.dis.uniroma1.it CLIENT.CLASS SERVER.CLASS sunshine.iasi.rm.cnr.it

44 Esempio di comunicazione Client/Server: il programma client import java.lang.*; import java.net.*; import java.io.*; /* IL PROGRAMMA CLIENT INVIA OGNI LINEA DI TESTO DIGITATA DALL UTENTE AL PROGRAMMA SERVER */ class client { public static void main(string argv[]) throws Exception { InetAddress Address=InetAddress.getByName("sunshine.iasi.rm.cnr.it"); Socket s = new Socket(Address,5200); PrintWriter out = new PrintWriter(s.getOutputStream(), true); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String userinput; while ((userinput = stdin.readline())!= null) out.println(userinput); s.close(); stdin.close(); out.close(); } }

45 import java.lang.*; import java.net.*; import java.io.*; // IL PROGRAMMA SERVER STAMPA LE LINEE DI TESTO RICEVUTE DAL CLIENT class server { public static void main(string argv[]) throws Exception { ServerSocket acceptsocket = new ServerSocket(5200); while(true) { Socket s=acceptsocket.accept(); // attesa di una richiesta di connessione }} Esempio di comunicazione Client/Server: il programma server BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream())); String line; while ((line = input.readline())!= null) System.out.println(line); input.close(); s.close(); }

Input/Output in Java

Input/Output in Java Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile

Dettagli

Architettura Client-Server

Architettura Client-Server Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

Parte II: Reti di calcolatori Lezione 12

Parte II: Reti di calcolatori Lezione 12 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Applicazioni web. Parte 5 Socket

Applicazioni web. Parte 5 Socket Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 5 Michele Tomaiuolo tomamic@ce.unipr.it Protocolli Internet I computer

Dettagli

Jav@Lab Il linguaggio Java I file sequenziali

Jav@Lab Il linguaggio Java I file sequenziali Jav@Lab Il linguaggio Java I file sequenziali Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO JAVA JAVA Introduzione INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) Cross Platform Web Dinamico Versioni e IDE DIAPOSITIVA 2 1 JAVA La programmazione orientata agli oggetti JAVA La programmazione OOP Nascita

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Programmare con le Socket TCP in java. 2: Application Layer 1

Programmare con le Socket TCP in java. 2: Application Layer 1 Programmare con le Socket TCP in java 2: Application Layer 1 Il Client contatta il server Il Server: Il processo server è sempre attivo in attesa di connessioni (demone) Crea una socket per accettare la

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP D (FKR&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: il server attende una connessione da parte del client (su MDYDQHW6HUYHU6RFNHW), usa la

Dettagli

Parte II: Reti di calcolatori Lezione 10

Parte II: Reti di calcolatori Lezione 10 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Sviluppo Web Autore: Alessio Bernardo Revisione: 1 Data: 23/05/13 Titolo: Sviluppo piattaforma e-learning e sviluppo siti web File: Documentazione tecnica Sito:

Dettagli

Laboratorio di reti I: Il pacchetto java.net

Laboratorio di reti I: Il pacchetto java.net Laboratorio di reti I: Il pacchetto java.net Stefano Brocchi brocchi@dsi.unifi.it 5 novembre, 2008 Stefano Brocchi Laboratorio di reti I: Il pacchetto java.net 5 novembre, 2008 1 / 43 Concetti di base

Dettagli

Introduzione ai (Java) socket

Introduzione ai (Java) socket Introduzione ai (Java) socket Ivan Lanese slides originali di Tassi, Gessa, Ghini Dipartimento di Scienze dell informazione April 14, 2010 Outline Argomenti reti di calcolatori livelli OSI internet protocol

Dettagli

Esonero del corso di Programmazione a Oggetti

Esonero del corso di Programmazione a Oggetti Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio

Dettagli

4 GLI ARRAY E LE STRINGHE

4 GLI ARRAY E LE STRINGHE 13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 8 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Il Livello di Trasporto: 1 L utente non ha il controllo sulla rete; non può risolvere i problemi di un servizio inadeguato

Dettagli

Flussi, lettori e scrittori

Flussi, lettori e scrittori Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura

Dettagli

Lettura e scrittura - Stream

Lettura e scrittura - Stream Lettura e scrittura - Stream Obiettivo(fine della lezione): leggere/scrivere da/su file (e quindi verso qualsiasi dispositivo)! Tipi di stream " Stream di caratteri " Stream di byte! Classi astratte che

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata. Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto

Dettagli

Java Socket LSO 2008

Java Socket LSO 2008 Java Socket LSO 2008 Modello Client/Server Richiesta di servizio Risposta Il cosiddetto lato client, effettua la richiesta di esecuzione di un servizio. La sua controparte, il lato server, effettua l esecuzione

Dettagli

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; } Il Linguaggio Java Le interfacce La classe BankAccount public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double initialbalance) { balance = initialbalance; public void deposit(double

Dettagli

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto

Dettagli

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java. Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Input e Output in Java

Input e Output in Java Input e Output in Java Stream Redirecting Scomposizione dell input Uso di file Set di caratteri 1 Inserimento dati e test Riconsideriamo la versione iniziale della classe DataSet usata per illustrare le

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Networking. Mauro Migliardi Ph. D.

Networking. Mauro Migliardi Ph. D. Software Architectures Networking Mauro Migliardi Ph. D. A word of wisdom The word networking strikes fear in the hearts of many programmers. Fear not! Using the networking capabilities provided in the

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: cristian.delfabbro@uniud.it telefono: 0432 558676

Dettagli

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)

Dettagli

Programmare con le Socket TCP

Programmare con le Socket TCP Programmare con le Socket TCP Il Client deve contattare il server Il processo server deve già essere attivo Il server deve aver creato una socket che accetta la connessione del client ( socket di benvenuto

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

Dettagli

Programmare con le Socket

Programmare con le Socket Programmare con le Socket Corso Reti ed Applicazioni Lab Sockets pag. 1 Programmare con le Socket TCP Il Client deve contattare il server - Il processo server deve già essere attivo - Il server deve aver

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Operazioni di scrittura e lettura con periferici in linguaggio Java

Operazioni di scrittura e lettura con periferici in linguaggio Java Operazioni di scrittura e lettura con periferici in linguaggio Java Flussi logici (stream) di output Operazione di scrittura a monitor con uso di stream (flusso logico) di output RAM System.out.println

Dettagli

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket rappresentano il

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

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

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Introduzione al linguaggio Java. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++.

Introduzione al linguaggio Java. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++. Introduzione al linguaggio Java Cosa c è di nuovo in Java? Java ed Internet. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++. Dove trovare informazioni?

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione 15. Java Remote Method Invocation (3) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il design pattern

Dettagli

Internet Socket e RMI

Internet Socket e RMI Internet Socket e RMI Programmazione in Rete e Laboratorio Architettura / Un servizio presso un computer-server è identificato dai seguenti valori: IP (32 bit, presto 128 bit) (16 bit) Servizi telnet TCP

Dettagli

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II PROF. G. BONGIOVANNI 0) INTRODUZIONE AL LINGUAGGIO JAVA PER PROGRAMMATORI C++...2 0.1) Caratteristiche principali... 2 0.1.1)

Dettagli

WINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

WINDOWS95. 1. Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni WINDOWS95 1. Avviare Windows95 Avviare Windows95 non è un problema: parte automaticamente all accensione del computer. 2. Barra delle applicazioni 1 La barra delle applicazioni permette di richiamare le

Dettagli

Java per programmatori C++

Java per programmatori C++ 1 of 10 Java per programmatori C++ autore: Matteo Lucarelli ultima versione su: matteolucarelli.net Architettura e concetti generali Cosa scaricare ed installare Tutti gli strumenti per la programmazione

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito.

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito. SQL Server 2008 Introduzione all uso di SQL Server 2008 Dutto Riccardo http://dbdmg.polito.it SQL Server 2008 Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL Server Business

Dettagli

Introduzione. Java. G. Prencipe prencipe@di.unipi.it. accesso alla rete -- TCP

Introduzione. Java. G. Prencipe prencipe@di.unipi.it. accesso alla rete -- TCP Java accesso alla rete -- TCP G. Prencipe prencipe@di.unipi.it Introduzione Storicamente, programmare su un sistema di macchine distribuite è sempre stato complesso Il programmatore doveva conoscere diversi

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Introduzione. Java. Streams. Streams

Introduzione. Java. Streams. Streams Java il sistema di I/O G. Prencipe prencipe@di.unipi.it Introduzione La gestione del sistema di I/O è una parte fondamentale di qualsiasi linguaggio di programmazione In questa lezione approfondiremo la

Dettagli

Lettura e scrittura di file di dati input/output

Lettura e scrittura di file di dati input/output Lettura e scrittura di file di dati input/output Lettura e scrittura da disco Molto semplice in C++: si fa esattamente come se fosse una tastiera (se sto leggendo da disco) o lo schermo (se sto scrivendo

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel

Dettagli

Corso Android New Edition Corso Online Programmatore Android New Edition

Corso Android New Edition Corso Online Programmatore Android New Edition Corso Android New Edition Corso Online Programmatore Android New Edition Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso di Programmatore

Dettagli

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Sincronizzazione con Java

Sincronizzazione con Java Sincronizzazione con Java Corse critiche e sincronizzazione Java implementa un meccanismo simile al monitor per garantire la sincronizzazione fra thread Ogni oggetto ha un lock associato ad esso Nelle

Dettagli

DNS: Domain Name System

DNS: Domain Name System DNS: Domain Name System Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP (32 bit) - usato per instradare i pacchetti nome, per es., mario.lit.unicas.it - usati

Dettagli

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124 UnicastRemoteObject Java RMI fornisce diverse classi base per definire server remoti: UnicastRemoteObject < RemoteServer < RemoteObject dove A < B significa che A è una sottoclasse di B. UnicastRemotObject

Dettagli

Protocolli Internet. Canale di comunicazione. canale di comunicazione

Protocolli Internet. Canale di comunicazione. canale di comunicazione Network Programming Java Programming Language Livelli di middleware Applicazioni e servizi RMI send, receive, read, write serializzazione UDP e TCP Rete 2 Protocolli Internet Un processo è definito da

Dettagli

appunti delle lezioni Architetture client/server: applicazioni server

appunti delle lezioni Architetture client/server: applicazioni server Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante

Dettagli

PROGRAMMARE IN JAVA VOLUME II

PROGRAMMARE IN JAVA VOLUME II Graziano Frosini Alessio Vecchio PROGRAMMARE IN JAVA VOLUME II PROGRAMMAZIONE DI RETE INTERFACCE GRAFICHE STRUTTURE DATI JVM JVM SOCKET SOCKET PROGRAMMARE IN JAVA Volume II POGRAMMAZIONE DI RETE INTERFACCE

Dettagli

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Corsi di Reti di Calcolatori (Docente Luca Becchetti) NOT : le soluzioni proposte sono volutamente sintetiche. Lo studente dovrebbe fare uno sforzo per risolvere i quesiti in modo autonomo, espandendo

Dettagli

Lab 1: Java Multithreading

Lab 1: Java Multithreading Dept. of Computer Science Lab 1: Java Multithreading Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Outline Programmazione multithreading

Dettagli

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007 Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)

Dettagli

IL LINGUAGGIO JAVA: CARATTERISTICHE

IL LINGUAGGIO JAVA: CARATTERISTICHE 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,

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Scope e visibilità per classi

Scope e visibilità per classi Scope e visibilità per classi Packages Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Packages Package:

Dettagli

Introduzione al NATTING

Introduzione al NATTING Introduzione al NATTING I Router CISCO sono in grado di svolgere funzioni proprie di un firewall, in particolare possono effettuare la trasformazione degli indirizzi IP PRIVATI usati dai pc della rete

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

Telematica II 15. Esercitazione/Laboratorio 5

Telematica II 15. Esercitazione/Laboratorio 5 Protocollo FTP FTP Client TCP control connection (port 21) FTP Server Telematica II 15. Esercitazione/Laboratorio 5 File System locale TCP data connection (port( 20) File System remoto La connessione di

Dettagli

Corso di Reti di Calcolatori. java.net.url

Corso di Reti di Calcolatori. java.net.url Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (2 a parte) paolo.trunfio@deis.unical.it 1 java.net.url URL (String spec) crea un oggetto URL

Dettagli

I database. Introduzione alla teoria delle basi di dati

I database. Introduzione alla teoria delle basi di dati I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

5 - I package di base in Java

5 - I package di base in Java 5 - I package di base in Java Vittorio Scarano Algoritmi e Strutture Dati: Algoritmi Distribuiti Università degli Studi di Salerno Organizzazione della lezione Obiettivo: Presentare gli strumenti di base

Dettagli

Corso di Reti di Calcolatori

Corso di Reti di Calcolatori Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

DNS: Domain Name System

DNS: Domain Name System DNS: Domain Name System Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP (32 bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

Corso di Reti di Calcolatori. Datagrammi

Corso di Reti di Calcolatori. Datagrammi Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che

Dettagli

Programmazione Java (Applicazioni e Applet )

Programmazione Java (Applicazioni e Applet ) Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.

Dettagli

Introduzione al linguaggio Java

Introduzione al linguaggio Java Introduzione al linguaggio Java Corso di Gestione della Conoscenza d Impresa Prof. Giovanni Semeraro Dott. Pasquale Lops Dipartimento di Informatica Università degli Studi di Bari A.A. 2006/2007 Credits

Dettagli

Java. Programmazione orientata agli oggetti

Java. Programmazione orientata agli oggetti Java Programmazione orientata agli oggetti Nella programmazione orientata agli oggetti (OOP), un applicazione consiste di una collezione di oggetti interagenti, ognuno dei quali comprende una struttura

Dettagli

Applicazioni distribuite

Applicazioni distribuite Applicazioni distribuite Maurizio Cozzetto 1 agosto 2009 Un pò di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli