© 2010 - CEFRIEL Alcune API di base nel JDK J2SE Docente: Gabriele Lombardi

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

Programmazione in Java
MAPPE CONCETTUALI Sergio Capone ITP
Applet Java.
Commenti C#.
Java Enterprise Edition (JEE)
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
29 febbraio 2008 Progettare tipi di dato astratti.
MultiSet, Liste Ordinate
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Corso JSF Java Server Faces Mauro Sanfilippo 02/09/2010.
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
Programma Dott. Ing. Leonardo Rigutini
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Analisi dettagliata e design B. Pernici M.G. Fugini AA
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Introduzione al linguaggio Java
Ranking di pagine Web Ilaria Bordino, Yahoo! Research Barcelona
Ranking di pagine Web Ilaria Bordino, Yahoo! Research Barcelona Ida Mele, Sapienza Universita di Roma.
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce.
Algoritmi e Strutture Dati
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
Primi esempi di interfacce grafiche con Android
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Concetti di Object Orientation
Docente: Gabriele Lombardi
© CEFRIEL Ricettario dei principali pattern GoF Docente: Gabriele Lombardi
© CEFRIEL Cenni su XML in Java Docente: Gabriele Lombardi
© CEFRIEL Java: il linguaggio Docente: Gabriele Lombardi
© CEFRIEL Concorrenza (cenni) Docente: Gabriele Lombardi
Sistemi Operativi GESTIONE DEI PROCESSI.
JAVA Security. Jdk1.0 sandBox Ilo sistema di sicurezza JAVA si basa sulla struttura della seandBox. In base a tale politica tutte le applicazioni eseguite.
Elaborazione di Franco Grivet Chin
Introduzione ad ASP.net
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
Java Collections.
Introduzione alla modellazione di sistemi interattivi
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Java Contardi Carlo A.S. 2008/09.
Creare pagine web Xhtlm. Struttura di una pagina.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A Package.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Programma di Informatica Classi Prime
Esercizi Design pattern
INTRODUZIONE A JAVASCRIPT
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Analisi dettagliata e design
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Eprogram informatica V anno.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
Corso di Algoritmi e Strutture Dati con Laboratorio Tipi di dato pila e coda.
Transcript della presentazione:

© CEFRIEL Alcune API di base nel JDK J2SE Docente: Gabriele Lombardi

© CEFRIEL The present original document was produced by CEFRIEL and the Teacher for the benefit and internal use of this course, and nobody else may claim any right or paternity on it. No right to use the document for any purpose other than the Intended purpose and no right to distribute, disclose, release, furnish or disseminate it or a part of it in any way or form to anyone without the prior express written consent of CEFRIEL and the Teacher. © copyright Cefriel and the Teacher-Milan-Italy-23/06/2008. All rights reserved in accordance with rule of law and international agreements.

© CEFRIEL Sommario SLIDECONTENUTO java.lang.** Features del linguaggio.. nel linguaggio stesso! java.io.* Streams e Input/Output. java.nio.** Un nuovo strumento per lI/O. java.util.* Un tour dei tool. java.beans.* Cosa sono i fagionlini (magici)? java.lang.reflect.* Manipolare la struttura interna degli oggetti. java.applet.* Codice attivo lato client web… senza JavaScript!

© CEFRIEL Classi base Tipi di dato builtin (e boxed): –stringhe.. gestione particolare; –boxed-types: * extends Number (e non solo). Concetti e interfacce: –command-pattern con Runnable; –iterators con Iterable; –eccezioni con la classe Throwable; –Comparable, Cloneable, … Processi e thread: –gestione dei thread (Thread); –gestione dei progessi (Process); –il runtime della JVM (Runtime); –problemi di concorrenza. Class, ClassLoader e Compiler: –un minimo di reflection si usa sempre! Containers & Iterators true0.1 Text2 Elaborazione 1Elaborazione 2 Thread principale fork join Thread principale

© CEFRIEL IO e streams Stream come astrazione per lIO: –uno stream è un canale di Input oppure Output; –supporta uninterfaccia indipendente dal behavior; –può essere composto con altri stream; –permette la scrittura/lettura di dati binari. Reader e Writer: –sono lastrazione specifica per il testo; –permettono di lavorare con un minimo di formattazione; –permettono di gestire lencoding. stream dati stream storage Testo Writer storage Proviamoli!!! vedere 02_BaseAPIs\IO con: Streams: esempi base Serializables: esempio di serializzazione

© CEFRIEL NIO: destinazione efficienza! Esempio di problemi di efficienza: –si consideri lo stack TCP/IP … –… problemi di copia ripetuta dei dati nei buffer. Soluzione: –metafora del carrellino e della miniera; –miniere in fila, carrellino ribaltabile; –passaggio di riferimenti al posto della copia dei dati. Altre utili funzionalità: –encoding/decoding dei dati (testo); –viste multiple di un buffer; –giochiamoci un po! vedere 02_BaseAPIs\NIONostre con: esempio di utilizzo di view-buffers vedere 02_BaseAPIs\Altre\NIO con: esempi vari by Sun Microsystems

© CEFRIEL java.uti.*: Collections Algoritmi + strutture dati = programmi: –problema: astrarre (e fornire) gli strumenti per manipolare le strutture dati più comuni: collezioni, liste, code, insiemi, mappe, … Collection, List, Queue, Set, Map, … –problema: scegliere limplementazione desiderata: ad esempio, scegliere una lista: –LinkedList, Stack, Vector, ArrayList,CopyOnWriteArrayList; scegliere una mappa: –HashMap, Hashtable, IdentityHashMap, LinkedHashMap, TreeMap, WeakHashMap, ConcurrentHashMap, EnumMap. Navigare in una Collection? –Iterator, ListIterator, Enumeration. Altre classi interessanti: –Properties, StringTokenizer, Arrays, Collections, Abstract*. vedere 02_BaseAPIs\ Collections con: esempi con Set, Stack, List; esempio di utilizzo degli iteratori

© CEFRIEL java.util.*: gestire tempo e formattazione Classi di gestione del tempo: –tipi temporali: Date, TimeZone, SimpleTimeZone; –strumenti per lavorare con i giorni: Calendar, GregorianCalendar. Classi per schedulare operazioni: –Timer, TimerTask. Classi per la formattazione di testo: –Formatter, Scanner; Classi per linternazionalizzazione: –Locale, ResourceBundle; –si veda java.text.*. Proviamoli!!! vedere 02_BaseAPIs\ Timers con: uso classe Timer uso classe Date

© CEFRIEL java.util.** java.util.prefs.* –strumenti per laccesso a semplici file di configurazione contenenti preferenze di esecuzione; –formati supportati: classico e XML. java.util.logging.* –strumenti per la generazione e gestione di messaggi di log. java.util.concurrent.* –strumenti per affrontare problematiche di concorrenza. java.util.zip/jar.* –creazione/analisi di file compressi. java.util.regex.* –espressioni regolari Perl-like. java.text.* –analisi/generazione di messaggi di testo formattato.

© CEFRIEL JavaBeans JavaBeans: –semplici POJO con: costruttore di default: –senza parametri affinché possano essere istanziati; proprietà: –rappresentate da metodi getter e setter; –una proprietà prop deve avere: »un getter public type getProp(); se è read; »un setter public void setProp(type val); se è write; –rappresentano: entità reali a cui sono associate proprietà; –possono essere gestiti: tramite le API contenute in java.beans.*; –vengono utilizzati: per moltissimi scopi (essendo generali); per la descrizione di entità grafiche in Swing; per la definizione di Entity beans (in JPA).

© CEFRIEL java.applet.* Cosa sono: –estensioni della classe java.applet.Applet; –componenti grafiche inseribili ovunque … … non solo in una pagina web!!! –(infatti estendono java.awt.Panel) –applicazioni da embeddare in altre applicazioni. A cosa servono: –per essere incluse in unaltra applicazione … … come un browser! Si usano ancora? –poco e quasi no; –limitate per problemi di sicurezza! Vediamo qualche esempio già pronto! vedere 02_BaseAPIs\Altre\Applet

© CEFRIEL java.lang.reflect.* Scopo: –permettere a codice scritto in Java di manipolare entità semantiche del linguaggio stesso: classi, metodi, attributi, … –fornisce uno strumento di meta-programmazione formidabile e fondamentale … e usatissimo in pratica! Caratteristiche: –flessibilissimo … entro il possibile (Generics?); –non particolarmente efficiente: meno rispetto al codice nativo; non drammatico … ma da non usare per applicazioni di tipo real-time o time-critical. Vediamo qualche esempio già pronto! vedere 02_BaseAPIs\Reflection con: uso della reflection; esempio giocattolo di astrazione di entity persistenti utilizzo massiccio di collections (Map)

© CEFRIEL Esempi già esistenti Consiglio vivamente di: –analizzare degli esempi già esistenti: cercare di identificare i pattern e le decisioni architetturali importanti; isolare le singole collaborazioni per poterle analizzare separatamente (anche come codice); –provare a sviluppare dei propri esempi complessi: partire dallidea generale e spezzarla in sottoproblemi; identificarne una parte relativamente piccola; descrivere in UML i casi duso della parte; identificare le classi che entrano in gioco e le loro collaborazioni; scegliere una collaborazione alla volta ed implementarla creando o modificando le classi implicate (refactoring, si veda Fowler). Guardare ad esempio: –02_BaseAPIs\Altre\SimulationEngine framework di simulazione di apparati (non completo); –02_BaseAPIs\Altre\DMS framework di gestione documantale (beta-version); –doc. in UML tramite ArgoUML o Visio: guardare nella cartella Docs; scaricare ed installare ArgoUML, è open-source. scaricare il visualizzatore Visio gratuito.