JAVA E I CONCETTI E PUNTI DI FORZA

Sapendo che il Programma e' un insieme di istruzioni che il computer esegue.

Il Computer e' in grado di comprendere le ISTRUZIONI scritte in un Linguaggio Macchina.

Assembler ad esempio:

LOAD R1, A

ADD R1, B

STORE R1, A

Chiaramente qualora vorremmo capire in Linguaggio Assembler cosa abbiamo scritto, non e' il posto giusto!

Tutto questo in Java si potrebbe scrivere in tutt'altro modo:

A = A + B;

direi che al posto di scrivere Tutto cio':

LOAD R1, A

ADD R1, B

STORE R1, A

Che ci fara' praticamente A = A + B; Questo e' il concetto di Astrazione

L'Astrazione: e' un'arma molto importante in Informatica. Cosa vuol dire? Nascondere tutti i dettagli implementativi e all'esterno presentare un'interfaccia e i comandi (semplici) per ottenere servizi.

Ricordarci questo:

LOAD R1, A

ADD R1, B

STORE R1, A

E' meno conveniente che ricordarci che A = A + B; Fantastico!

JAVA: e' un linguaggio di programmazione sicuramente ad alto Livello perche' abbiamo una metodologia di Astrazione molto alta. E' un Linguaggio sia Compilato che interpretato. E' sicuramente meno efficiente del Linguaggio C che e' solo compilato. Ma a differenza del Linguaggio C e' portabile, grazie al Bytecode.

Il Bytecode e' il file che otteniamo quando Compiliamo il nostro Programma!

Tutto questo cosa vuol dire?

Quando programmiamo con Java e quando compiliamo, il file che otteniamo e' un Bytecode. E' un file con estensione CLASS. Questo File che otteniamo girera', potra' essere lanciato su ogni tipo di piattaforma purche' su ogni tipo di piattaforma sia installata una Virtual Machine cioe' un Interprete. Il Nostro programma, scritto da noi in Java per girare, per funzionare, per essere eseguito, ha bisogno della Java Virtual Machine installata, cioe' del Suo interprete a differenza del Linguaggio C, dal quale otteremo una volta compilato il File Binario!

Punti di Forza di Java

  1. Orientato ad oggetti
  2. Portabilita' (grazie al Bytecode)
  3. Semplicita'
  4. Solidita' (fortemente Tipizzato, cioe' se non dichiariamo il Tipo, il compilatore non ci permette la Sua Compilazione) e inoltre il Garbage Collection
    gestione degli eccezioni. Se non ci fossero Le Eccezioni, Java perderebbe molto! Gestiscono il flusso di un programma in caso di Anomalie!
  5. Interpretazioni ad elevate prestazioni (Il Bytecode, progettato in modo da essere tradotto in codice macchina nativo)
  6. Possibilita' di lavorare in modo distribuito -> Java permette di gestione protocolli HTTP e FTP
  7. Dinamicita' --> Sapendo che uno dei problemi di Java e' il Memory Leak, cioe' perdita di memoria, sara' il Garbage Collection ad occuparsene! Scopriremo in seguito

Chissa' se Java usa i puntatori? Non usa i Puntatori!