Qual è il modello fondamentale per l'architettura dei computer?
Il modello di Von Neumann.
Quali sono i due tipi principali di memoria?
Memoria primaria (RAM, ROM) e memoria secondaria (HDD, SSD).
Qual è la caratteristica principale della RAM?
È veloce ma volatile (perde i dati allo spegnimento).
Quali componenti principali costituiscono la CPU?
ALU (Arithmetic Logic Unit), CU (Control Unit) e registri.
Qual è la funzione del ciclo di CPU?
Il ciclo di fetch-decode-execute, per l'esecuzione delle istruzioni.
Qual è la struttura di base di un programma Java?
Una classe con un metodo main.
Come si stampa un output in Java?
Usando System.out.println() o System.out.print().
Cosa sono le variabili in Java?
Zone di memoria per conservare valori di un determinato tipo.
Quali sono le regole per i nomi delle variabili?
Devono iniziare con una lettera o _, non possono essere parole chiave, non possono contenere separatori o simboli di operatori.
Cosa sono gli operatori in Java?
Come si concatenano le stringhe?
Utilizzando l'operatore +.
Cosa fa il metodo substring()?
Estrae una sottostringa da una stringa.
Cosa sono i tipi di dati primitivi in Java?
Tipi di dati fondamentali come int, double, char, boolean.
Come si dichiara una costante in Java?
Utilizzando la parola chiave final.
A cosa serve la parola chiave import?
Per accedere a classi di altri pacchetti.
Cosa sono gli oggetti?
Entità con metodi pubblici e implementazione nascosta.
Cosa sono i metodi?
Azioni che un oggetto può compiere, con parametri espliciti e impliciti.
Quali sono esempi di metodi di una classe?
deposit, withdraw, getBalance (in BankAccount).
Come si definisce una variabile oggetto?
Indicando il nome della classe e il nome della variabile.
Cosa fa l'operatore new?
Crea un nuovo oggetto di una classe.
Cosa sono le variabili di esemplare?
Variabili private di un oggetto, con una copia per ciascun oggetto.
Cosa rappresenta la parola chiave this?
Il riferimento all'oggetto corrente all'interno di un metodo.
Come si eseguono decisioni in Java?
Con l'enunciato if.
Come si realizzano alternative?
Con la clausola else dell'enunciato if.
Come si confrontano le stringhe?
Con il metodo compareTo().
Cosa sono gli operatori booleani?
&& (and), || (or), ! (not).
Cosa fa l'enunciato while?
Esegue un ciclo basato su una condizione.
Come funziona l'enunciato for?
Esegue un ciclo con inizializzazione, condizione e aggiornamento.
Cosa fa l'enunciato do...while?
Esegue un ciclo con corpo eseguito almeno una volta.
Come si esce da un ciclo while?
Con l'enunciato break.
Come si accede ai caratteri di una stringa?
Con il metodo charAt().
Cosa sono le variabili statiche?
Variabili condivise da tutti gli oggetti di una classe.
Come si accede a una costante statica?
Usando il nome della classe seguito dal punto e dal nome della costante (es. Math.PI).
Qual è il ciclo di vita di una variabile locale?
Esiste solo all'interno del metodo in cui è dichiarata.
Come si accede agli argomenti sulla riga di comando?
Tramite l'array args del metodo main.
Cosa fa < e > nel reindirizzamento di input e output?
< reindirizza l'input, > reindirizza l'output.
Cosa fa il simbolo | nelle canalizzazioni (pipes)?
Concatena l'output di un programma all'input di un altro.
Quali classi si usano per manipolare file di testo?
FileReader e FileWriter.
Come viene implementato il passaggio di parametri in Java?
Per valore.
Come si definisce la ricorsione?
Un metodo che richiama se stesso.
Qual è la caratteristica di una pila (stack)?
LIFO (Last-In, First-Out).
Quali sono i metodi fondamentali di una pila?
push, pop, top, isEmpty, makeEmpty.
Qual è la caratteristica di una coda (queue)?
FIFO (First-In, First-Out).
Quali sono i metodi fondamentali di una coda?
enqueue, dequeue, getFront.
Come funziona l'algoritmo Merge Sort?
Algoritmo di ordinamento ricorsivo basato su divide et impera.
Cosa è una mappa (Map)?
Struttura dati che associa chiavi univoche a valori.
Cosa è un dizionario (Multimappa)?
Struttura dati che associa chiavi a valori, con possibili chiavi duplicate.
Come si implementa una mappa con array?
Tramite l'utilizzo di una tabella (array).
Cosa è la funzione di Hash?
Trasforma le chiavi in indici di una tabella.
Cosa sono le collisioni nella tabella Hash?
Quando più chiavi hanno lo stesso indice.
Quali metodi si usano per aggiungere, rimuovere e accedere agli elementi di un vettore?
add, remove, get, set.
Qual è la differenza tra memoria primaria e secondaria?
La memoria primaria (RAM, ROM) è veloce e accessibile direttamente dalla CPU, mentre la memoria secondaria (HDD, SSD) è più lenta ma non volatile.
Cosa si intende per accesso casuale in memoria?
Il tempo per accedere a un dato non dipende dalla sua posizione fisica in memoria.
Quali sono le caratteristiche principali di una SSD rispetto a un HDD?
Gli SSD sono più veloci, più affidabili e usano chip di memoria flash, mentre gli HDD usano dischi magnetici.
Qual è la funzione del Program Counter (PC) nella CPU?
Contiene l'indirizzo di memoria della prossima istruzione da eseguire.
In cosa consiste il ciclo fetch-decode-execute?
La CPU recupera l'istruzione dalla memoria, la decodifica e infine la esegue.
Cosa sono i commenti e come si usano in Java?
I commenti sono annotazioni nel codice ignorate dal compilatore, utili per la comprensione del programma. Si usano // per commenti su una riga e /* ... */ per commenti su più righe.
Qual è la differenza tra la definizione e l'assegnazione di una variabile?
La definizione specifica il tipo e il nome della variabile, mentre l'assegnazione le assegna un valore.
Cosa sono le promozioni e il casting?
Le promozioni sono conversioni automatiche a tipi più capaci, mentre il casting è una conversione esplicita da un tipo a un altro.
Come si usano i metodi della classe Math?
Sono metodi statici per operazioni matematiche, come Math.pow(x, y) per l'elevamento a potenza e Math.sqrt(x) per la radice quadrata.
Qual è la differenza tra print e println?
print stampa senza andare a capo, mentre println va a capo dopo la stampa.
Come si ottiene una stringa in maiuscolo o minuscolo?
Con i metodi toUpperCase() e toLowerCase() della classe String.
Cosa è un parametro implicito di un metodo?
Il riferimento all'oggetto su cui viene invocato il metodo (es. greeting in greeting.length()).
Come si ottiene una copia di un oggetto?
Creando un nuovo oggetto con lo stesso stato e inizializzandolo adeguatamente.
Cosa sono gli attributi (o variabili di esemplare) di una classe?
Sono le variabili che definiscono lo stato di un oggetto e sono private per garantire l'incapsulamento.
Qual è lo scopo dell'incapsulamento?
Proteggere lo stato interno di un oggetto e controllare l'accesso alle sue variabili.
Cosa sono i costruttori in una classe?
Metodi speciali usati per inizializzare un nuovo oggetto della classe.
Qual è la differenza tra variabili private, public, e con accesso di default?
private: visibili solo all'interno della classe; public: visibili ovunque; accesso di default: visibili nello stesso package.
Come si accede ad un membro statico di una classe?
Utilizzando il nome della classe seguito dall'operatore punto . e dal nome del membro statico.
Cosa sono i metodi getter e setter?
Metodi pubblici usati per accedere e modificare le variabili private di un oggetto.
Cosa sono gli operatori relazionali?
Perché è necessario usare una tolleranza nel confronto tra numeri in virgola mobile?
Per via degli errori di arrotondamento.
Cosa significa la valutazione a corto circuito delle espressioni booleane?
La valutazione termina appena è possibile determinare il risultato finale (es. se la prima parte di una && è false, la seconda non viene valutata).
Come si esce da un ciclo for usando l'enunciato break?
L'enunciato break termina immediatamente l'esecuzione del ciclo for in cui si trova.
Come si confrontano due stringhe lessicograficamente?
Utilizzando il metodo compareTo().
Come si dichiara e si crea un array in Java?
Dichiarazione: NomeTipo[] nomeRiferimento; Creazione: new NomeTipo[lunghezza].
Qual è il primo e l'ultimo indice di un array?
Il primo indice è 0, l'ultimo è lunghezza - 1.
Cosa succede se si accede ad un array con un indice non valido?
Viene lanciata l'eccezione ArrayIndexOutOfBoundsException.
Come si copia un array in Java?
Creando un nuovo array e copiando elemento per elemento (o usando System.arraycopy()).
Cosa sono gli array riempiti solo in parte?
Array in cui non tutte le posizioni contengono dati significativi, con una variabile per tenere traccia della parte piena.
Come si ridimensiona un array in Java?
Creando un nuovo array più grande, copiando i dati e aggiornando il riferimento.
Qual è la differenza tra pila (stack) e coda (queue)?
La pila usa una logica LIFO (l'ultimo ad entrare è il primo ad uscire), mentre la coda usa una logica FIFO (il primo ad entrare è il primo ad uscire).
Qual è il comportamento di un insieme (set)?
Un contenitore di oggetti unici, senza un particolare ordinamento.
Come si realizza una tabella hash?
Utilizzando una funzione di hash per trasformare le chiavi in indici di un array (o una tabella).
Come si gestiscono le collisioni in una tabella hash?
Utilizzando liste (o bucket) per ogni cella dell'array, dove vengono memorizzate le coppie con la stessa chiave ridotta.
Qual è la funzione di un iteratore in una lista concatenata?
Fornisce un modo per accedere in sequenza agli elementi della lista senza esporre la sua implementazione interna.
Quali sono le operazioni principali di una lista concatenata?
addFirst, addLast, removeFirst, removeLast, getFirst, getLast, isEmpty, makeEmpty.
Come si realizza l'ordinamento per selezione?
Cercando l'elemento minore e scambiandolo con il primo elemento non ordinato, ripetendo il processo.
Quali sono le prestazioni dell'ordinamento per selezione?
Ha un andamento quadratico in funzione delle dimensioni dell'array, cioè O(n²).