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.
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 JavaRisposta : James Gosling
James Gosling ha ideato Java presso Sun Microsystems; il linguaggio è stato annunciato nel 1995.
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.
Risposta : javac
javac produce file .class che contengono il bytecode; il comando java esegue poi questo bytecode nella JVM.
Risposta : boolean
« boolean » è il tipo primitivo dei valori logici; « bool » non è una parola chiave di Java.
Risposta : char
Tra apici singoli un valore è un carattere: il tipo char codifica un carattere su 16 bit (UTF-16).
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.
Risposta : length()
Il metodo length() restituisce il numero di caratteri di una String; size() è il metodo delle collezioni, come List.
Risposta : 4
Gli indici partono da 0: un array di cinque celle ha gli indici 0, 1, 2, 3 e 4.
Risposta : extends
extends collega una sottoclasse alla sua superclasse, da cui riprende i membri accessibili.
Risposta : private
private limita l'accesso alla classe che dichiara l'attributo; è un pilastro dell'incapsulamento, con metodi di accesso se necessario.
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.
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.
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.
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).
Risposta : Set
Un Set non conserva i duplicati: add restituisce false se l'elemento è già presente. HashSet ne è un'implementazione comune.
Risposta : Al tipo delle chiavi
Il primo parametro di Map indica il tipo delle chiavi, il secondo quello dei valori associati.
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.
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.
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).
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.
Risposta : volatile
volatile garantisce la visibilità delle scritture tra thread, ma non rende atomica un'operazione composta come x++.
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.
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.
Risposta : 2014
Java 8 è uscito nel marzo 2014; ha anche portato Optional e le interfacce funzionali del package java.util.function.