Domande e risposte: Java

Ripassa Java: ecco una selezione di domande di ogni livello, con risposta e spiegazione. Per metterti alla prova senza vedere le risposte, gioca ai quiz.

Gioca ai quiz Java

Facile

Quale informatico ha ideato il linguaggio Java presso Sun Microsystems?

Risposta : James Gosling

James Gosling ha ideato Java presso Sun Microsystems; il linguaggio è stato annunciato nel 1995.

Quale componente carica ed esegue il bytecode Java su una macchina?

Risposta : La macchina virtuale Java (JVM)

La JVM legge il bytecode e lo esegue, e questo permette allo stesso programma di girare su più sistemi operativi.

Quale comando del JDK compila un file sorgente .java in bytecode?

Risposta : javac

javac produce file .class che contengono il bytecode; il comando java esegue poi questo bytecode nella JVM.

Quale tipo primitivo di Java può assumere solo i valori true e false?

Risposta : boolean

« boolean » è il tipo primitivo dei valori logici; « bool » non è una parola chiave di Java.

Di che tipo è il valore 'A', scritto tra apici singoli, in Java?

Risposta : char

Tra apici singoli un valore è un carattere: il tipo char codifica un carattere su 16 bit (UTF-16).

Quale affermazione su JDK e JRE è esatta?

Risposta : Il JDK contiene gli strumenti di sviluppo, il JRE serve solo a eseguire

Il JDK raccoglie gli strumenti per sviluppare (tra cui javac); il JRE contiene solo ciò che serve per eseguire un programma Java.

Quale metodo della classe String restituisce il suo numero di caratteri?

Risposta : length()

Il metodo length() restituisce il numero di caratteri di una String; size() è il metodo delle collezioni, come List.

Con il codice int[] t = new int[5]; qual è l'ultimo indice valido dell'array t?

Risposta : 4

Gli indici partono da 0: un array di cinque celle ha gli indici 0, 1, 2, 3 e 4.

Medio

Quale parola chiave dichiara che una classe eredita da un'altra classe in Java?

Risposta : extends

extends collega una sottoclasse alla sua superclasse, da cui riprende i membri accessibili.

Quale modificatore rende un attributo accessibile solo dal codice della propria classe?

Risposta : private

private limita l'accesso alla classe che dichiara l'attributo; è un pilastro dell'incapsulamento, con metodi di accesso se necessario.

Qual è la particolarità sintattica di un costruttore Java?

Risposta : Porta il nome esatto della classe e non ha tipo di ritorno

Un costruttore porta il nome della sua classe e non ha tipo di ritorno; new lo chiama per inizializzare l'oggetto alla sua creazione.

A chi appartiene un attributo dichiarato con la parola chiave static?

Risposta : Alla classe stessa, condiviso da tutti i suoi oggetti

Un attributo static esiste una sola volta per la classe: è condiviso da tutti gli oggetti e si usa senza creare un oggetto.

Come dichiara una classe che fornisce il codice dei metodi di un'interfaccia?

Risposta : Con la parola chiave implements

Una classe che implementa un'interfaccia lo indica con implements e deve fornire il codice di ogni metodo astratto dell'interfaccia.

Quale blocco associato a try viene eseguito dopo il try, che sia stata sollevata un'eccezione o no?

Risposta : finally

finally viene eseguito dopo il try e dopo un eventuale catch, che l'eccezione sia sollevata o no (salvo arresto brusco della JVM).

Quale interfaccia delle collezioni non accetta mai due elementi uguali secondo equals?

Risposta : Set

Un Set non conserva i duplicati: add restituisce false se l'elemento è già presente. HashSet ne è un'implementazione comune.

In Map<String, Integer>, a cosa corrisponde il tipo String?

Risposta : Al tipo delle chiavi

Il primo parametro di Map indica il tipo delle chiavi, il secondo quello dei valori associati.

Difficile

In quale zona di memoria la JVM colloca gli oggetti creati con new?

Risposta : Lo heap

Gli oggetti vivono nello heap, condiviso tra i thread; lo stack di ogni thread conserva le variabili locali e i riferimenti a questi oggetti.

Che cosa fa il garbage collector della JVM?

Risposta : Libera la memoria degli oggetti diventati inaccessibili

Il garbage collector recupera la memoria degli oggetti non più raggiungibili dal programma; non gestisce né i file né il bytecode.

Che cosa fa il metodo concat su una String in Java?

Risposta : Non modifica l'originale e restituisce il risultato in una String

Una String è immutabile: nessun metodo ne modifica il contenuto, che restituiscono il risultato sotto forma di nuova String (qui la concatenazione).

Qual è l'effetto principale della parola chiave synchronized su un metodo d'istanza?

Risposta : Un solo thread alla volta può eseguire i metodi sincronizzati di questo oggetto

Ogni oggetto possiede un lock: un thread deve ottenerlo per entrare in un metodo sincronizzato, il che evita gli accessi concorrenti.

Quale modificatore garantisce che un thread legga l'ultimo valore scritto in un campo da un altro thread?

Risposta : volatile

volatile garantisce la visibilità delle scritture tra thread, ma non rende atomica un'operazione composta come x++.

Qual è il ruolo principale di un ExecutorService?

Risposta : Gestire un pool di thread e inviarvi dei task

Un ExecutorService separa l'invio dei task dalla creazione dei thread, e riutilizza i thread di un pool.

Che cos'è un'interfaccia funzionale in Java?

Risposta : Un'interfaccia che dichiara esattamente un metodo astratto

Una lambda può implementare un'interfaccia funzionale; l'annotazione @FunctionalInterface è facoltativa, ma se è presente il compilatore verifica la regola.

In quale anno è uscita la versione Java 8, che introduce le lambda e l'API Stream?

Risposta : 2014

Java 8 è uscito nel marzo 2014; ha anche portato Optional e le interfacce funzionali del package java.util.function.

Temi simili

Gioca ai quiz Java