SlideShare a Scribd company logo
JAVA BASICS
Una breve introduzione
Ing. Franco Morelli
Le origini
Dalle origini a oggi
Breve storia
Java è un linguaggio di programmazione orientato agli oggetti sviluppato da
James Gosling nel 1991.
• Java, 20 maggio 1995, Sun World.
• Originariamente linguaggio di nome Oak.
• Si dice che il nome Java sia venuto dalle diverse persone coinvolte inquesto
progetto James Gosling, Arthur Van Goff e Andy Bechtolsheim.
• Nome cambiato in Java.
Breve storia
Java è un linguaggio di programmazione orientato agli oggetti sviluppato da
James Gosling nel 1991.
• Java, 20 maggio 1995, Sun World.
• Originariamente linguaggio di nome Oak.
• Si dice che il nome Java sia venuto dalle diverse persone coinvolte inquesto
progetto James Gosling, Arthur Van Goff e Andy Bechtolsheim.
• Nome cambiato in Java.
Breve storia
• Java è il linguaggio popolare e potente.
• Il linguaggio Java è stato derivato da C ++
• Gran parte della sintassi in Java è simile a C e C ++.
• Java perde il concetto di puntatore.
• Java supporta WORA Write Once Run Everywhere
• Primo rilascio pubblico nel 1995.
Caratteristiche
• Java è un linguaggio di alto livello che sebbene molto simile a C e C ++, ma offre
molte caratteristiche uniche proprie.
Dispositivi
Secondo Sun, 3 miliardi di device eseguono Java.
Ci sono molti dispositivi e applicazioni in cui Java è attualmente utilizzato alcuni di
loro sono
Desktop PC
Dispositivi mobili
Sistemi embedded
Applicazioni web
Caratteristiche
• Java è semplice
• Java è orientato agli oggetti
• Java è indipendente dalla piattaforma
• Java è distribuito
• Java è interpretato
• Java è robusto
Caratteristiche
• Java è sicuro
• Java è neutrale rispetto all’architettura
• Java è portabile
• Alte prestazioni
• Java è multithreaded
• Java è dinamico
Caratteristiche
1. Sintassi è basata su C ++.
2. Rimosse alcune caratteristiche non immediate (puntatore esplicito, overloading
degli operatori).
3. Nessuna necessità di rimuovere gli oggetti non referenziati perché c’è la
raccolta automatica del garbage.
Caratteristiche - Oggetti
Object oriented significa organizziamo nostro software come una combinazione di
diversi tipi di oggetti che incorporano sia i dati che ilcomportamento.
E’ una metodologia per semplificare sviluppo e manutenzione, fornendo alcune
regole.
Concetti base OOP
1. Oggetto
2. Classe
3. Ereditarietà
4. Astrazione
5. Incapsulamento
6. Polimorfismo
7. Dati celati
Caratteristiche - Platform independent
Una piattaforma è l’insieme di hardware software su cui eseguono applicazioni
Java è indipendente dalla piattaforma perchè il suo bytecode può essere eseguito
su qualsiasi piattaforma
Windows, Unix, Mac/OS
WORA
Caratteristiche - Sicurezza
1. Java è più sicuro perché non servono puntatori espliciti
2. I programmi eseguiti all'interno della sandbox macchina virtuale.
3. Class loader aggiunge sicurezza, separando il pacchetto di classi del file
system locale da quelli che vengono importati da fonti di rete.
4. Il verificatore bytecode controlla i frammenti di codice per indiiduare codice
illegale che possa violare diritti di accesso.
5. Altra sicurezza a livello applicativo tramite SSL, JAAS, crittografia, ecc
Caratteristiche - Robustezza
Robusto significa semplicemente tolleranza agli errore.
Java ha una forte gestione della memoria. La mancanza di puntatori evita i
problemi di sicurezza. C'è garbage collection automatica.
C'è gestione delle eccezioni e meccanismo di controllo dei tipi.
Tutti questi punti rendono java robusto.
Caratteristiche
Neutrale rispetto all’architettura
Non c’è nessuna caratteristiche che dipende dall’hardware
Portabile
Possiamo portare il bytecode su qualsiasi piattaforma molto facilmente
Caratteristiche - Performance
Java è più veloce degli altri linguaggi interpretati perchè il bytecode è più vicino al
linguaggio macchina
Rimane comunque più lento del linguaggio C++ compilato
Caratteristiche - Distribuito
In Java è relativamente semplice creare applicazioni distribuite.
RMI e EJB sono usati per creare applicazioni distribuite. Si possono invocare
metodi da qualunque dispositivo in rete.
Caratteristiche - Multithreaded
Un thread è come un processo separato che esegue in concorrenza
Possiamo scrivere programmi Java che si occupano di molte attività in una sola
volta definendo più thread.
Il vantaggio principale del multithreading è che condivide la stessa memoria. I
thread sono importanti per la multimedialità, applicazioni web ecc

More Related Content

Similar to Java basics

Creare un Information Radiator con Delphi
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con Delphi
Marco Breveglieri
 
iOS Programming
iOS ProgrammingiOS Programming
iOS Programming
Massimo Oliviero
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaDario Rusignuolo
 
Tile server
Tile serverTile server
Tile server
Federico Russo
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
Gabriele Gaggi
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
Roberto Messora
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
Marcello Teodori
 
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Carlo Fedeli
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
NaLUG
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
Riccardo Zamana
 
Node and the Cloud
Node and the CloudNode and the Cloud
Node and the Cloud
Luciano Colosio
 
Corso Java - Introduzione
Corso Java - IntroduzioneCorso Java - Introduzione
Corso Java - Introduzione
Campus La Camilla - Scuola di maker
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
Matteo Valoriani
 
Open Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ'sOpen Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ's
Codemotion
 
VS Package @ CD2008
VS Package @ CD2008VS Package @ CD2008
VS Package @ CD2008
Mauro Servienti
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccLuciano Colosio
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Gabriele Gaggi
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 

Similar to Java basics (20)

Creare un Information Radiator con Delphi
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con Delphi
 
iOS Programming
iOS ProgrammingiOS Programming
iOS Programming
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - ita
 
Tile server
Tile serverTile server
Tile server
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
 
Bbox
BboxBbox
Bbox
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Node and the Cloud
Node and the CloudNode and the Cloud
Node and the Cloud
 
Corso Java - Introduzione
Corso Java - IntroduzioneCorso Java - Introduzione
Corso Java - Introduzione
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
 
Open Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ'sOpen Jei Di Key not only for DJ's
Open Jei Di Key not only for DJ's
 
VS Package @ CD2008
VS Package @ CD2008VS Package @ CD2008
VS Package @ CD2008
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 

More from Franco Morelli

Web services
Web servicesWeb services
Web services
Franco Morelli
 
ETL basics
ETL basicsETL basics
ETL basics
Franco Morelli
 
Datawarehouse
DatawarehouseDatawarehouse
Datawarehouse
Franco Morelli
 
Open data per capire i bilanci pubblici
Open data per capire i bilanci pubbliciOpen data per capire i bilanci pubblici
Open data per capire i bilanci pubblici
Franco Morelli
 
Open data e turismo 2a Edizione
Open data e turismo 2a EdizioneOpen data e turismo 2a Edizione
Open data e turismo 2a Edizione
Franco Morelli
 
Etl per portali open data
Etl per portali open dataEtl per portali open data
Etl per portali open data
Franco Morelli
 
Open data e turismo
Open data e turismoOpen data e turismo
Open data e turismo
Franco Morelli
 
Open data beni comuni digitali
Open data beni comuni digitaliOpen data beni comuni digitali
Open data beni comuni digitali
Franco Morelli
 
Open data e business
Open data e businessOpen data e business
Open data e business
Franco Morelli
 
Mappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su OpenstreetmapMappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su Openstreetmap
Franco Morelli
 
Open data per il cittadino
Open data per il cittadinoOpen data per il cittadino
Open data per il cittadino
Franco Morelli
 
Civic hacking in equilibrio
Civic hacking in equilibrioCivic hacking in equilibrio
Civic hacking in equilibrio
Franco Morelli
 
#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15
Franco Morelli
 
Cultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della culturaCultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della cultura
Franco Morelli
 
Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?
Franco Morelli
 
Come spende i soldi il mio comune
Come spende i soldi il mio comuneCome spende i soldi il mio comune
Come spende i soldi il mio comune
Franco Morelli
 
Opendata liberare i dati di bilancio di un comune
Opendata   liberare i dati di bilancio di un comuneOpendata   liberare i dati di bilancio di un comune
Opendata liberare i dati di bilancio di un comuneFranco Morelli
 

More from Franco Morelli (17)

Web services
Web servicesWeb services
Web services
 
ETL basics
ETL basicsETL basics
ETL basics
 
Datawarehouse
DatawarehouseDatawarehouse
Datawarehouse
 
Open data per capire i bilanci pubblici
Open data per capire i bilanci pubbliciOpen data per capire i bilanci pubblici
Open data per capire i bilanci pubblici
 
Open data e turismo 2a Edizione
Open data e turismo 2a EdizioneOpen data e turismo 2a Edizione
Open data e turismo 2a Edizione
 
Etl per portali open data
Etl per portali open dataEtl per portali open data
Etl per portali open data
 
Open data e turismo
Open data e turismoOpen data e turismo
Open data e turismo
 
Open data beni comuni digitali
Open data beni comuni digitaliOpen data beni comuni digitali
Open data beni comuni digitali
 
Open data e business
Open data e businessOpen data e business
Open data e business
 
Mappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su OpenstreetmapMappiamo Ravenna su Openstreetmap
Mappiamo Ravenna su Openstreetmap
 
Open data per il cittadino
Open data per il cittadinoOpen data per il cittadino
Open data per il cittadino
 
Civic hacking in equilibrio
Civic hacking in equilibrioCivic hacking in equilibrio
Civic hacking in equilibrio
 
#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15#Opendata e trasparenza in bassa romagna 15 01-15
#Opendata e trasparenza in bassa romagna 15 01-15
 
Cultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della culturaCultura dei dati aperti, dati aperti della cultura
Cultura dei dati aperti, dati aperti della cultura
 
Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?Open data, a che punto siamo in Romagna?
Open data, a che punto siamo in Romagna?
 
Come spende i soldi il mio comune
Come spende i soldi il mio comuneCome spende i soldi il mio comune
Come spende i soldi il mio comune
 
Opendata liberare i dati di bilancio di un comune
Opendata   liberare i dati di bilancio di un comuneOpendata   liberare i dati di bilancio di un comune
Opendata liberare i dati di bilancio di un comune
 

Java basics

  • 1. JAVA BASICS Una breve introduzione Ing. Franco Morelli
  • 4. Breve storia Java è un linguaggio di programmazione orientato agli oggetti sviluppato da James Gosling nel 1991. • Java, 20 maggio 1995, Sun World. • Originariamente linguaggio di nome Oak. • Si dice che il nome Java sia venuto dalle diverse persone coinvolte inquesto progetto James Gosling, Arthur Van Goff e Andy Bechtolsheim. • Nome cambiato in Java.
  • 5. Breve storia Java è un linguaggio di programmazione orientato agli oggetti sviluppato da James Gosling nel 1991. • Java, 20 maggio 1995, Sun World. • Originariamente linguaggio di nome Oak. • Si dice che il nome Java sia venuto dalle diverse persone coinvolte inquesto progetto James Gosling, Arthur Van Goff e Andy Bechtolsheim. • Nome cambiato in Java.
  • 6. Breve storia • Java è il linguaggio popolare e potente. • Il linguaggio Java è stato derivato da C ++ • Gran parte della sintassi in Java è simile a C e C ++. • Java perde il concetto di puntatore. • Java supporta WORA Write Once Run Everywhere • Primo rilascio pubblico nel 1995.
  • 7. Caratteristiche • Java è un linguaggio di alto livello che sebbene molto simile a C e C ++, ma offre molte caratteristiche uniche proprie.
  • 8. Dispositivi Secondo Sun, 3 miliardi di device eseguono Java. Ci sono molti dispositivi e applicazioni in cui Java è attualmente utilizzato alcuni di loro sono Desktop PC Dispositivi mobili Sistemi embedded Applicazioni web
  • 9. Caratteristiche • Java è semplice • Java è orientato agli oggetti • Java è indipendente dalla piattaforma • Java è distribuito • Java è interpretato • Java è robusto
  • 10. Caratteristiche • Java è sicuro • Java è neutrale rispetto all’architettura • Java è portabile • Alte prestazioni • Java è multithreaded • Java è dinamico
  • 11. Caratteristiche 1. Sintassi è basata su C ++. 2. Rimosse alcune caratteristiche non immediate (puntatore esplicito, overloading degli operatori). 3. Nessuna necessità di rimuovere gli oggetti non referenziati perché c’è la raccolta automatica del garbage.
  • 12. Caratteristiche - Oggetti Object oriented significa organizziamo nostro software come una combinazione di diversi tipi di oggetti che incorporano sia i dati che ilcomportamento. E’ una metodologia per semplificare sviluppo e manutenzione, fornendo alcune regole.
  • 13. Concetti base OOP 1. Oggetto 2. Classe 3. Ereditarietà 4. Astrazione 5. Incapsulamento 6. Polimorfismo 7. Dati celati
  • 14. Caratteristiche - Platform independent Una piattaforma è l’insieme di hardware software su cui eseguono applicazioni Java è indipendente dalla piattaforma perchè il suo bytecode può essere eseguito su qualsiasi piattaforma Windows, Unix, Mac/OS WORA
  • 15. Caratteristiche - Sicurezza 1. Java è più sicuro perché non servono puntatori espliciti 2. I programmi eseguiti all'interno della sandbox macchina virtuale. 3. Class loader aggiunge sicurezza, separando il pacchetto di classi del file system locale da quelli che vengono importati da fonti di rete. 4. Il verificatore bytecode controlla i frammenti di codice per indiiduare codice illegale che possa violare diritti di accesso. 5. Altra sicurezza a livello applicativo tramite SSL, JAAS, crittografia, ecc
  • 16. Caratteristiche - Robustezza Robusto significa semplicemente tolleranza agli errore. Java ha una forte gestione della memoria. La mancanza di puntatori evita i problemi di sicurezza. C'è garbage collection automatica. C'è gestione delle eccezioni e meccanismo di controllo dei tipi. Tutti questi punti rendono java robusto.
  • 17. Caratteristiche Neutrale rispetto all’architettura Non c’è nessuna caratteristiche che dipende dall’hardware Portabile Possiamo portare il bytecode su qualsiasi piattaforma molto facilmente
  • 18. Caratteristiche - Performance Java è più veloce degli altri linguaggi interpretati perchè il bytecode è più vicino al linguaggio macchina Rimane comunque più lento del linguaggio C++ compilato
  • 19. Caratteristiche - Distribuito In Java è relativamente semplice creare applicazioni distribuite. RMI e EJB sono usati per creare applicazioni distribuite. Si possono invocare metodi da qualunque dispositivo in rete.
  • 20. Caratteristiche - Multithreaded Un thread è come un processo separato che esegue in concorrenza Possiamo scrivere programmi Java che si occupano di molte attività in una sola volta definendo più thread. Il vantaggio principale del multithreading è che condivide la stessa memoria. I thread sono importanti per la multimedialità, applicazioni web ecc