JAVA fundamentals

Riporto qui, ma poi vi rimando al wiki, alcune cose fondamentali da sapere quando si usa Java.

JAVA: quali sono le differenze tra JDK, JRE e JVM?

L’immagine si spiega da sé:

[Source: http://www.javabeat.net/]

Ma vediamo in dettaglio i tre blocchi

JVM

JVM (Java Virtual Machine) è una macchina astratta (o virtuale). È una specificazione che fornisce un ambiente esecutivo (runtime environment) – una simulazione di un calcolatore con processore e RAM – nel quale il bytecode java (lo pseudo-codice macchina che gira nello pseduo-processore) può essere eseguito.

Le JVM sono disponibili per una ampia varietà di piattaforme harware e software. JVM, JRE e JDK sono dipendenti dalla piattaforma perché le configurazioni per ogni sistema operativo sono diverse. Però, Java è indipendente dalla piattaforma: quindi uno stesso codice scritto in Java può essere eseguito senza cambiare una virgola in qualsiasi sistema operativo. Quello che cambia è l’implementazione della Virtual Machine. La JVM fa le seguenti cose principali:

  • carica il codice
  • verifica il codice
  • esegue il codice

una volta che esiste l’ambiente esecutivo.

JRE

JRE è l’acronimo di Java Runtime Environment. Serve a fornire un ambiente di esecuzione. È l’implementazione della JVM. Esiste fisicamente. Contiene le librerie + altri files che la VM usa durante l’esecuzione (java, javaw, rt.jar, etc).

[Source: http://www.javatpoint.com/]

JDK

JDK è l’acronimo di Java Development Kit. Anche questo esiste fisicamente. Contiene il JRE + strumenti per lo sviluppo (javac, javaws, etc)

[Source: http://www.javatpoint.com/]

Come conoscere la versione della JRE correntemente in uso

  marcob@jsbach:/opt$ java -version
  java version "1.6.0_26"
  Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
  Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

Come cambiare JRE/JVM in corsa

Si usa il comando update-alternatives, con l’opzione –config java:

  marcob@js:/usr/lib/jvm$ sudo update-alternatives --config java
  Sono disponibili 4 scelte per l'alternativa java (che fornisce /usr/bin/java).
  
    Selezione    Percorso                                        Priorità  Stato
  ------------------------------------------------------------
    0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1095      modalità automatica
    1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      modalità manuale
    2            /usr/lib/jvm/java-6-oracle/jre/bin/java          1092      modalità manuale
    3            /usr/lib/jvm/java-7-oracle/jre/bin/java          1095      modalità manuale
  * 4            /usr/lib/jvm/java-8-oracle/jre/bin/java          1094      modalità manuale

Bibliografia

  • http://www.javatpoint.com/
  • http://www.javabeat.net/

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.