Score %0 (0 correct0 incorrect20 unanswered)

Q1. Dato il stringa "fragole" salvato in una variabile chiamata frutta, cosa restituirebbe frutta.substring(2, 5)?

  • rawb
  • raw
  • awb
  • traw

Ragionamento: Il metodo substring accetta due argomenti.

  • Il primo argomento è l'indice da cui iniziare (include quel carattere all'indice 2)
  • e il secondo l'indice della stringa in cui terminare la sottostringa (esclude il carattere all'indice 5).
  • Le stringhe in Java sono come array di caratteri.
  • Pertanto, il metodo restituirà "raw" poiché sono i caratteri negli indici 2, 3 e 4.
  • È anche possibile prendere l'indice finale e sottrarre l'indice iniziale da esso, per determinare quanti caratteri saranno inclusi nella sottostringa (5-2=3).

Q2. Come si può ottenere il polimorfismo a tempo di esecuzione in Java?

  • sovraccarico del metodo
  • sovrascrittura del metodo
  • sovrascrivere il metodo
  • chiamata del metodo

Q3. Date le seguenti definizioni, quale di queste espressioni NON restituirà vero?

boolean b1 = true, b2 = false; int i1 = 1, i2 = 2;

  • (i1 | i2) == 3
  • i2 && b1
  • b1 || !b2
  • (i1 ^ i2) < 4

Ragionamento: i2 && b1 non è consentito tra int e boolean.

Q4. Qual è l'output di questo codice?

class Main {
  public static void main (String[] args) {
    int array[] = {1, 2, 3, 4};
    for (int i = 0; i < array.size(); i++) {
       System.out.print(array[i]);
    }
  }
}
  • Non verrà compilato a causa della riga 4.
  • Non verrà compilato a causa della riga 3.
  • 123
  • 1234

Ragionamento: array.size() non è valido, per ottenere la dimensione o la lunghezza dell'array si può usare array.length.

Q5. Quali delle seguenti opzioni possono sostituire il FRAMMENTO DI CODICE per far stampare "Hello World"?

interface Interface1 {
    static void print() {
        System.out.print("Hello");
    }
}

interface Interface2 {
    static void print() {
        System.out.print("World!");
    }
}
  • super1.print(); super2.print();
  • this.print();
  • super.print();
  • Interface1.print(); Interface2.print();

Referenza

Q6. Cosa stampa il seguente codice?

String str = "abcde";
str.trim();
str.toUpperCase();
str.substring(3, 4);
System.out.println(str);
  • CD
  • CDE
  • D
  • "abcde"

Ragionamento: È necessario assegnare il risultato di trim alla variabile String. Altrimenti, non funzionerà, poiché le stringhe in Java sono immutabili.

Q7. Qual è il risultato di questo codice?

class Main {
    public static void main (String[] args){
        System.out.println(print(1));
    }
    static Exception print(int i){
        if (i>0) {
            return new Exception();
        } else {
            throw new RuntimeException();
        }
    }
}
  • Mostrerà un traceback con un'eccezione a tempo di esecuzione.
  • "java.lang.Exception"
  • Verrà eseguito e genererà un'eccezione.
  • Non verrà compilato.

Q8. Quale classe può compilare date queste dichiarazioni?

interface One {
    default void method() {
        System.out.println("One");
    }
}

interface Two {
    default void method () {
        System.out.println("One");
    }
}
  • A
class Three implements One, Two {
    public void method() {
        super.One.method();
    }
}
  • B
class Three implements One, Two {
    public void method() {
        One.method();
    }
}
  • C
class Three implements One, Two {
}
  • D
class Three implements One, Two {
    public void method() {
        One.super.method();
    }
}

Q9. Qual è l'output di questo codice?

class Main {
    public static void main (String[] args) {
        List list = new ArrayList();
        list.add("hello");
        list.add(2);
        System.out.print(list.get(0) instanceof Object);
        System.out.print(list.get(1) instanceof Integer);
    }
}
  • Il codice non viene compilato.
  • truefalse
  • truetrue
  • falsetrue

Q10. Dati i seguenti due classi, qual è l'output della classe Main?

package mypackage;
public class Math {
    public static int abs(int num){
        return num < 0 ? -num : num;
    }
}
package mypackage.elementary;
public class Math {
    public static int abs (int num) {
        return -num;
    }
}
import mypackage.Math;
import mypackage.elementary.*;

class Main {
    public static void main (String args[]){
        System.out.println(Math.abs(123));
    }
}
  • Le righe 1 e 2 generano errori di compilazione a causa di conflitti di nomi delle classi.
  • "-123"
  • Genererà un'eccezione alla riga 5.
  • "123"

Spiegazione: La risposta è "123". Il metodo abs() si valuta a quello dentro la classe mypackage.Math, perché le dichiarazioni di import del tipo:

import packageName.subPackage.*

è [Dichiarazioni di importazione su richiesta del tipo](https://docs.oracle.com/javase/spec

s/jls/se7/html/jls-7.html#jls-7.5.2), che non causano mai l'oscuramento di altre dichiarazioni.

Q11. Qual è il risultato di questo codice?

class MainClass {
    final String message() {
        return "Hello!";
    }
}

class Main extends MainClass {
    public static void main(String[] args) {
        System.out.println(message());
    }

     String message() {
         return "World!";
     }
 }
  • Non verrà compilato a causa della riga 10.
  • "Hello!"
  • Non verrà compilato a causa della riga 2.
  • "World!"

Spiegazione: Errore di compilazione alla riga 10 a causa del fatto che i metodi finali non possono essere sovrascritti, e qui message() è un metodo finale, e anche notare che il metodo message() non statico non può essere referenziato da un contesto statico.

Q12. Dato questo codice, quale comando restituirà "2"?

class Main {
    public static void main(String[] args) {
        System.out.println(args[2]);
    }
}
  • java Main 1 2 "3 4" 5
  • java Main 1 "2" "2" 5
  • java Main.class 1 "2" 2 5
  • java Main 1 "2" "3 4" 5

Q13. Qual è l'output di questo codice?

class Main {
    public static void main(String[] args){
        int a = 123451234512345;
        System.out.println(a);
    }
}
  • "123451234512345"
  • Nulla: questo non verrà compilato.
  • un valore intero negativo
  • "12345100000"

Ragionamento: Il tipo int in Java può essere utilizzato per rappresentare qualsiasi numero intero da -2147483648 a 2147483647. Pertanto, questo codice non verrà compilato poiché il numero assegnato a 'a' è più grande di quanto il tipo int possa contenere.

Q14. Qual è l'output di questo codice?

class Main {
    public static void main (String[] args) {
        String message = "Hello world!";
        String newMessage = message.substring(6, 12)
            + message.substring(12, 6);
        System.out.println(newMessage);
    }
}
  • Il codice non viene compilato.
  • Viene generata un'eccezione a runtime.
  • "world!!world"
  • "world!world!"

Q15. Come si scrive un ciclo for-each che itererà su ArrayList<Pencil>pencilCase?

  • for (Pencil pencil : pencilCase) {}
  • for (pencilCase.next()) {}
  • for (Pencil pencil : pencilCase.iterator()) {}
  • for (pencil in pencilCase) {}

Q16. Cosa stampa questo codice?

System.out.print("apple".compareTo("banana"));
  • 0
  • Numero positivo
  • Numero negativo
  • Errore di compilazione

Q17. Hai un ArrayList di nomi che vuoi ordinare in ordine alfabetico. Quale approccio NON funzionerebbe?

  • names.sort(Comparator.comparing(String::toString))
  • Collections.sort(names)
  • names.sort(List.DESCENDING)
  • names.stream().sorted((s1, s2) -> s1.compareTo(s2)).collect(Collectors.toList())

Q18. Implementando l'incapsulamento, non è possibile accedere direttamente alle proprietà _ della classe a meno che si stia scrivendo codice all'interno della classe stessa.

  • privato
  • protetto
  • nessun-modificatore
  • pubblico

Q19. Qual è il modo più aggiornato per istanziare la data corrente?

  • new SimpleDateFormat("yyyy-MM-dd").format(new Date())
  • new Date(System.currentTimeMillis())
  • LocalDate.now()
  • Calendar.getInstance().getTime()

Q20. Completa la riga per creare un pezzo di codice che dirà se int0 è divisibile per 5:

boolean isDivisibleBy5 = _____

  • int0 / 5 ? true: false
  • int0 % 5 == 0
  • int0 % 5 != 5
  • Math.isDivisible(int0, 5)