JDK Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577233606

Slides:



Advertisements
Presentazioni simili
Teoria e Tecniche del Riconoscimento
Advertisements

IL PACKAGE java.io Il package java.io definisce quattro
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Interfacce Java.
Lez. 10 (10/11) - PBElementi di Programmazione1 Lezione 10 Funzioni e Moduli Macro Analisi del flusso Esercizi.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 7 Programmazione con metodi e classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
L'interfaccia socket in Java
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Lettura e scrittura - Stream
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
© CEFRIEL Cenni su XML in Java Docente: Gabriele Lombardi
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Array Ricerca Ordinamento Fusione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
Streams e Input/output
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Programmazione distribuita in Java
Java Collections.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Componenti dell’architettura Oracle
AN Fondam98 Input Output Input Output I files standard di I/O.
1 Programmazione grafica 1 Daniele Marini. 2 Linguaggio di riferimento OpenGL: libreria di procedure che realizza un API (application programmers interface)
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Concord A tool for the analysis and concordances of the terminological constituents P. Plini, N. Mastidoro* * - Èulogos, Rome Institute for Atmospheric.
Palermo, may 2010 F.Doumaz, S.Vinci (INGV-CNT- Gruppo di telerilevamento)
Un esempio: Registrazione e lettura di dati in un file
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Funzioni stringhe. chr Restituisce il carattere di un valore ascii dato. Per vedere lelenco dei codici ascii clicca QQQQ uuuu iiiiEsempio
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
Collection & Generics in Java
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
Fondamenti di informatica T-A Esercitazione 7 : Collezioni AA 2012/2013 Tutor : Domenico Di Carlo.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Esercitazione sull’ ordinamento 20 maggio 2003
Transcript della presentazione:

JDK Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff

Libreria standard JAVA Fornisce una grande varietà di classi per facilitare lo sviluppo di applicazioni Organizzata come una gerarchia di packages Disponibile il JavaDOC in rete: Vediamo le classi principali che potrebbero essere utili nello sviluppo di applicazioni

Gerarchia java.lang java java.util java.io java.text java.math java.awt javax.swing java.applet java.beans java.sql java.rmi java.net java.security javax javax.sqljavax.xml

java.lang Class Summary Boolean The Boolean class wraps a value of the primitive type boolean in an object. Byte The Byte class wraps a value of primitive type byte in an object. Character The Character class wraps a value of the primitive type char in an object. Double The Double class wraps a value of the primitive type double in an object. Float The Float class wraps a value of primitive type float in an object. Tratto dal javaDocjavaDoc

java.lang Class Summary Integer The Integer class wraps a value of the primitive type int in an object. Long The Long class wraps a value of the primitive type long in an object Math The class Math contains methods for performing basic numeric operations such as the elementary exponential, logarithm, square root, and trigonometric functions. StringThe String class represents character strings. System The System class contains several useful class fields and methods. ThreadA thread is a thread of execution in a program. Throwable The Throwable class is the superclass of all errors and exceptions in the Java language.

La classe Object Come già detto la classe Object è la classe root di tutte le classi Fornisce una serie di funzioni che normalmente devono essere sovrascritte (override) Vedere JavaDoc

Classi wrapper Come si vede esistono nel package molte classi che sembrano avere lo stesso nome dei tipi di dato semplici: Boolean, Double, Float, Integer, ecc … Queste classi sono dette classi wrapper e sono utilizzate per wrappare i tipi di dato semplice in classi: double indica una variabile che memorizza valori con virgola di tipo double; Double è un oggetto che rappresenta un double che ha particolari metodi per la lettura, la conversione dei double, ecc … Vedere il JavaDoc

Classe String La classe String rappresenta le stringhe di caratteri. Ogni parola, frase, documento è una stringa di caratteri. La classe String include metodi per esaminare i singoli caratteri, comparare stringhe, ricercare ed estrarre sottostringhe, portare tutto minuscolo o maiuscolo, concatenare ecc … JavaDoc

La classe math La classe Math mette a disposizioni funzioni matematiche statiche che possono essere quindi utilizzate senza necessità di istanziare oggetti di tipo Math: Fornisce anche due costanti statiche di tipo double : Vedere il JavaDoc double a=1.44; double b=3; double c=Math.sqrt(a); c=1.2 double p=Math.pow(a,b); p = 2,9859 Math.E numero di nepero (e=2,71) Math.PI pi greco (pi=3.14)

La classe System La classe System contiene alcune variabili e funzioni di sistema: Lo stdout, sterr e stdin sono variabili statiche di questa classe JavaDoc

Il package java.io Questo package fornisce classi per facilitare la lettura e scrittura di dati Lidea è che ogni operazione di Input/Output avviene tramite uno stream: oggetto che realizza un flusso di dati che possono essere letti o scritti Per facilitare operazioni più complesse il JDK mette a disposizione classi Reader e Writer: Le classi Reader si agganciano a stream di input e permettono la lettura dei dati Le classi Writer si agganciano a stream di output e permettono la scrittura di dati

I/O Lidea è quella di creare una pipeline tra stream ed operazione: InputStream->Reader->Lettura OutputStream->Writer->Scrittura Tale pipeline viene realizzata creando a cascata oggetti che prendono in ingresso gli oggetti a cui si devono agganciare: FileInputStream fis=new FileInputStream(c:\\prova.txt); InputStreamReader isr=new InputStreamReader(fis); String carattereletto=isr.read(); … isr.close(); fis.close();

I/O Per alcuni stream comuni le classi Reader e Writer hanno lo stream nascosto al loro interno: Per leggere più di un carattere alla volta è necessario utilizzare un BufferedReader che si aggancia ad un Reader: FileReader fis=new FileReader(c:\\temp\prova.txt); fis.read(); … fis.close(); FileReader fis=new FileReader(c:\\temp\prova.txt); BufferedReader br=new BufferedREader(fis); br.readLine(); … br.close(); fis.close();

Il package java.io Class Summary BufferedInputStream A BufferedInputStream adds functionality to another input stream-namely, the ability to buffer the input and to support the mark and reset methods. BufferedOutputStreamThe class implements a buffered output stream. BufferedReader Read text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines. BufferedWriter Write text to a character-output stream, buffering characters so as to provide for the efficient writing of single characters, arrays, and strings. File An abstract representation of file and directory pathnames. FileInputStream A FileInputStream obtains input bytes from a file in a file system. FileOutputStream A file output stream is an output stream for writing data to a File or to a FileDescriptor.

Il package java.io Class Summary FileReaderConvenience class for reading character files. FileWriterConvenience class for writing character files. InputStream This abstract class is the superclass of all classes representing an input stream of bytes. OutputStream This abstract class is the superclass of all classes representing an output stream of bytes. OutputStreamWriter An OutputStreamWriter is a bridge from character streams to byte streams: Characters written to it are encoded into bytes using a specified charset.charset PrintStream A PrintStream adds functionality to another output stream, namely the ability to print representations of various data values conveniently. PrintWriter Print formatted representations of objects to a text-output stream. ReaderAbstract class for reading character streams.

Il package java.io Class Summary StreamTokenizer The StreamTokenizer class takes an input stream and parses it into "tokens", allowing the tokens to be read one at a time. StringReaderA character stream whose source is a string. StringWriter A character stream that collects its output in a string buffer, which can then be used to construct a string. WriterAbstract class for writing to character streams.

I Thread Lesecuzione di una funzione di una classe è bloccante: prima di passare oltre è necessario attendere che la funzione sia terminata Quando i compiti da svolgere sono indipendenti è possibile eseguire una funzionalità in modalità nascosta: thread In java esistono due modalità per eseguire una funzionalità in modalità nascosta: La classe Thread La classe Runnable Tale soluzione può essere utilizzata per eseguire operazioni in parallelo

La classe Thread La classe Thread è una classe fornita nel JDK Per eseguire una funzionalità in modalità thread: 1. rendere la classe che implementa la funzionalità come classe derivata di Thread: 1. implementare la funzione run() della classe realizzando la funzionalità desiderata 1. In esecuzione, creare oggetti di quel tipo e avviarli in modalità thread utilizzando la funzione start(): Esempio e=new Esempio(); e.start(); public class Esempio exends Thread

La classe Runnable In realtà la classe Thread è una implementazione della classe Runnable E possibile creare un thread: 1. implementando linterface Runnable: 1. Implementando il metodo run() 2. In esecuzione passare la classe Runnable ad un oggetto Thread ed eseguire il metodo start(): public class Esempio implements Runnable Esempio e=new Esempio(); Thread T=new Thread(e); T.start();

Sincronizzazione di Thread Quando più thread accedono a funzioni o variabili condivise sussiste un problema di programmazione concorrente: synchronized Un metodo o una variabile vengono dichiarate synchronized: In tal modo si mette un semaforo per accedere a querl metodo o a quella funzione synchronized public void inserisci(String documento) { … inserimento del dato nella variabile condivisa … }

Java Generics (o template) Nella nuova versione del Java sono stati aggiunti i generics Se abbiamo bisogno di un insieme di Giocatori utilizzando la classe Vector del JDK, il Vector tratta i suoi elementi come Object Questo vuol dire che quando accediamo ad un elemento, esso è visto come un Object (la superclasse) ed è necessario un DownCasting per riottenere un oggetto Giocatroe e poter utilizzare tutte le variabili e le funzioni di tale classe. Vector V=new Vecotr(); V.add(new Giocatore(Leonardo,Rigutini); Giocatore G=(Giocatore)V.get(1);

Java Generics (o template) Il Cast (Giocatore)V.get(0) è molto noioso. Normalmente il programmatore sa che tipi di oggetti sono contenuti nel vettore. L'idea dei Generics è che il programmatore possa forzare un vettore a contenere oggetti di tipo Giocatore evitando così il cast. Le classi nel package java.util sono quasi tutte dei template: Vector, List, HashMap, Map, Tree, ecc... Vector V=new Vector (); V.add(new Giocatore(Leonardo,Rigutini); Giocatore G=V.get(1);

Il package java.util Questo package fornisce classi di utilità generale Le classi più importanti sono quelle che implementano le strutture dati dinamiche, timers e StringTokenizer: Le prime forniscono modi per memorizzare vettori, tabelle hash, liste, stack di dimensione variabili (dinamici) Le seconde forniscono classi per gestire il tempo nel codice Lultima invece fornisce una classe lettore di stringhe e permette di tagliare una stringa nei punti desiderati e quindi estrarre da un flusso continuo di parole dei tokens

Il package java.util Class Summary Collections This class consists exclusively of static methods that operate on or return collections. CurrencyRepresents a currency. Date The class Date represents a specific instant in time, with millisecond precision. HashMapHash table based implementation of the Map interface. HashSet This class implements the Set interface, backed by a hash table (actually a HashMap instance). Hashtable This class implements a hashtable, which maps keys to values. Random An instance of this class is used to generate a stream of pseudorandom numbers.

Il package java.util Class Summary Stack The Stack class represents a last-in-first-out (LIFO) stack of objects. StringTokenizer The string tokenizer class allows an application to break a string into tokens. Timer A facility for threads to schedule tasks for future execution in a background thread. TreeMap Red-Black tree based implementation of the SortedMap interface. TreeSet This class implements the Set interface, backed by a TreeMap instance. VectorThe Vector class implements a growable array of objects.