Vai al contenuto

Java/Istruzioni

Wikibooks, manuali e libri di testo liberi.

Java

Linguaggio Java
Linguaggio Java

categoria · sviluppo · modifica
Come posso contribuire?

→ Vai su Wikiversity

Java:  Guida alla programmazioneJava/Introduzione - Specifica di linguaggio - Libreria standardJava/Comunicazione seriale

Tipi di datoJava/Tipi di datoEspressioniJava/OperatoriVariabiliJava/Variabili localiIstruzioniJava/IstruzioniStrutture di controlloJava/Strutture di controlloPackageJava/Package
Classi e oggettiJava/Classi e oggettiOggettiJava/OggettiMetodiJava/MetodiMetodi (cont.)Java/Metodi/2ArrayJava/Array
Modificatori di accessoJava/Modificatori di accessoEreditarietàJava/Ereditarietà
Gestione delle eccezioniJava/Gestione delle eccezioniGenericsJava/Generics
Thread e parallelismoJava/MultithreadingInterblocco ricontrollatoJava/Interblocco ricontrollato
Alcune differenze con il CJava/Concetti fondamentaliLessicoJava/LessicoGrammaticaJava/Grammatica

Introduzione

[modifica | modifica sorgente]

Il corpo di un metodo è costituito da una sequenza di istruzioni. Le istruzioni disponibili sono elencate in questa pagina e nella pagina "Strutture di controllo".

Istruzione vuota

[modifica | modifica sorgente]

L'istruzione vuota è costituita dal solo punto e virgola. Essa non esegue nulla. Viene tipicamente usata in combinazione con le strutture di controllo, oppure può essere usata apposta per chiarezza.

Nell'esempio che segue, le righe che contengono una istruzione vuota sono marcate con la scritta "Qui".

public void metodo(int[] valori) throws ArrayIndexOutOfBoundsException {
    ; // Qui
    
    
    // Cerca il primo indice i tale che valori[i] != 0
    int i = 0;
    for(valori[i] == 0; i++); // Qui
    // a questo punto valori[i] != 0
    
    if (i == 0)
        ; // Qui
    else
        System.out.println("i vale " + i);
    
    //ciclo infinito
    while(true); // Qui
}

Blocco di istruzioni

[modifica | modifica sorgente]

Una coppia di parentesi graffe rappresenta una singola istruzione che, a sua volta, racchiude all'interno un numero arbitrario di istruzioni. Eseguire il blocco vuol dire eseguire le istruzioni di cui è composto, nell'ordine in cui sono scritte.

Viene tipicamente usato in combinazione con le strutture di controllo, oppure può essere usato apposta per chiarezza.

void metodo(int[] valori) {
    // Calcolo il primo indice i tale che valori[i] != 0
    {
        int i = 0;
        for(valori[i] == 0; i++);
        // a questo punto valori[i] != 0
    }
    
    if (i == 0) {
    } else {
        System.out.println("i vale " + i);
        System.out.println("valori[i] vale " + valori[i]);
    }
    
    while(true) {} //ciclo infinito
}

Dichiarazioni di variabili locali

[modifica | modifica sorgente]
Per approfondire, vedi Java/Variabili locali.

Assegnazione di variabili

[modifica | modifica sorgente]

L'assegnazione di una variabile, tramite l'operatore =, uno degli operatori che hanno la forma #=, oppure gli operatori ++ e --, è considerata un'istruzione.

Invocazioni di metodi o costruttori

[modifica | modifica sorgente]

L'invocazione di un metodo è considerata un'istruzione.

Anche la creazione di un oggetto è considerata una istruzione: è perfettamente legale scrivere

new Object();

in quanto corrisponde all'invocazione del costruttore della classe desiderata. Tuttavia, il reference dell'oggetto creato viene perso, quindi l'oggetto sarà automaticamente distrutto.

L'istruzione assert prende in ingresso un'espressione booleana e (opzionalmente) una stringa.

assert condizione;

oppure

assert condizione : messaggio;

dove condizione è un'espressione di tipo booleano e messaggio è un'espressione di tipo stringa.

Il comportamento a tempo di esecuzione è il seguente:

  1. controlla se le asserzioni sono abilitate per la classe in cui si trova;
  2. in caso affermativo,
    1. calcola l'espressione
    2. se il valore calcolato è false, lancia una java.lang.AssertionError usando come argomento la stringa, oppure una stringa di default se non è stata passata.

Il meccanismo per abilitare le asserzioni per una certa classe dipende dalla macchina virtuale. Sulla macchina virtuale Oracle, si passa alla riga di comando il parametro -ea o -enableassertions[A 1].

Le asserzioni sono utili in fase di sviluppo, ad esempio come piccoli test integrati nel programma, oppure per verificare le precondizioni e le postcondizioni dei metodi.

Automatic Resource Management

[modifica | modifica sorgente]

Better Resource Management with Java SE 7

synchronized

[modifica | modifica sorgente]
Per approfondire, vedi Multithreading.

Bibliografia

[modifica | modifica sorgente]


Approfondimenti
  1. java - the Java application launcher