Introduzione a Java

Contenuto1 Storia di Java2 La terminologia di Java2.1 Java Development Kit (JDK)2.2 Java Runtime Enviroment (JRE)2.3 Java Virtual Machine (JVM)2.4 Schema3 Le caratteristiche di Java3.1 Indipendente dalla piattaforma e Portatile3.2 […]

Avatar di gbfactory
gbfactory 17 Ottobre 2020

Java è un linguaggio di programmazione ad alto livello originariamente sviluppato dalla Sun Microsystems e rilasciato per la prima volta nel 1995. Attualmente è proprietà di Oracle e più 3 miliardi di dispositivi utilizzano Java.

Attualmente l'ultima versione di Java Standard Edition (Java SE) è la 14, mentre quella con supporto a lungo termine (Java SE LTS) è la 11. Molto utilizzata è anche la versione Java SE 8.

Storia di Java

La prima versione pubblica, chiamata Java 1.0, è stata rilasciata nel 1995 con il motto Write Once, Run Anywhere (WORA), in italiano scrivi una volta, esegui ovunque, fornendo le runtime sulle piattaforme più popolari.

Il progetto di Java è iniziato nel giugno del 1991 da James Gosling per essere utilizzato in apparecchi per aggiungere funzionalità ai televisori. Il linguaggio, chiamato inizialmente Oak (quercia), in onore dell'albero fuori dall'ufficio di Gosling, verrà poi chiamato Green per poi ricevere il nome di Java.

Il 13 novembre 2006, la Sun iniziò a rendere il codice Java gratuito e open-source, sotto la licenza GNU General Public License (GPL). Questo processo è terminato l'8 maggio 2007, quando tutto il codice del nucleo di Java è vientato open-source.

La terminologia di Java

Java Development Kit (JDK)

Il Java Development Kit, abbreviato in JDK, contiene tutti gli strumenti utili durante la programmazione in Java. Questo include la Java Runtime Environment (JRM), i compilatori e altri strumenti come JavaDoc o il debugger per Java.

Java Runtime Enviroment (JRE)

La Java Runtime Enviroment (JRE) è parte del JDK, questo significa che il JDK include la JRE. Quando hai la JRE installata sul tuo sistema, sarai in grado di eseguire i programmi in Java, ma non potrai compilarli. La JRE include la JVM, i plguin per i browser e il supporto per gli applet. Quando hai bisogno solo di eseguire programmi, ti basterà solamente la JRE.

Java Virtual Machine (JVM)

Quando scriviamo un programma in Java, e poi lo compiliamo con il compilatore javac, incluso nel JDK, non verrà convertito direttamente in linguaggio macchina, ma in bytecode (salvato in file .class).

La Java Virtual Machine, solitamente abbreviata in JVM, si occuperà poi di eseguire il codice bytecode, convertendolo in tempo reale in linguaggio macchina, in base alla piattaforma su cui si sta eseguendo il programma.

Ogni piattaforma ha una JVM differente, però, il risultato dell'esecuzione del bytecode, è lo stesso su ogni sistema operativo. Per questo si dice che Java è indipendente dalla piattaforma.

Schema

Le caratteristiche di Java

Indipendente dalla piattaforma e Portatile

Mentre il codice compilato in C e C++ faceva riferimento alla macchina specifica per cui il codice veniva scritto, in Java il compilatore javac traduce il codice in bytecode, indipendente dalla piattaforma. Questo bytecode viene poi interpretato dalla Java Virtual Machine (JVM), unica per ogni sistema operativo, e il risultato dell'esecuzione dello stesso bytecode, su diverse piattaforme, è identico.

Orientato agli oggetti (Object Oriented)

Java è un linguaggio orientato agli oggetti: i programmi sono organizzati in collezioni di oggetti, ognuno dei quali rappresenta un'istanza di una classe. Questo rende i programmi più "puliti" e permette il riutilizzo del codice.

Semplice

Java, pur mantenendo alcune caratterstiche simili a C e C++, risulta molto semplice da imparare ed utilizzare data la mancanza di aspetti complessi come l'overloading degli operatori, i puntatori e l'allocazione della memoria esplicita.

Sicuro

In Java non ci sono i puntatori e non è possibile accedere agli array oltre al loro limite. Questo risolve alcuni problemi si curezza come Stack corruction o Buffer overflow.

Multithreading

Java supporta il multithreading, che consente l'esecuzione simultanea di due o più parti del programma permettendo di utilizzare al massimo la CPU.

Per cosa è utilizzato

  • Applicazioni Desktop
  • Applicazioni Mobile (Android)
  • Applicazioni Web
  • Application Server e Web Server
  • Giochi
  • Database
  • E molto altro...

Programma "Hello World" in Java

Ecco ora il classico programmino Hello World scritto in Java:

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello World");
  }
}