Java – Caratteristiche e vantaggi

Java gestisce automaticamente memoria e dettagli, è orientato agli oggetti, indipendente dalla piattaforma, sicuro e include librerie di networking.

Tecnologia Java

La tecnologia Java ha l’intento di occuparsi automaticamente della gran parte dei dettagli come la gestione della memoria e che sia facilmente portato su processori e dispositivi diversi.

È stato creato per soddisfare quattro scopi:

  • Essere orientato agli oggetti;
  • Essere indipendente dalla piattaforma;
  • Contenere strumenti e librerie per il networking;
  • Progettato per eseguire codice da sorgenti remote in modo sicuro;

Java Virtual Machine (JVM)

Con la Macchina Virtuale (JVM) si fa in modo che i programmi non fossero
compilati in codice macchina (nativo) ma in una sorta di codice “intermedio” (chiamato bytecode), quindi non è destinato ad essere eseguito direttamente dall’hardware ma che deve essere, a sua volta, interpretato da un secondo programma.


Quindi lo stesso codice può essere eseguito su più piattaforme
semplicemente trasferendo il bytecode (non il sorgente) purché sia disponibile una JVM (concetto chiamato WORA, Scrivi una volta ed esegui ovunque)

Indipendenza

L’indipendenza dalla piattaforma è ottenuta grazie all’uso di uno strato
software chiamato Java Virtual Machine (JVM)

La JVM traduce le istruzioni dei codici binari indipendenti dalla
piattaforma, generati dal compilatore Java, in istruzioni eseguibili dalla macchina locale.

Java ha quindi unito i vantaggi di un linguaggio compilato a quelli
di uno interpretato

Bytecode

Il sorgente Java viene infatti compilato in un codice intermedio tra il
linguaggio macchina e il codice sorgente: il bytecode.

Il file scritto in Bytecode sarà effettivamente il programma Java e ogni
istruzione scritta in bytecode viene interpretata dalla JVM a runtime.

Performance

Java è sempre stato etichettato come un linguaggio a scarse performance ma negli anni, il linguaggio si è trasformato portando migliorie da una versione all’altra tra il 50 e il 75%.

Mai potrà attestarsi a livelli di un linguaggio a bassissimo livello e ovviamente non sceglieremo mai per sviluppare applicazioni real-time.

Alcune delle attività nascoste del linguaggio Java che gli consentono di avere prestazioni eccellenti (il programmatore può non conoscerle):

  • Compilazione Just In Time (JIT);
  • Hot Spot;
  • Garbage Collection;

Just In Time (JIT)

La compilazione Just In Time si effettua un lavoro di ottimizzazione
per eseguire un pezzo di codice Java compilandolo in codice nativo
solo al momento della reale necessità.

Hot Spot

Java Hot Spot introdotto in Java 2 (o 1.2), il cui compito è di individuare un metodo di una classe utilizzato spesso, lo compila e lo lascia già compilato in maniera che il prossimo utilizzo non necessita compilazione.

Algoritmi adattativi di intelligenza artificiale, sono in grado di prevedere le attività più frequenti nel ciclo di vita di una applicazione.

Le ultime versioni portano delle migliorie in questi algoritmi adattativi, prendendo a vantaggio anche l’utilizzo del Class Data Sharing.

Il Class Data Sharing viene introdotto in Java 5 e consente di migliorare la velocità all’avvio di una applicazione riutilizzando eventuali package di librerie già caricati in memoria da altre JVM.

Garbage Collection

Il primo linguaggio basato su un sistema di gestione della memoria chiamato gargbage collection in cui la memoria viene automaticamente assegnata e rilasciata a seconda delle esigenze del programma.

Con altri linguaggi non è così facile gestire la memoria.

Possiamo pensare al garbage collector come a un processo asincrono che tiene una mappa di oggetti e referenze alle istanze utilizzate e che cancella lo spazio di memoria fisico quando uno di questi oggetti non
ha referenze da parte di nessuno.

In Java 1.5 è stato introdotto il concetto di “young generation” e “old generation”. Nella maggior parte delle istanze di una classe sono temporanee: create, utilizzate e scartate, con un ciclo di vita
abbastanza giovane. Una piccola minoranza di istanze (circa il 10% secondo studi) ha un ciclo di vita maggiore, quasi quello dell’applicazione.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Share via
Copy link
Verificato da MonsterInsights