Breve introduzione a Java (2) (ed alla programmazione ad oggetti) Marco Piastra
Introduzione a Java
Transcript of Introduzione a Java
Introduzione Storica
Un linguaggio si afferma quando affronta e risolve i limiti di quelli già esistenti:
Programmazione binaria da pannello
Assembler
BASIC, COBOL, FORTRAN
C
C++
Java
Sgomberiamo il campo da dubbi
Cosa non è Java:
Non è un linguaggio per “animare” il WWW
Non è una versione ridotta del C++
Non è lo strumento che segnerà la fine di Microsoft
Javascript non c’entra niente con Java
Cosa è Java
Un moderno linguaggio di programmazione OO
Orientato alla programmazione di applicazioni “network-centric”
Evoluzione di JavaNato per programmare elettrodomestici
nome originale (1991-1995): OAK
Si è affermato per le sue caratteristiche OO e per la mobilità del codice
Applet: esecuzione lato client di applicazioni scaricate da Internet
Con il passare del tempo si sta specializzando sempre più nella programmazione lato server.
Oggi esiste un gran numero di tecnologie basate su Java.
Programmare in Java
Il sito ufficiale di java è:
www.java.sun.com
Oggi, sono disponibili vari tipi di “prodotti”:
Java SE (Java Standard Edition)
Java EE (Java Enterprise Edition)
Java ME (Java Micro Edition)
L’acronimo di SDK è Software Development Kit
L’acronimo di JRE è Java Runtime Environment
Caratteristiche di Java
Semplice
Sicuro
Portabile
Object Oriented
Robusto
Multithreaded
Indipendente dall’architettura
Interpretato
Con prestazioni elevate
Distribuito
Economico
Semplice
Concepito affinché il programmatore professionista potesse impararlo facilmente e utilizzarlo in maniera produttiva
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
Object OrientedProgettato con l’intenzione di essere un linguaggio ad
oggetti. Conseguenza: PulitoUtilizzabile Pragmatico
Mette d’accordo: Puristi: “Tutto è un oggetto” Pragmatisti: “Stai lontano da me”
Base dell’accordo:Modello ad oggetti semplice e facile da estendere Tipi semplici (es. interi), considerati come non-oggetti a
prestazioni elevate
Robusto
Rilevamento errori e typechecking 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)
Distribuito e Portabile
Incorpora molte funzionalità per l’accesso alla rete (TCP/IP)
Mette a disposizione un pacchetto per le invocazioni di metodi remoti (RMI)
Il compilatore produce codice di tipo byte-codeinterpretato da una virtual-machine e indipendente dall’architettura HW
Lo stesso codice gira su piattaforme Unix, Microsoft e Macintosh ed altro
InterpretatoInterfacce
Classi AstratteClassi e Programmi
Codice Sorgente: file.java
Codice ByteCode: file.class
JAVA VIRTUAL MACHINE
MacintoshUnixWindows
COMPILAZIONE
ESECUZIONE
Sicuro
Rilevamento errori e typechecking a tempo di compilazione e di esecuzione
Il sistema run-time Java emula una macchina virtuale che interpreta il bytecode
Possibilità di impedire l’esecuzione di istruzioni pericolose
Introduzione delle Applet per rendere sicuri programmi scaricati da Internet