DIPARTIMENTO   DI   INFORMATICA
Università di Torino

  Programmazione in Rete e Laboratorio  
  Corso di Studi in Informatica, Univ. di Torino  
  a.a. 2001/02, 20 marzo 2002  
   
     
1 Siano a1 e a2 due variabili di classe A. L'assegnamento a2=a1  
1/2 associa ad a2 un riferimento allo stesso oggetto associato ad a1 X
  fa una copia dell'oggetto associato ad a1 e lo assegna ad a2  
  crea una nuova istanza della classe A e la assegna ad a2  
  sposta da a1 ad a2 l'oggetto precedentemente associato ad a1  
     
2 Il garbage collector  
1/2 azzera la memoria prima di iniziare l'esecuzione  
  azzera la memoria al termine dell'esecuzione  
  recupera la memoria non accessibile durante l'esecuzione X
  azzera le variabili locali degli oggetti  
     
3 La dimensione di un array  
1/2 è fissata quando si dichiara una variabile di tipo array  
  non è mai specificata  
  può essere modificata durante l'esecuzione  
  è fissata quando si crea un array X
     
4 Sia java.util.Vector s = new java.util.Vector(); quale delle seguenti  
1 istruzioni causa un errore a tempo di compilazione  
  s.add("Prova esame");  
  s.add(new java.util.Vector());  
  s.add(5); X
  s.add(null);  
     
5 Il controllo statico dei tipi è fatto  
1/2 dall'interprete prima di inziare l'esecuzione  
  dall'interprete durante l'esecuzione  
  dal compilatore X
  da nessuno  
     
6 Se a è una variabile della classe A e b è una variabile della  
1 classe B diversa da A, l'assegnamento a=b è possibile  
  sempre  
  mai  
  se A è una sottoclasse di B  
  se B è una sottoclasse di A X
     
7 Data la chiamata p.m(), binding dinamico significa che  
1 si esegue il metodo m dell'oggetto legato a p al momento dell'esecuzione della chiamata X
  si esegue il metodo m della classe di p  
  si esegue il metodo m di Object  
  si esegue il metodo m della sopraclasse di p  
     
8 Dato: class C extends A implements B  
1 A e B possono essere due classi qualunque  
  A e B sono due interfacce  
  A deve essere una classe astratta e B un'interfaccia  
  A è una classe qualunque e B un'interfaccia X
     
9 Data una clase astratta A, quale delle seguenti affermazioni è sbagliata?  
1 si possono creare sottoclassi di A  
  A può contenere metodi non definiti  
  si possono creare oggetti della classe A X
  si possono dichiarare variabili della classe A  
     
10 Per gestire un evento generato da un JButton occorre  
1/2 creare un oggetto "listener" con un metodo opportuno X
  definire un metodo di JButton  
  definire un metodo della classe Event  
  l'evento è gestito automaticamente  
     
11 Se si verifica una eccezione, un exception handler: try {} catch .  
1 cattura l'eccezione e blocca l'esecuzione  
  cattura l'eccezione, esegue il codice della catch e blocca l'esecuzione  
  cattura l'eccezione, esegue il codice della catch e continua l'esecuzione X
  passa l'eccezione al metodo chiamante  
     
12 Sia A una classe, in Java l'istruzione "A nomeVariabile;"  
1/2 crea un oggetto della classe A  
  dichiara una variabile di tipo A X
  dichiara una variabile che contiene un oggetto della classe A  
  crea un oggetto che contiene una variabile di tipo A  
     
13 Un costruttore è  
1/2 il primo metodo definito costruendo una classe  
  il metodo utilizzato da un oggetto per inviarsi un messaggio  
  il metodo utilizzato unitamente alla new per creare un oggetto di una classe X
  il compilatore per generare un file .class  
     
14 In una classe Java è possibile trovare  
1/2 due costruttori con nomi diversi  
  due costruttori con nomi diversi ma con la stessa signature (firma, lista dei tipi di parametri)  
  due costruttori con nome uguale e signature diverse X
  due costruttori con nome uguale e signature uguale  
     
15 Siano metodo e altrometodo due metodi definiti synchronized di una  
2 classe A e siano a e b due variabili di tipo A. In qualie caso vi è un  
  possibile accesso in mutua esclusione al codice dei due metodi  
  a e b fanno riferimento a due oggetti diversi e i metodi sono eseguiti nello stesso thread  
  a e b fanno riferimento a due oggetti diversi e i metodi sono eseguiti su due thread diversi  
  a e b fanno riferimento allo stesso oggetto e i metodi sono eseguiti su due thread diversi X
  a e b fanno riferimento allo stesso oggettoe i metodi sono eseguiti nello stesso thread  
     
16 Un file .java contenente una classe public e due non public dopo la compilazione produce  
1/2 un file .class  
  due file .class  
  tre file .class X
  quattro file .class  
     
17 Date le seguenti tre classi, dire quale è l'effetto dell'esecuzione della classe Prova  
2 class A { ...  
  void p() {System.out.println("A") ;}  
  void q() { p();}  
  }  
  class B extends A { ...  
  void p() {System.out.println("B") ;}  
  void r() {super.p();}  
  }  
  class Prova {  
  public static void main (String args[]) {  
  B b = new B();  
  b.p(); B
  b.q(); B
  b.r(); A
  A a = b;  
  a.q(); B
  }  
  }  
     
18 Le istruzioni "A a = new A(); B b = (B)a" producono un errore a runtime  
2 ma non durante la compilazione se  
  A è una classe più generale di B X
  A è una classe più specifica di B  
  B è una classe più generale di A  
  B è una classe né più generale né più specifica di A  
     
19 Il cast "(B)" in "A a = new B(); B b = (B)a" è un downcast se  
2 A è una classe più generale di B X
  A è una classe più specifica di B  
  B è una classe più generale di A  
  B è una classe né più generale né più specifica di A  
     
20 Un file .java può contenere  
1/2 più classi public ma al più una private  
  più classi private e più classi public  
  al più una classe private e una classe public  
  al più una classe public X
     
23 Il codice di una servlet  
  è eseguito da un Web Server e l'output è visualizzato in formato HTML sul browser del client X
  è eseguito dal browser del client e l'output è inviato in formato HTML al server  
  è inviato ad un browser che lo esegue e visualizza l'output in formato HTML  
  è inviato dal browser di un client al server che lo esegue e lo visualizza in formato HTML  
     
22 Data la seguente classe  
2 public class Sub extends Base {  
  public Sub(int j) {  
  }  
  public Sub(int j, int k) {  
  super(j, k);  
  }  
  }  
  Quale dei seguenti costruttori non è necessario che esista esplicitamente  
  nella definizione della classe Base?  
  Base()  
  Base(int j) X
  Base(int j, int k)  
  Quale delle seguenti istruzioni è corretta?  
  Sub s = new Sub()  
  Sub s = new Sub(1, 2) X
  Sub s = new Sub(1, 2, 3)  
     
23 Se A è una sottoclasse di B quale delle seguenti affermazioni è sbagliata  
1 ogni oggetto della classe A è anche un oggetto della classe B  
  l'insieme degli oggetti di tipo B include l'insieme degli oggetti di tipo A  
  se a è un oggetto della classe A allora a ha anche tipo B  
  se b è un oggetto della classe B allora b ha anche tipo A X
     
24 Si consideri la seguente specifica di un'applicazione Java per veterinari:  
1 "Un animale domenistico ha un proprietario, una data di registrazione, e una  
  data di vacinazione. Un gatto è un animale domestico che ha un flag indicante  
  se è stato sterilizzato e una descrizione testuale dei suoi segni caratteristici".  
  Assumendo che la classe AnimaleDomestico sia gia` stata definita, si scrivano  
  le prime righe della definizione della classe Gatto.  
     
     
     
     
     
     
     
25 Date le seguenti due definizioni di classe in files separati, dire quale è  
2 l'effetto dell'esecuzione della classe Test:  
  class Veicolo {  
  public void guida() {  
  System.out.println("guido un veicolo");  
  }  
  }  
  class Camion extends Veicolo {  
  public void guida() {  
  System.out.println("guido un camion");  
  }  
  }  
  public class Test {  
  public static void main(String[] args) {  
  Veicolo v = new Veicolo();  
  Camion c = new Camion();  
  v.guida(); guido un veicolo
  c.guida(); guido un camion
  v = c;  
  v.guida(); guido un camion
  c.guida(); guido un camion
  }  
  }  
     
26 Date le seguenti due definizioni, dire quale delle istruzioni (a lato del box) è errata  
2 interface A {  
  void metodoA();  
  }  
  interface B {  
  void metodoB();  
  }  
  class C implements A, B {  
  void metodoA() { }  
  void metodoB() { }  
  void metodoC() { }  
  public static void main(String[] args) {  
  A a = new C(); B b = new C(); C c = new C();  
  a.metodoA();  
  b.metodoB();  
  a.metodoB(); X
  c.metodoC();  
  }  
  }  
     
27 Date le seguenti due definizioni, dire quale delle istruzioni (a lato del box) è errata  
2 class A {  
  public String toString() { }  
  public static void main(String[] args) {  
  Object o1 = new A(); Object o2; String o3;  
  o2 = o1.toString();  
  o2 = (A)(o1.toString()); X
  o2 = ((A)o1).toString();  
  o3 = o1.toString();  
  }  
  }  
     
     


[Matteo Baldoni's HOME] [Corso di Laurea e Diploma in Informatica] [Department's HOME]

Last update: Feb 14, 2003