Precedente Progr. Distribuita Successiva

2: Java, Strutture Fondamentali

[Slide]
 [Schema]
 [Riferimenti]
 [Link]
[Auto-verifica]

[Inizio pagina]

Slides:


[Inizio pagina]

Schema della lezione:

Obiettivo: Presentare le struttura fondamentali del linguaggio Java

  • Anatomia di un programma Java
  • Commenti
  • Tipi di dati
  • Variabili, assegnazioni ed inizializzzioni
  • Operatori
  • Stringhe
  • Controllo del flusso
  • Gestione di numeri grandi
  • Array

[Inizio pagina]

Materiale bibliografico:

  • Horstmann, Cap. 3
    • Alcuni errori (di traduzione) rilevati sul libro:
      • Pagina 51 (centro pagina): il paragrafo che inizia "I numeri interi lunghi hanno prefisso...." dovrebbe essere "I numeri interi long hanno prefisso..." 
      • Pagina 74 (e seguenti): quello che viene chiamato (sic!) "organo standard di output" (all'inizio del paragrafo "Lettura dell'input")  deve essere chiamato "standard output" oppure "descrittore di standard output". Lo stesso vale per lo standard input.
      • Pag. 102 (primi due righi): la traduzione di "Array index out of bound" è "indice dell'array esterno ai limiti" non "elemento esterno ai limiti dell'array".
      • Pag. 109: (descrizione del metodo sort nella API java.util.arrays) "adottando un algoritmo Quicksort messo a punto" è semplicemente "adottando un algoritmo Quicksort".

[Inizio pagina]

Altri link interessanti:


[Inizio pagina]

Domande per la auto-verifica della comprensione degli argomenti

Le domande più difficili vengono indicate con (*)
  •  Quanti tipi diversi di commenti sono disponibili in Java?
  •  Cosa significa che Java è un linguaggio fortemente tipizzato (strongly typed)?
  •  (*) E perché i progettisti hanno deciso che Java dovesse essere fortemente tipizzato?
  •  Perché la forte tipizzazione di Java permette di scoprire a tempo di compilazione l'errore della linea di codice if (x=0) che invece in C non viene rivelato?
  •  Cosa sono le parole riservate di un linguaggio di programmazione?
  •  Come si definiscono le costanti in Java?
  •  Quale è la differenza tra l'operatore >> e l'operatore >>>? E perché è necessario avere più prodotti?
  •  Cosa è la priorità degli operatori? E la associatività? Ed a cosa servono? (cioè potremmo farne a meno?)
  • (*) In che maniera la "soluzione" adottata dal linguaggio Java per la definizione di un tipo stringa rappresenta un compromesso tra efficienza e modularità?
  •  (*) Perchè è stato scelto di avere sia una classe String (stringhe non modificabili) che la classe StringBuffer (con stringhe modificabili)? Non poteva bastare StringBuffer?
  •  In che cosa l'uso degli array in Java ricorda i "puntatori" in C?

Modificato il: 28/11/2003
Vittorio Scarano
Dipartimento di Informatica ed Applicazioni "R.M. Capocelli"
Università degli Studi di Salerno
vitsca@unisa.it