Benvenuto nel nostro approfondimento interattivo sul Java, il linguaggio di programmazione Object-Oriented ampiamente adottato, conosciuto per la sua robustezza, sicurezza e portabilità. Questa presentazione è il tuo gateway per comprendere il perché Java, con la sua sintassi intuitiva e la famosa piattaforma indipendente, continua a essere il pilastro dello sviluppo di software in vari ambienti operativi. Scoprirai i meccanismi alla base della Java Virtual Machine (JVM) e come la piattaforma Java fornisce una base ineguagliabile per lo sviluppo di applicazioni enterprise, mobile e web di alto livello. Dal principiante appassionato di tecnologia al veterano dello sviluppo software, immergiti nella lingua che ha ridefinito i codici della programmazione.
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