Perchè Java è un linguaggio portable?

Java viene considerato un linguaggio di programmazione portable, nel senso che una generica applicazione Java può venire eseguita dalla maggior parte delle macchine. Mostriamo di seguito quali sono i motivi che hanno reso realizzabile questa sua peculiarità.

Fase di compilazione

Il codice sorgente di un’applicazione Java risiede in file con estensione .java
Ad esempio, un semplice programma di “hello world” potrebbe avere un codice sorgente salvato con il nome HelloWorld.java

Perchè Java è un linguaggio portable?

Il file in figura rappresenta quindi il codice sorgente del programma e come tale non può essere eseguito da una macchina. A tale scopo invece, deve prima essere compilato.

Processo di compilazione

Come evidenziato in figura, l’azione di compilazione ad opera del compilatore Java, genera un secondo file chiamato HelloWorld.class, con lo stesso nome dell’originale, ma con estensione diversa.
HelloWorld.class è l’applicazione vera e propria e come tale può essere eseguita da una macchina; vedremo come nel paragrafo successivo.

Mentre HelloWorld.java contiene le istruzioni Java scritte dal programmatore, aprendo il file HelloWorld.class con un editor di testo, vedremo una serie di simboli a noi incomprensibili.
HelloWorld.class contiene infatti istruzioni in bytecode, ovvero una versione “tradotta” del codice sorgente Java.
Il bytecode è il linguaggio interpretabile solo dalla JVM, ovvero la Java Virtual Machine.

Fase di interpetazione

Perchè Java è un linguaggio portable?
Processo di esecuzione del programma

La JVM, detta anche interprete Java, è la macchina virtuale Java che riesce a comprendere le istruzioni in bytecode del file HelloWorld.class e per questo, una volta intepretate, può eseguire l’applicazione.
La stessa applicazione HelloWorld.class può essere eseguita su qualsiasi macchina che abbia la JVM.

Si giunge così alla conclusione che Java è considerato un linguaggio di programmazione portable, in quanto la medesima applicazione Java, con estensione .class, è eseguibile su un qualsiasi sistema che contenga una JVM.

Perchè Java è un linguaggio portable?
Definizione di portabilità su più dispositivi

Riferimenti

https://it.wikipedia.org/wiki/Macchina_virtuale_Java

http://marcoparoni.altervista.org

Precedente Installare Maven su Windows 10 Successivo Why is Java a portable language?