SlideShare a Scribd company logo
<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

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