ºÝºÝߣ

ºÝºÝߣShare 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 (20)

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 - ita
Dario 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
Ìý
Bbox
BboxBbox
Bbox
nois3lab
Ìý
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
Ìý
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
Simone Marzola
Ìý
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 ecc
Luciano 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-senatore
SMAU
Ìý
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 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - ita
Dario Rusignuolo
Ìý
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
Ìý
Bbox
BboxBbox
Bbox
nois3lab
Ìý
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
Ìý
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
Simone Marzola
Ìý
Node and the Cloud
Node and the CloudNode and the Cloud
Node and the Cloud
Luciano Colosio
Ìý
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 ecc
Luciano 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-senatore
SMAU
Ìý

More from Franco Morelli (17)

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 comune
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 comune
Franco Morelli
Ìý

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