giovedì 7 novembre 2013

Q44

Which two are true about Singletons?

A.
A Singleton must implement serializable.


B.
A Singleton has only the default constructor.         


C.
A Singleton implements a factory method.  


D.
A Singleton improves a class’s cohesion.     


E.
Singletons can be designed to be thread-safe.         


 

Risposta BE.


Riferimenti Q39

Q43

Given:
public enum Direction { NORTH, EAST, SOUTH, WEST }
Which statement will iterate through Direction?


A.
for (Direction d : Direction.values()){
             // }

B.
   for (Direction d : Direction.asList()){
             // }

C.
   for (Direction d : Direction.iterator()){
             // }

D.
   for (Direction d : Direction.asArray()){
             // }

 

Risposta A

Riferimenti :

Q42

What are two differences between Callable and Runnable?

A.
A callable can return a value when executing, but a Runnable cannot.

B.
A callable can be executed by a ExecutorService, but a Runnable cannot.

C.
A Callable can be passed to a Thread, but a Runnable cannot.

D.
A callable can throw an Exception when executing, but a Runnable cannot.

 

La risposta è A e D.
Infatti sebbene Runnable e Callable siano simili Runnable non restituisce un risultato e non può throware una checked exception.

Riferimenti:

mercoledì 6 novembre 2013

Q41

Which three are true?

A.
A setAutoCommit (False) method invocation starts a transaction context.

B.
An instance of savepoint represents a point in the current transaction context.

C.
A rollback () method invocation rolls a transaction back to the last savepoint.

D.
A rollback () method invocation releases any database locks currently held by this connection object.

E.
After calling rollback (mysavepoint), you must close the savepoint object by calling mySavepoint.close() .

Risposta A,B e D.

La C è sbagliata perché se si usa un rollback senza passargli un punto di salvataggio si rollbecca l’intera transazione e non fino all’ultimo punto di salvataggio.

La E non è vera perché non serve affatto chiudere il punto di salvataggio.

Q40

Given:

   String s = new String("3");
   System.out.print(1 + 2 + s + 4 + 5);

What is the result?

A.
12345

B.
3345

C.
1239

D.
339
E.
Compilation fails.



La risposta è B.


L’operatore + effettua una somma se ha in ingresso due numeri mentre effettua una concatenazione se ha in ingresso almeno una Stringa. Inoltre per operatori che hanno stessa priorità, come ovviamente è per uno stesso operatore, la precedenza parte da sinistra. Quindi si ha :
 
Quindi essendo s uguale a "3" si ottiene 3345

 

Q39

Which two properly implement a Singleton pattern?

A.
class Singleton {
     private static Singleton instance;

     private Singleton() {
     }

     public static synchronized Singleton getInstance() {
          if (instance == null) {
                instance = new Singleton();
          }
          return instance;
     }
}

 

B.
class Singleton {
     private static Singleton instance = new Singleton();
 

     protected Singleton() {
     }

     public static Singleton getInstance() {
          return instance;
     }
}


C.
class Singleton {
     Singleton() {
     }

     private static class SingletonHolder {
          private static final Singleton INSTANCE = new Singleton();
     }

     public static Singleton getInstance() {
          return SingletonHolder.INSTANCE;
     }
}


D.
enum Singleton {
     INSTANCE;
}


La risposta è A e D

Il singleton rappresenta un tipo particolare di classe che garantisce che soltanto un’unica istanza della classe stessa possa essere creata all’interno di un programma.
Per ottenere questo comportamento è necessario avvalersi del modificatore di accesso private anche per il costruttore della classe (cosa che generalmente non viene mai praticata in una classe standard) ed utilizzare un metodo statico che consenta di accedere all’unica istanza della classe.
In generale, la scelta del singleton viene effettuata in tutti quei casi in cui è necessario che venga utilizzata una sola istanza di una classe.
Ciò consente di:
  • Avere un accesso controllato all’unica istanza della classe
  • Avere uno spazio di nomi ridotto
  • Evitare la dichiarazione di variabili globali
  • Assicurarsi di avere un basso numero di oggetti utilizzati in condivisione grazie al fatto che viene impedita la creazione di nuove istanze ogni volta che si voglia utilizzare la stessa classe.
Un altro approccio è quello di usare un enumeratore.

Questo approccio sfrutta il fatto che le costanti enum sono costruite la prima volta che si utilizza una classe.


A.
Questo codice realizza un Singleton pattern.


B.
Il modificatore del costruttore è protected e quindi non si realizza il Singleton pattern.

C.
Il modificatore del costruttore è default e quindi non si realizza il Singleton pattern.

D.
Questo codice realizza un Singleton pattern utilizzando ENUM.

 Riferimenti:

Q38


Given the code fragment:

public class Employee {
String name;
transient String companyName;
}

 

import java.io.Serializable;

public class Manager extends Employee implements Serializable {

     String mgrId;

     public static void main(String s[]) throws Exception {

          Manager mgr = new Manager();

     }

}





What is the result?

A.
M001, ,

B.
M001, null, null

C.
M001, Sam,

D.
M001, Sam, null

E.
M001, Sam, ABC Inc

F.
Compilation fails

G.
A NullPointerException is thrown at Runtime

La risposta non c'è perché la domanda è probabilmente incompleta.