wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

TPSIT Fondamenti di Java e Intro Web Service

Total questions: 29

Worksheet time: 12mins

Name
Class
Date
1.
Quale dei seguenti comandi si deve eseguire per compilare un programma java ? (1/2 punto)
a)
jcompile
b)
java
c)
javac
d)
javacompile
2.
Quale dei seguenti comandi si deve eseguire per avviare un programma java ? (1/2 punto)
a)
javaexec
b)
java
c)
javac
d)
j
3.
Java utilizza il set di caratteri (1/2 punto)
a)
ASCII
b)
Unicode
c)
ASCII estesa
d)
Binary
4.
Quale dei seguenti comandi si deve eseguire per avviare un programma java ?
a)
javaexec
b)
java
c)
javac
d)
jcompile
5.
Qual'è la causa dell'eccezione NullPointerException ?
a)
Il file non è stato trovato.
b)
La connessione di rete è stata persa.
c)
La memoria del programma è satura.
d)
L'oggetto che si sta usando non è stato inizializzato.
6.
La parola chiave super del linguaggio Java può essere usata per
a)
invocare in una sottoclasse un metodo sovrascritto di una qualsiasi delle superclassi
b)
invocare da una superclasse un metodo sovrascritto in una sottoclasse
c)
invocare in una classe derivata il costruttore di una qualsiasi delle superclassi
d)
riferire in una classe derivata gli attributi derivati
7.
Qual è la differenza tra l'uso di super e super() in Java?
a)
super viene utilizzato per chiamare il costruttore della superclasse, mentre super() è usato per accedere a variabili e metodi della superclasse.
b)
super viene utilizzato per accedere a variabili e metodi della superclasse, mentre super() è usato per chiamare il costruttore della superclasse.
c)
super e super() sono sinonimi e possono essere usati in modo intercambiabile.
d)
super serve solo per chiamare metodi della superclasse, mentre super() viene usato per chiamare metodi statici della superclasse.
8.
Qual è il principale vantaggio dell'uso dei Generics in Java?
a)
Permettono di evitare errori a runtime, consentendo il controllo dei tipi a tempo di compilazione.
b)
Consentono di eseguire il casting automatico tra tipi di dati differenti.
c)
Rendono possibile utilizzare tipi primitivi come int e char direttamente nelle collezioni Java.
d)
Migliorano le prestazioni dei programmi Java, riducendo il tempo di esecuzione.
9.
Quale affermazione è falsa riguardo le API REST?
a)
Le API REST sono progettate per essere stateless, il che significa che ogni richiesta HTTP contiene tutte le informazioni necessarie per essere processata.
b)
REST utilizza tipicamente i metodi HTTP come GET, POST, PUT e DELETE per interagire con le risorse.
c)
Le risorse in un'API REST vengono identificate tramite URL unici, e l'uso di query parameters è sempre obbligatorio.
d)
Le API REST possono restituire dati in diversi formati, come JSON o XML, a seconda di come sono progettate.
10.
Qual è la principale differenza tra un web service REST e un web service SOAP?
a)
I web service REST utilizzano solo il formato XML per lo scambio di dati, mentre i web service SOAP supportano diversi formati come JSON, XML e HTML.
b)
I web service REST sono stateless e leggeri, mentre i web service SOAP richiedono uno stato mantenuto tra le richieste e sono più pesanti a causa della struttura XML.
c)
I web service SOAP possono essere chiamati solo tramite il protocollo HTTP, mentre i web service REST possono utilizzare più protocolli, inclusi HTTP, SMTP e FTP.
d)
I web service REST non supportano la sicurezza, mentre i web service SOAP sono intrinsecamente più sicuri grazie all'uso di WS-Security.
11.
Qual è la differenza principale tra i metodi GET, POST, PUT e DELETE nelle API REST?
a)
Il metodo GET viene usato per aggiornare una risorsa, POST per eliminare una risorsa, PUT per creare una nuova risorsa e DELETE per recuperare i dati di una risorsa.
b)
Il metodo GET viene usato per recuperare i dati di una risorsa, POST per creare una nuova risorsa, PUT per aggiornare o sostituire una risorsa esistente, e DELETE per eliminare una risorsa.
c)
Il metodo GET viene usato per recuperare i dati di una risorsa, POST per recuperare risorse multiple, PUT per aggiornare i dati di una risorsa e DELETE per bloccare una risorsa.
d)
Il metodo GET invia dati al server, POST aggiorna risorse esistenti, PUT elimina risorse, e DELETE crea nuove risorse.
12.
Qual è la differenza principale tra le classi String e StringBuilder in Java?
a)
Le istanze di String sono mutabili, mentre le istanze di StringBuilder sono immutabili.
b)
StringBuilder consente operazioni di concatenazione più efficienti rispetto a String, poiché String è immutabile e ogni modifica crea un nuovo oggetto.
c)
String è utilizzata per operazioni complesse di manipolazione delle stringhe, mentre StringBuilder viene utilizzato solo per operazioni semplici.
d)
StringBuilder è thread-safe, mentre String non lo è.
13.
Quale delle seguenti affermazioni descrive correttamente il polimorfismo in Java?
a)
Il polimorfismo permette a una classe di ereditare da più superclassi allo stesso tempo.
b)
Il polimorfismo consente di definire più costruttori all'interno di una stessa classe con parametri diversi.
c)
Il polimorfismo permette di trattare oggetti di classi diverse in modo uniforme, consentendo a un riferimento di tipo superclass di comportarsi come un oggetto della sua sottoclasse.
d)
Il polimorfismo consente la modifica dei metodi statici in una classe figlia per cambiarne il comportamento ereditato dalla classe padre.
14.
Qual è la principale funzione del bytecode in Java?
a)
Il bytecode è un formato di file eseguibile che viene compilato direttamente dal sistema operativo.
b)
Il bytecode è un codice intermedio generato dal compilatore Java, che può essere eseguito dalla Java Virtual Machine (JVM) su qualsiasi piattaforma.
c)
Il bytecode viene utilizzato esclusivamente per la gestione della memoria all'interno della JVM.
d)
Il bytecode è un linguaggio di programmazione ad alto livello utilizzato per scrivere applicazioni Java.
15.
Quale delle seguenti affermazioni riguardanti le eccezioni in Java è falsa?
a)
Le eccezioni in Java possono essere gestite tramite i blocchi try, catch e finally.
b)
Le eccezioni controllate devono essere dichiarate nella firma del metodo o gestite tramite un blocco try-catch.
c)
Le eccezioni non controllate non devono essere dichiarate e possono verificarsi in qualsiasi punto del programma.
d)
Una volta che un'eccezione è stata gestita, non può più essere lanciata nuovamente nel programma.
16.
Quale delle seguenti affermazioni riguardanti i tipi di eccezioni in Java è vera?
a)
Le eccezioni non controllate (unchecked exceptions) devono sempre essere dichiarate nella firma del metodo in cui si verificano.
b)
Le eccezioni controllate (checked exceptions) non richiedono alcun trattamento e possono essere ignorate.
c)
Le eccezioni controllate (checked exceptions) sono quelle che estendono la classe RuntimeException.
d)
Le eccezioni non controllate (unchecked exceptions) estendono la classe Error o la classe RuntimeException.
17.
Quali di queste eccezioni è una Checked Exception ?
a)
NullPointerException
b)
ArrayIndexOutOfBoundsException
c)
IOException
d)
ArithmeticException
18.

Quale delle seguenti affermazioni riguardanti la classe java.net.HttpClient in Java è vera?

a)

La classe HttpClient è utilizzata per effettuare solo richieste HTTP POST e non supporta altri metodi HTTP come GET, PUT o DELETE.

b)

La classe HttpClient è disponibile a partire da Java 11 e fornisce un modo semplice per inviare richieste HTTP e ricevere risposte.

c)

HttpClient non supporta la gestione delle eccezioni, quindi tutte le chiamate HTTP devono essere gestite in un blocco try-catch.

d)

La classe HttpClient è un'interfaccia e non può essere istanziata direttamente.

19.

Quale delle seguenti affermazioni riguardanti la libreria GSON in Java è vera?

a)

GSON è utilizzata esclusivamente per convertire oggetti Java in formato XML.

b)

GSON può essere utilizzata per serializzare e deserializzare oggetti Java in formato JSON e viceversa.

c)

La libreria GSON non supporta la conversione di oggetti complessi, come quelli contenenti collezioni o mappe.

d)

GSON è una libreria di terze parti che richiede la creazione di un'apposita annotazione per ogni classe da serializzare.

20.

Quale delle seguenti affermazioni riguardanti JDBC (Java Database Connectivity) in Java è vera?

a)

JDBC è un'API che consente di connettersi solo a database MySQL e non supporta altri tipi di database.

b)

JDBC fornisce un modo per eseguire query SQL e gestire le connessioni ai database, consentendo l'interazione con vari database relazionali.

c)

In JDBC, le query SQL devono essere scritte in formato XML per poter essere eseguite correttamente.

d)

JDBC richiede sempre l'uso di un ORM (Object-Relational Mapping) per gestire le operazioni sui database.

21.

Quale delle seguenti affermazioni riguardanti il protocollo HTTP e il protocollo TCP è vera?

a)

HTTP è un protocollo di livello di trasporto, mentre TCP è un protocollo di livello applicativo.

b)

HTTP utilizza TCP come protocollo di trasporto per garantire una comunicazione affidabile tra client e server.

c)

TCP è un protocollo stateless, mentre HTTP mantiene lo stato delle connessioni tra client e server.

d)

HTTP e TCP sono equivalenti e possono essere utilizzati in modo intercambiabile per la comunicazione in rete.

22.

Quale delle seguenti affermazioni è vera riguardo all'Istituto Tecnico Industriale Statale "Alessandro Rossi"?

a)

È stato fondato nel 1878

b)

È stato fondato nel 1960

c)

È stato fondato nel 1860

d)

È stato fondato nel 1985

23.

Quale delle seguenti affermazioni riguardanti i package manager in Java è vera?

a)

I package manager in Java sono utilizzati esclusivamente per installare e gestire le librerie di terze parti, senza supportare la gestione delle dipendenze.

b)

Maven e Gradle sono due dei package manager più popolari in Java, utilizzati per la gestione delle dipendenze e la costruzione dei progetti.

c)

I package manager Java non supportano la configurazione automatica delle variabili di ambiente necessarie per il funzionamento di un'applicazione Java.

d)

I package manager in Java non sono in grado di gestire progetti multi-modulo e non possono essere utilizzati per progetti complessi.

24.

Quale delle seguenti affermazioni riguardanti le classi e i metodi abstract in Java è vera?

a)

Una classe abstract può essere istanziata direttamente come qualsiasi altra classe normale.

b)

Un metodo abstract deve avere un corpo implementato nella classe in cui è dichiarato.

c)

Le classi abstract possono contenere sia metodi abstract che metodi con implementazione concreta.

d)

Una classe abstract non può avere costruttori.

25.

Quale delle seguenti affermazioni riguardanti le interface e le classi abstract in Java è vera?

a)

Le interfacce possono avere implementazioni di metodi, mentre le classi abstract non possono avere metodi non implementati.

b)

Le classi abstract possono estendere solo altre classi abstract, mentre le interfacce possono estendere sia classi normali che astratte.

c)

Una classe può implementare più interfacce, ma può estendere solo una classe astratta alla volta.

d)

Le interfacce possono contenere variabili di istanza, mentre le classi astratte non possono.

26.

Quale delle seguenti affermazioni riguardanti le classi Wrapper in Java è vera?

a)

Le classi Wrapper sono utilizzate per convertire i tipi primitivi in oggetti e viceversa.

b)

Le classi Wrapper non supportano i metodi di confronto tra i valori degli oggetti.

c)

Le classi Wrapper sono mutabili, il che significa che i loro valori possono essere modificati dopo la creazione dell'oggetto.

d)

Le classi Wrapper sono utilizzate solo per i tipi primitivi int, float e double.

27.

Quale delle seguenti affermazioni riguardanti la memoria Stack e la memoria Heap in Java è vera?

a)

La memoria Stack è utilizzata per memorizzare oggetti, mentre la memoria Heap è utilizzata per le variabili primitive.

b)

La memoria Stack gestisce la memoria per variabili locali e riferimenti agli oggetti, mentre la memoria Heap è utilizzata per l'allocazione dinamica degli oggetti.

c)

Gli oggetti memorizzati nella memoria Heap sono più veloci da accedere rispetto alle variabili memorizzate nella memoria Stack.

d)

La memoria Heap è gestita manualmente dal programmatore, mentre la memoria Stack è gestita automaticamente dal Garbage Collector.

28.

Quale delle seguenti affermazioni riguardanti i concetti di sincrono e asincrono nella programmazione è vera?

a)

Le operazioni sincrone bloccano l'esecuzione del programma fino al completamento dell'operazione, mentre le operazioni asincrone permettono al programma di continuare a eseguire altre istruzioni durante l'attesa del completamento dell'operazione.

b)

Le operazioni asincrone non possono restituire valori, mentre le operazioni sincrone possono sempre restituire risultati.

c)

In un contesto asincrono, le funzioni devono sempre essere eseguite in sequenza, mentre nelle operazioni sincrone è possibile eseguire più funzioni contemporaneamente.

d)

Le operazioni sincrone sono sempre più veloci delle operazioni asincrone, poiché non richiedono gestione della concorrenza.

29.

Quale delle seguenti affermazioni riguardanti l'operatore instanceof in Java è vera?

a)

L'operatore instanceof può essere utilizzato solo per confrontare oggetti con classi, ma non con interfacce.

b)

L'operatore instanceof restituirà sempre true se applicato a un oggetto che è stato creato da una sottoclasse di una classe base, indipendentemente dal fatto che il tipo dell'oggetto sia coerente con il tipo della variabile.

c)

L'operatore instanceof non può essere utilizzato con tipi primitivi, poiché può essere applicato solo a oggetti.

d)

L'operatore instanceof può essere utilizzato per determinare se un oggetto è di un tipo specifico, e può anche essere utilizzato per controllare le istanze di interfacce.