OCP 804 Exams -01

      在〈OCP 804 Exams -01〉中尚無留言
Given the code fragment:
DataFormat df;
Which statement defines a new Dateformat object that displays the default date format for the UK Locale?
A. df = DateFormat.getDateInstance (DateFormat.DEFAULT, Locale (UK)); 
B. df = DateFormat.getDateInstance (DateFormat.DEFAULT, UK); 
C. df = DateFormat.getDateInstance (DateFormat.DEFAULT, Locale.UK); 
D. df = new DateFormat.getDateInstance (DateFormat.DEFAULT, Locale.UK); 
E. df = new DateFormat.getDateInstance (DateFormat.DEFAULT, Locale (UK));

Answer: C
public class DoubleThread {
    public static void main(String[] args) {
        Thread t1 = new Thread() {
        public void run() {
        Thread t2 = new Thread(t1); // Line 9
Which two are true?
A. A runtime exception is thrown on line 9. 
B. No output is produced. 
C. Greeting is printed once. 
D. Greeting is printed twice. 
E. No new threads of execution are started within the main method. 
F. One new thread of execution is started within the main method. 
G. Two new threads of execution are started within the main method.

Answer: CE
import java.util.*;
public class AccessTest {
    public static void main(String[] args) {
        Thread t1 = new Thread(new WorkerThread());
        Thread t2 = new Thread(new WorkerThread());
        t1.start(); t2.start; // line1
class WorkPool {
    static ArrayList list = new ArrayList<>(); // line2
    public static void addItem() { // line3
        list.add(1); // Line4
class WorkerThread implements Runnable {
    static Object bar = new Object ();
    public void run() { //line5
        for (int i=0; i<5000;i++) WorkPool.addItem(); // line6
Which of the four are valid modifications to synchronize access to the valid list between threads t1 and t2?
A. Replace line 1 with:
    Synchronized (t2) (t1.start();) synchronized(t1) (t2.start();) 
B. Replace Line 2 with:
   static CopyWriteArrayList list = new CopyWriteArrayList<>(); 
C. Replace line 3 with:
    synchronized public static void addItem () { 
D. Replace line 4 with:
   synchronized (list) (list.add(1);) 
E. Replace line 5 with:
   Synchronized public void run () { 
F. replace line 6 with:
   Synchronized (this) {for (in i = 0, i<5000, i++) WorkPool.addItem(); } 
G. Replace line 6 with:
   synchronized (bar) {for (int i= 0; i<5000; i++) WorkPool.addItem(); }

Answer: C
Sam has designed an application. It segregates tasks that are critical and executed frequently from tasks that are non critical and executed less frequently. He has prioritized these tasks based on their criticality and frequency of execution. After close scrutiny, he finds that the tasks designed to be non critical are rarely getting executed. From what kind of problem is the application suffering? 
A. race condition 
B. starvation 
C. deadlock 
D. livelock

Answer: B
Class Employee {
   public int checkEmail() {/* . . . */}
   public void sendEmail (String email) {/* . . . */}
   public Boolean validDateEmail(){/* . . . */}
   public void printLetter (String letter) {/* . . . */}
Which is correct?
A. Employee takes advantage of composition. 
B. Employee "has-an" Email. 
C. Employee "is-a" LetterPrinter. 
D. Employee has low cohesion.

Answer: D
cohesion[koˋhiʒən] : 聚合
Which two demonstrate the valid usage of the keyword synchronized?
A. interface ThreadSafe { 
       synchronized void doIt(); 
B. abstract class ThreadSafe {
       synchronized abstract void doIt(); 
C. class ThreadSafe {
       synchronized static void soIt () {} 
D. enum ThreadSafe { 
      ONE, TWO, Three; 
      Synchronized final void doIt () {} 

Answer: CD
Given the incomplete pseudo-code for a fork/join framework application:
submit(Data) {
   if(Data.size < SMALL_ENOUGH) {
      _________________(Data); // line x
   else {
      List x = _________________(Data); // line Y
      for(Data d: x
         ______________(d); // line z
And given the missing methods:
process, submit, and splitInHalf
Which three insertions properly complete the pseudo-code?
A. Insert submit at line X. 
B. Insert splitInHalf at line X. 
C. Insert process at line X. 
D. Insert process at line Y. 
E. Insert splitInHalf at line Y. 
F. Insert process at line Z. 
G. Insert submit at line Z.

Answer: CEG
ITEM Table
And given the code fragment (assuming that the SQL query is valid):
try {
   String query = "SELECT * FROM Item WHERE ID=110";
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery(query);
   while (rs.next ()) {
      System.out.println("ID: " + rs.getInt("Id"));
      System.out.println("Description: " + rs.getString("Descrip"));
      System.out.println("Price: " + rs.getDouble("Price"));
      System.out.println("Quantity: " + rs.getInt("Quantity"));
catch (SQLException se) {
What is the result of compiling and executing this code?
A. An exception is thrown at runtime 
B. Compile fails 
C. The code prints Error 
D. The code prints information about Item 110

Answer: A
這題有爭議, 沒有Connection conn=DriverManager.getConnection(...) 所以會compile, 選B
但如果try前面有Connection conn; 那因為conn為null, 才會丟出例外, 選A

class Deeper {
   public Number getDepth() {
      return 10;
Which two classes correctly override the getDepth method?
A. public class deep extends Deeper {
      public Integer getDepth(){ return 5; } 
B. public class deep extends Deeper {
      public double getDepth() { return"5"; } 
C. public class deep extends Deeper {
      public String getDepth () { } 
D. public class deep extends Deeper {
      public Long getDepth (int d) { return 5L; } 
E. public class deep extends Deeper {
      public Short getDepth () { return 5; } 

Answer: AE
Given the code fragment:
public class App {
   public static void main (String [] args){
      Path path = Paths.get("C:\\education\\institute\\student\\report.txt");
      System.out.println("get.Name(0): %s", path.getName(0));
      System.out.println ("subpath(0, 2): %s", path.subpath (0, 2));
What is the result?
A. getName (0): C:\
   subpath (0, 2): C:\education\report.txt 
B. getName(0): C:\
   subpth(0, 2): C:\education 
C. getName(0): education
   subpath (0, 2): education\institute 
D. getName(0): education
   subpath(0, 2): education\institute\student 
E. getName(0): report.txt
   subpath(0, 2): insritute\student

Answer: C
To provide meaningful output for:
System.out.print( new Item ()):
A method with which signature should be added to the Item class?
A. public String asString() 
B. public Object asString() 
C. public Item asString()
D. public String toString() 
E. public object toString() 
F. public Item toString()

Answer: D
Given the code fragment:
public class DisplaValues {
   public void printNums (int [] nums){
      for (int number: nums) {
Assume the method printNums is passed a valid array containing data. Why is this method not producing output on the console?
A. There is a compilation error. 
B. There is a runtime exception. 
C. The variable number is not initialized. 
D. Standard error is mapped to another destination.

Answer: D
Which method would you supply to a class implementing the Callable interface?
A. callable ()
B. executable ()
C. call ()
D. run ()
E. start ()

Answer: C
Given the existing destination file, a source file only 1000 bytes long, and the code fragment:
public void process (String source, String destination) {
   try (InputStream fis = new FileInputStream(source);
        OutputStream fos = new FileOutputStream(destination)
      byte [] buff = new byte[2014];
      int i;
      while ((i = fis.read(buff)) != -1) {
         fos.write(buff,0,i); // line ***
   } catch (IOException e) {
What is the result?
A. Overrides the content of the destination file with the source file content
B. Appends the content of the source file to the destination file after a new line
C. Appends the content of the source file to the destination file without a break in the flow
D. Throws a runtime exception at line***

Answer: A
Which two codes correctly represent a standard language locale code?
C. U8
D. es
E. fr
F. u8

Answer: DE
命名規則為 : 語系_國別
語系小寫, 國別大寫, 如zh_TW, zh_CN
Which code fragment demonstrates the proper way to handle JDBC resources?
A. Try {
      ResultSet rs = stmt.executableQuery (query);
      statement stmt = con.createStatement();
      while (rs.next()) (/* . . . */)
   } catch (SQLException e) {}
B. Try {
      statement stmt = con.createStatement();
      ResultSet rs = stmt.executableQuery (query);
      while (rs.next()) (/* . . . */)
   } catch (SQLException e) {}
C. Try {
      statement stmt = con.createStatement();
      ResultSet rs = stmt.executableQuery (query);
      while (rs.next()) (/* . . . */)
   } finally {
D. Try {
      ResultSet rs = stmt.executableQuery (query);
      statement stmt = con.createStatement();
      while (rs.next()) (/* . . . */)
   } finally {

Answer: C
import java.io.IOException;
import java.io.file.Path;
import java.io.file.Paths;
public class Path12 {
   public static void main(String s[]) throws IOException {
      Path path = Paths.get("\\sales\\quarter\\..\\qtrlreport.txt");
      if(path.endsWith("annualreport.txt")) {
      } else {
What is the result?
A. false
   \sales\quarter\ . . \qtrlreport.txt
B. false
   \quarter\ . . \qtrlreport.txt
C. true
   . . \ . . \ . . \ annualreport.txt
D. true
   \ . . \ . . \annualreport.txt

Answer: A
path.relativize(Paths.get("\\sales\\annualreport.txt"));會傳回新的相對路徑, 但因為沒有接收, 所以path沒有變更
Given the fragment:
public class CustomerApplication {
   public static void main (String args[]) {
      CustomerDAO custDao= new CustomerDAOMemoryImpl(); // Line 3
      // ... other methods
Which two valid alternatives to line 3 would decouple this application from a specific implementation of CustomerDAO?
A. CustomerDAO custDao = CustomerDAO();
B. CustomerDAO custDao = (CustomerDAO) new Object ();
C. CustomerDAO custDao = CustomerDAO.getInstance();
D. CustomerDAO custDao = (CustomerDAO) new CustomerDAOmemoryImp1();
E. CustomerDAO custDao = customerDAOFactory.getInstance();

Answer: DE
Given this error message when running your application:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name MessageBundle, locale
And given that the MessageBundle.properties file has been created, exists on your disk, and is properly formatted.
What is the cause of the error message?
A. The file is not in the environment path.
B. The file is not in the classpath.
C. The file is not in the javapath.
D. You cannot use a file to store a ResourceBundle.

Answer: A
Given a language code of fr and a country code of FR, which file name represents a resource bundle file name that is not the
A. MessageBundle_fr_FR.properties
B. MessageBundle_fr_FR.profile
C. MessageBundle_fr_FR.xinl
D. MessageBundle__fr__FR.Java
E. MessageBundle__fr__FR.Locale

Answer: A