SlideShare a Scribd company logo
1 of 15
<1/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Java://Introduzione
Ing. Giovanni Pace
‫مرحبا‬
안녕하세요.
नमस्ते
Ciao
你好
Hello
World…
"Codice non c'è, solo deploy o non deploy."
Cit. Un Jedi del Java
LinkedIn: https://www.linkedin.com/in/giovanni-pace
GitHub: https://github.com/johnnypax
<3/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Dove posso trovare tutto
il materiale?
www.archety.dev Cerca
<br
/>
://
2 0 2 3 . T u t t i I d i r i t t i r i s e r v a t i
Giovanni://Pace
<4/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Introduzione( )
Java
1. Cos’è il Java
2. Cos’è la Java Virtual Machine
3. Cos’è la Java Platform
4. Vantaggi e svantaggi del Java
Cos’è il Java
2 0 1 9 . A l l R i g h t s R e s e r v e d
coder://
Java è un linguaggio di programmazione che
adotta il paradigma Object Oriented, ponendo
al centro l'oggetto piuttosto che le azioni.
Un linguaggio Object Oriented
Con una sintassi che richiama i famosi C e C++,
Java si distingue per essere decisamente più
intuitivo e accessibile.
Diventato la base dei linguaggi moderni, il Java
è un ottimo punto di partenza per la
programmazione, specialmente per chi un
giorno si avvicinerà al C#.
Un linguaggio accessibile
<6/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Write once
Run everywhere
Scrivi una volta sola il codice che può
essere eseguito su qualsiasi dispositivo.
La sua caratteristica distintiva? L'indipendenza
dal sistema operativo (grazie alla JVM): scrivi
una volta, esegui ovunque.
Un linguaggio indipendente dal S.O.
La JVM è il motore che rende il codice Java
trasversale e adattabile, una vera e propria
macchina virtuale che incarna il principio di
portabilità.
Java Virtual Machine (JVM)
<7/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Come funziona il JAVA
Un'applicazione è costituita da uno o più file
contraddistinti dall'estensione .java .
La funzione del compilatore è quella di convertire
l'applicazione in un codice intermedio che può essere
interpretato dalla Java Virtual Machine (JVM).
Dopo la compilazione, l'applicazione è composta da un
insieme di file che portano l'estensione .class .
Questo software compilato è in grado di funzionare su
ogni dispositivo che sia equipaggiato con una JVM.
La JVM non è preinstallata nel dispositivo e deve essere
installata prima di eseguire l’applicazione compilata.
Codice sorgente del programma
(file .java)
Compilatore (JAVAC)
File dell’applicazione compilati
(file .class)
Windows Linux OSX Android
JVM JVM JVM JVM
<8/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
1. package com.lez01.recap;
2. public class Main {
3. public static void main(String[] args) {
Persona per = new Persona("GIovanni", "Pace");
…
Il ByteCode
• Il bytecode è una forma di istruzioni
software che la macchina virtuale Java
(JVM) può interpretare.
• È il risultato della compilazione del
codice sorgente Java.
• È un codice intermedio tra il codice
sorgente e il codice macchina.
1. LineNumberTable LocalVariableTable this Lcom/lez01/recap/Main; main
([Ljava/lang/String;)V com/lez01/recap/Persona GIovanni Pace
'(Ljava/lang/String;Ljava/lang/String;)V
java/lang/System…
Esempio in ByteCode
Esempio in Java
<9/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
La JVM
Java Virtual Machine
Il software Java Virtual Machine (JVM) è responsabile
dell'esecuzione dei programmi che sono stati
convertiti in bytecode dal compilatore Java.
Funziona come una CPU virtuale, convertendo il
bytecode in istruzioni comprensibili dalla CPU fisica
del dispositivo che esegue il programma.
Le caratteristiche e il comportamento della JVM
sono delineati dettagliatamente nelle specifiche
tecniche che si trovano nel documento "The Java
Virtual Machine Specification", il quale è curato e
aggiornato da Oracle.
<10/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Codice sorgente del programma
(file .java)
Compilatore (JAVAC)
File dell’applicazione compilati
(file .class)
Windows Linux OSX Android
JVM JVM JVM JVM
Produce ByteCode
All’inizio il Java era più
lento del C e del C++
Le versioni moderne della Java Virtual Machine (JVM)
sono state perfezionate con una tecnologia avanzata
nota come Just In Time compiler (JIT).
Questo componente è progettato per migliorare
l'efficienza durante l'esecuzione di un programma:
identifica e compila in tempo reale quelle parti di codice
che sono eseguite frequentemente, trasformandole in
codice macchina nativo.
In altre parole, il JIT agisce durante la fase di esecuzione
del programma, convertendo il bytecode in istruzioni
specifiche per la CPU del dispositivo in uso, ottimizzando
così la performance del software in esecuzione.
2 0 1 9 . A l l R i g h t s R e s e r v e d
coder://
Codice sorgente del programma
(file .java)
Compilatore (JAVAC)
File dell’applicazione compilati
(file .class)
Codice Macchina
JIT Compiler
<12/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Cos’è la Java Platform
La piattaforma Java è composta da due componenti:
Un insieme di librerie a disposizione degli sviluppatori
per creare software.
Java Virtual Machine
API (Application Programming Interface)
<13/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Le configurazioni Java Platform
La piattaforma Java è composta da due release principali:
Fornisce un set di API per soddisfare le necessità più
frequenti e consente la creazione di applicazioni
indipendenti, sia client che server, per la gestione di
database, il calcolo scientifico, e altre funzionalità...
Java Standard Edition (Java SE)
Fornisce un set di API per applicazioni
web e distribuite, oltre ad un set di
funzionalità avanzate per monitoraggio
e sviluppo di infrastrutture complesse.
Java Enterprise Edition (Java EE)
<14/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Vantaggi e Svantaggi del Java
Portabilità
Vantaggi
I principali
Velocità di sviluppo
Grande disponibilità di librerie
Altamente orientato al web
Velocità di esecuzione
Svantaggi
I principali
Codice sorgente esposto
Il software è processato e eseguito dalla Java Virtual Machine (JVM), che a sua
volta converte le istruzioni in linguaggio di macchina. Di conseguenza, il
tempo di esecuzione può essere marginalmente superiore rispetto a un
software realizzato in C++.
Mediante il processo di decompilazione, è spesso possibile ricostruire il codice
sorgente originale, a meno che non vengano impiegati specifici programmi
noti come obfuscatori Java, che servono a impedire tale ricostruzione.
<15/>
2 0 2 3 . A l l R i g h t s R e s e r v e d
Ing://Giovanni Pace
Grazie
Per la vostra attenzione

More Related Content

What's hot

The Importance Of Being Earnest As A Comedy Of Manners
     The Importance Of Being Earnest As A Comedy Of Manners     The Importance Of Being Earnest As A Comedy Of Manners
The Importance Of Being Earnest As A Comedy Of MannersAsari Bhavyang
 
Sir Thomas More`s Utopia
Sir Thomas More`s UtopiaSir Thomas More`s Utopia
Sir Thomas More`s UtopiaNadin Lamberti
 
Rudyard Kipling
Rudyard KiplingRudyard Kipling
Rudyard KiplingSchool
 
Literary terms
Literary termsLiterary terms
Literary termsjanmbrown
 
The victorian age & critical realism
The victorian age & critical realismThe victorian age & critical realism
The victorian age & critical realismNguyen Huyen
 
Writing better essay
Writing better essayWriting better essay
Writing better essayjosias20
 
Melissa's Presentation_Michael Ondaatje_19032014
Melissa's Presentation_Michael Ondaatje_19032014Melissa's Presentation_Michael Ondaatje_19032014
Melissa's Presentation_Michael Ondaatje_19032014Kim Henrie
 
The Victorian Period Introduction
The Victorian Period IntroductionThe Victorian Period Introduction
The Victorian Period Introductionaprilme74
 
Letter writing essentials
Letter writing essentialsLetter writing essentials
Letter writing essentialsfarishah
 
Satire power point
Satire power pointSatire power point
Satire power pointnovins
 
Indian writing in English: A Brief Study of some Indian Female English Writers
Indian writing in English: A Brief Study of some Indian Female English WritersIndian writing in English: A Brief Study of some Indian Female English Writers
Indian writing in English: A Brief Study of some Indian Female English Writersijtsrd
 
The Pastoral
The PastoralThe Pastoral
The PastoralSarah Law
 

What's hot (20)

The Expository Essay
The Expository EssayThe Expository Essay
The Expository Essay
 
Charles dickens notes
Charles dickens notesCharles dickens notes
Charles dickens notes
 
University wits
University witsUniversity wits
University wits
 
The Importance Of Being Earnest As A Comedy Of Manners
     The Importance Of Being Earnest As A Comedy Of Manners     The Importance Of Being Earnest As A Comedy Of Manners
The Importance Of Being Earnest As A Comedy Of Manners
 
Sir Thomas More`s Utopia
Sir Thomas More`s UtopiaSir Thomas More`s Utopia
Sir Thomas More`s Utopia
 
Rudyard Kipling
Rudyard KiplingRudyard Kipling
Rudyard Kipling
 
Literary terms
Literary termsLiterary terms
Literary terms
 
The victorian age & critical realism
The victorian age & critical realismThe victorian age & critical realism
The victorian age & critical realism
 
Writing better essay
Writing better essayWriting better essay
Writing better essay
 
Melissa's Presentation_Michael Ondaatje_19032014
Melissa's Presentation_Michael Ondaatje_19032014Melissa's Presentation_Michael Ondaatje_19032014
Melissa's Presentation_Michael Ondaatje_19032014
 
Charles dickens(2)
Charles dickens(2)Charles dickens(2)
Charles dickens(2)
 
The Victorian Period Introduction
The Victorian Period IntroductionThe Victorian Period Introduction
The Victorian Period Introduction
 
John dryden
John drydenJohn dryden
John dryden
 
Letter writing essentials
Letter writing essentialsLetter writing essentials
Letter writing essentials
 
Satire power point
Satire power pointSatire power point
Satire power point
 
University wits
University wits University wits
University wits
 
Indian writing in English: A Brief Study of some Indian Female English Writers
Indian writing in English: A Brief Study of some Indian Female English WritersIndian writing in English: A Brief Study of some Indian Female English Writers
Indian writing in English: A Brief Study of some Indian Female English Writers
 
The Pastoral
The PastoralThe Pastoral
The Pastoral
 
Kano Model For Customer Satisfaction
Kano Model For Customer SatisfactionKano Model For Customer Satisfaction
Kano Model For Customer Satisfaction
 
Paragraph writing
Paragraph writingParagraph writing
Paragraph writing
 

Similar to Introduzione al java

Linguaggio Java
Linguaggio JavaLinguaggio Java
Linguaggio JavaGSamLo
 
Introduzione alla programmazione Java
Introduzione alla programmazione JavaIntroduzione alla programmazione Java
Introduzione alla programmazione JavaMassimiliano Brolli
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Gabriele Gaggi
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventorfdizazzo
 
Introduzione al linguaggio Java
Introduzione al linguaggio JavaIntroduzione al linguaggio Java
Introduzione al linguaggio JavaPaolo Tosato
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo BugianiIntroduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugianifirenze-gtug
 
Link. java server faces [santi caltabiano]
  Link. java server faces [santi caltabiano]  Link. java server faces [santi caltabiano]
Link. java server faces [santi caltabiano]santi caltabiano
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloudGabriele Baldoni
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld DevicesGWTcon
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Iced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaVitalij Zadneprovskij
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
 

Similar to Introduzione al java (20)

Linguaggio Java
Linguaggio JavaLinguaggio Java
Linguaggio Java
 
Java sul tuo Mac
Java sul tuo MacJava sul tuo Mac
Java sul tuo Mac
 
Presentazione CERT-CHECK
Presentazione CERT-CHECKPresentazione CERT-CHECK
Presentazione CERT-CHECK
 
Android
AndroidAndroid
Android
 
Introduzione alla programmazione Java
Introduzione alla programmazione JavaIntroduzione alla programmazione Java
Introduzione alla programmazione Java
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventor
 
Introduzione al linguaggio Java
Introduzione al linguaggio JavaIntroduzione al linguaggio Java
Introduzione al linguaggio Java
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 
Hardware e plugin
Hardware e pluginHardware e plugin
Hardware e plugin
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo BugianiIntroduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
Introduzione a GAE - Alessandro Aglietti e Lorenzo Bugiani
 
Link. java server faces [santi caltabiano]
  Link. java server faces [santi caltabiano]  Link. java server faces [santi caltabiano]
Link. java server faces [santi caltabiano]
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Iced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java libera
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
Corso Javascript
Corso JavascriptCorso Javascript
Corso Javascript
 

Introduzione al java

  • 1. <1/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Java://Introduzione Ing. Giovanni Pace
  • 2. ‫مرحبا‬ 안녕하세요. नमस्ते Ciao 你好 Hello World… "Codice non c'è, solo deploy o non deploy." Cit. Un Jedi del Java LinkedIn: https://www.linkedin.com/in/giovanni-pace GitHub: https://github.com/johnnypax
  • 3. <3/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Dove posso trovare tutto il materiale? www.archety.dev Cerca <br /> :// 2 0 2 3 . T u t t i I d i r i t t i r i s e r v a t i Giovanni://Pace
  • 4. <4/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Introduzione( ) Java 1. Cos’è il Java 2. Cos’è la Java Virtual Machine 3. Cos’è la Java Platform 4. Vantaggi e svantaggi del Java
  • 5. Cos’è il Java 2 0 1 9 . A l l R i g h t s R e s e r v e d coder:// Java è un linguaggio di programmazione che adotta il paradigma Object Oriented, ponendo al centro l'oggetto piuttosto che le azioni. Un linguaggio Object Oriented Con una sintassi che richiama i famosi C e C++, Java si distingue per essere decisamente più intuitivo e accessibile. Diventato la base dei linguaggi moderni, il Java è un ottimo punto di partenza per la programmazione, specialmente per chi un giorno si avvicinerà al C#. Un linguaggio accessibile
  • 6. <6/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Write once Run everywhere Scrivi una volta sola il codice che può essere eseguito su qualsiasi dispositivo. La sua caratteristica distintiva? L'indipendenza dal sistema operativo (grazie alla JVM): scrivi una volta, esegui ovunque. Un linguaggio indipendente dal S.O. La JVM è il motore che rende il codice Java trasversale e adattabile, una vera e propria macchina virtuale che incarna il principio di portabilità. Java Virtual Machine (JVM)
  • 7. <7/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Come funziona il JAVA Un'applicazione è costituita da uno o più file contraddistinti dall'estensione .java . La funzione del compilatore è quella di convertire l'applicazione in un codice intermedio che può essere interpretato dalla Java Virtual Machine (JVM). Dopo la compilazione, l'applicazione è composta da un insieme di file che portano l'estensione .class . Questo software compilato è in grado di funzionare su ogni dispositivo che sia equipaggiato con una JVM. La JVM non è preinstallata nel dispositivo e deve essere installata prima di eseguire l’applicazione compilata. Codice sorgente del programma (file .java) Compilatore (JAVAC) File dell’applicazione compilati (file .class) Windows Linux OSX Android JVM JVM JVM JVM
  • 8. <8/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace 1. package com.lez01.recap; 2. public class Main { 3. public static void main(String[] args) { Persona per = new Persona("GIovanni", "Pace"); … Il ByteCode • Il bytecode è una forma di istruzioni software che la macchina virtuale Java (JVM) può interpretare. • È il risultato della compilazione del codice sorgente Java. • È un codice intermedio tra il codice sorgente e il codice macchina. 1. LineNumberTable LocalVariableTable this Lcom/lez01/recap/Main; main ([Ljava/lang/String;)V com/lez01/recap/Persona GIovanni Pace '(Ljava/lang/String;Ljava/lang/String;)V java/lang/System… Esempio in ByteCode Esempio in Java
  • 9. <9/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace La JVM Java Virtual Machine Il software Java Virtual Machine (JVM) è responsabile dell'esecuzione dei programmi che sono stati convertiti in bytecode dal compilatore Java. Funziona come una CPU virtuale, convertendo il bytecode in istruzioni comprensibili dalla CPU fisica del dispositivo che esegue il programma. Le caratteristiche e il comportamento della JVM sono delineati dettagliatamente nelle specifiche tecniche che si trovano nel documento "The Java Virtual Machine Specification", il quale è curato e aggiornato da Oracle.
  • 10. <10/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Codice sorgente del programma (file .java) Compilatore (JAVAC) File dell’applicazione compilati (file .class) Windows Linux OSX Android JVM JVM JVM JVM Produce ByteCode
  • 11. All’inizio il Java era più lento del C e del C++ Le versioni moderne della Java Virtual Machine (JVM) sono state perfezionate con una tecnologia avanzata nota come Just In Time compiler (JIT). Questo componente è progettato per migliorare l'efficienza durante l'esecuzione di un programma: identifica e compila in tempo reale quelle parti di codice che sono eseguite frequentemente, trasformandole in codice macchina nativo. In altre parole, il JIT agisce durante la fase di esecuzione del programma, convertendo il bytecode in istruzioni specifiche per la CPU del dispositivo in uso, ottimizzando così la performance del software in esecuzione. 2 0 1 9 . A l l R i g h t s R e s e r v e d coder:// Codice sorgente del programma (file .java) Compilatore (JAVAC) File dell’applicazione compilati (file .class) Codice Macchina JIT Compiler
  • 12. <12/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Cos’è la Java Platform La piattaforma Java è composta da due componenti: Un insieme di librerie a disposizione degli sviluppatori per creare software. Java Virtual Machine API (Application Programming Interface)
  • 13. <13/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Le configurazioni Java Platform La piattaforma Java è composta da due release principali: Fornisce un set di API per soddisfare le necessità più frequenti e consente la creazione di applicazioni indipendenti, sia client che server, per la gestione di database, il calcolo scientifico, e altre funzionalità... Java Standard Edition (Java SE) Fornisce un set di API per applicazioni web e distribuite, oltre ad un set di funzionalità avanzate per monitoraggio e sviluppo di infrastrutture complesse. Java Enterprise Edition (Java EE)
  • 14. <14/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Vantaggi e Svantaggi del Java Portabilità Vantaggi I principali Velocità di sviluppo Grande disponibilità di librerie Altamente orientato al web Velocità di esecuzione Svantaggi I principali Codice sorgente esposto Il software è processato e eseguito dalla Java Virtual Machine (JVM), che a sua volta converte le istruzioni in linguaggio di macchina. Di conseguenza, il tempo di esecuzione può essere marginalmente superiore rispetto a un software realizzato in C++. Mediante il processo di decompilazione, è spesso possibile ricostruire il codice sorgente originale, a meno che non vengano impiegati specifici programmi noti come obfuscatori Java, che servono a impedire tale ricostruzione.
  • 15. <15/> 2 0 2 3 . A l l R i g h t s R e s e r v e d Ing://Giovanni Pace Grazie Per la vostra attenzione