Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ganesh_JavaSE7_Programming_1z0-804_study_guide.pdf
Скачиваний:
94
Добавлен:
02.02.2015
Размер:
5.88 Mб
Скачать

APPENDIX A

Exam Topics

This appendix lists the topics for the following two certification exams:

Java SE 7 Programmer II exam (a.k.a. exam number 1Z0-804):

OCAJP 7 certification + 1ZO-804 pass = Oracle Certified Professional, Java SE 7 Programmer (OCPJP 7) certification

Upgrade to Java SE 7 Programmer exam (a.k.a. exam number 1Z0-805):

Earlier version (OCPJP 5 or OCPJP 6 or any SCJP) certification + 1ZO-805 pass = Oracle

Certified Professional, Java SE 7 Programmer (OCPJP 7) certification

We show how the exam topics map to the chapters in this book (denoted “G&S” for Ganesh and Sharma) in parentheses beside the topic headings below.

OCPJP7 Exam (1Z0-804 a.k.a. Java SE 7 Programmer II) Topics

While preparing the reader equally for the Z10-804 or Z10-805 exam paths to OCPJP 7 certification, this book is organized to mirror the topics of the more comprehensive exam, the 1Z0-804. The exam topics in the 1Z0-804 syllabus map to the chapters in this book in a one-to-one correspondence as indicated in the parentheses below. We wish to thank Oracle Corporation for providing permission to use of their exam topics in this appendix.

1.Java Class Design (G&S Chapter 3)

1.1.Use access modifiers: private, protected, and public.

1.2.Use override methods.

1.3.Use overload constructors and other methods appropriately.

1.4.Use the instanceof operator and casting.

1.5.Use virtual method invocation.

1.6.Use override methods from the Object class to improve the functionality of your class.

1.7.Use package and import statements.

507

APPENDIX A Exam Topics

2.Advanced Class Design (G&S Chapter 4)

2.1.Identify when and how to apply abstract classes.

2.2.How to construct abstract Java classes and subclasses.

2.3.Use the static and final keywords.

2.4.Create top-level and nested classes.

2.5.Use enumerated types.

3.Object-Oriented Design Principles (G&S Chapter 5)

3.1.Write code that declares, implements, and/or extends interfaces.

3.2.Choose between interface inheritance and class inheritance.

3.3.Develop code that implements “is-a” and/or “has-a” relationships.

3.4.Apply object composition principles.

3.5.Design a class using the Singleton design pattern.

3.6.Write code to implement the DAO pattern.

3.7.Design and create objects using a factory, and use factories from the API.

4.Generics and Collections (G&S Chapter 6)

4.1.Create a generic class.

4.2.Use the diamond syntax to create a collection.

4.3.Analyze the interoperability of collections that use raw type and generic types.

4.4.Use wrapper classes and autoboxing.

4.5.Create and use a List, a Set, and a Deque.

4.6.Create and use a Map.

4.7.Use java.util.Comparator and java.lang.Comparable.

4.8.Sort and search arrays and lists.

5.String Processing (G&S Chapter 7)

5.1.Search, parse, and build strings.

5.2.Search, parse, and replace strings by using regular expressions, using expression patterns for matching limited to . (dot), * (star), + (plus), ?, \d, \D, \s, \S, \w, \W, \b. \B, [], ().

5.3.Format strings using the formatting parameters %b, %c, %d, %f, and %s in format strings.

508

APPENDIX A Exam Topics

6.Exceptions and Assertions (G&S Chapter 11)

6.1.Use throw and throws statements.

6.2.Use the try statement with multi-catch and finally clauses.

6.3.Autoclose resources with a try-with-resources statement.

6.4.Create custom exceptions.

6.5.Test invariants by using assertions.

7.Java I/O Fundamentals (G&S Chapter 8)

7.1.Read and write data from the console.

7.2.Use streams to read and write files.

8.Java File I/O (NIO.2) (G&S Chapter 9)

8.1.Use the Path class to operate on file and directory paths.

8.2.Use the Files class to check, delete, copy, or move a file or directory.

8.3.Read and change file and directory attributes.

8.4.Recursively access a directory tree.

8.5.Find a file by using the PathMatcher class.

8.6.Watch a directory for changes by using WatchService.

9.Building Database Applications with JDBC (G&S Chapter 10)

9.1.Define the layout of the JDBC API.

9.2.Connect to a database by using a JDBC driver.

9.3.Update and query a database.

9.4.Customize the transaction behavior of JDBC and commit transactions.

9.5.Use the JDBC 4.1 RowSetProvider, RowSetFactory, and RowSet interfaces.

10.Threads (G&S Chapter 13)

10.1.Create and use the Thread class and the Runnable interface.

10.2.Manage and control thread lifecycle.

10.3.Synchronize thread access to shared data.

10.4.Identify potential threading problems.

509

APPENDIX A Exam Topics

11.Concurrency (G&S Chapter 14)

11.1.Use java.util.concurrent collections.

11.2.Apply atomic variables and locks.

11.3.Use Executors and ThreadPools.

11.4.Use the parallel Fork/Join framework.

12.Localization (G&S Chapter 12)

12.1.Read and set the locale by using the Locale object.

12.2.Build a resource bundle for each local.

12.3.Load a resource bundle in an application.

12.4.Format text for localization by using NumberFormat and DateFormat.

OCPJP 7 Exam (1Z0-805, a.k.a. Upgrade to Java SE 7 Programmer) Topics

This book covers all the topics covered on the upgrade exam—the alternative path to OCPJP 7 certification—in the chapters indicated in the parentheses.

1.Language Enhancements (G&S Chapters 6, 11)

1.1.Use String in the switch statement.

1.2.Use binary literals and numeric literals with underscores.

1.3.Use try-with-resources.

1.4.Use multi-catch in exception statements.

1.5.Use the diamond operator with generic declarations.

1.6.Use more precise rethrow in exceptions.

2.Design Patterns (G&S Chapter 5)

2.1.Design a class using the Singleton design pattern.

2.2.Identify when and how to use composition to solve business problems.

2.3.Write code to implement the DAO pattern.

2.4.Design a class that uses the Factory design pattern.

510

APPENDIX A Exam Topics

3.Database Applications with JDBC (G&S Chapter 10)

3.1.Describe the JDBC API.

3.2.Identify the Java statements required to connect to a database using JDBC.

3.3.Use the JDBC 4.1 RowSetProvider, RowSetFactory, and new RowSet interfaces.

3.4.Use JDBC transactions.

3.5.Use the proper JDBC API to submit queries and read results from the database.

3.6.Use JDBC PreparedStatement and CallableStatement.

4.Concurrency (G&S Chapters 13, 14)

4.1.Identify potential threading problems.

4.2.Use java.util.concurrent collections.

4.3.Use atomic variables and locks.

4.4.Use Executors and ThreadPools.

4.5.Use the parallel Fork/Join framework.

5.Localization (G&S Chapter 12)

5.1.Describe the advantages of localizing an application.

5.2.Define what a locale represents.

5.3.Read and set the locale by using the Locale object.

5.4.Build a resource bundle for each locale.

5.5.Call a resource bundle from an application.

5.6.Select a resource bundle based on locale.

5.7.Format text for localization by using NumberFormat and DateFormat.

6.Java File I/O (NIO.2) (G&S Chapter 9)

6.1.Use the Path class to operate on file and directory paths.

6.2.Use the Files class to check, delete, copy, or move a file or directory.

6.3.Read and change file and directory attributes.

6.4.Recursively access a directory tree.

6.5.Find a file by using the PathMatcher class.

6.6.Watch a directory for changes by using WatchService.

511

Appendix B

Mock Test – 1

The questions in this mock test are designed per the requirements of the OCPJP 7 exam pattern and its standard. The questions in the real exam will not be equally distributed based on exam topics and you’ll get questions in a random order. Further, when you take the real exam, you’ll find that some of the questions are unintuitive or

confusing. For instance, you may find questions 22, 23, and 26 to be incomplete or confusing and that is intentional.

Take the test as if it were your real OCPJP 7 exam. Best of luck.

Time: 2 hours 30 minutes

No. of questions: 90

1.Consider the following code snippet:

if(i == 10.0) System.out.println("true");

Which one of the following declarations of the variable i will compile without errors and print true when the program executes?

a)int i = 012;

b)int i = 10.0f;

c)int i = 10L;

d)int i = 10.0;

2.Consider the following program: import java.math.BigDecimal; class NumberTest {

public static void

main(String []args) {

 

 

Number [] numbers = new Number[4];

 

numbers[0]

= new Number(0);

// NUM

 

numbers[1]

= new Integer(1);

 

 

numbers[2]

= new Float(2.0f);

 

 

numbers[3]

= new BigDecimal(3.0);

// BIG

for(Number

num : numbers) {

 

 

System.out.print(num + " ");

 

}

 

 

 

}

 

 

 

}

513

Appendix B Mock Test – 1

Which one of the following options correctly describes the behavior of this program?

a)Compiler error in line marked with comment NUM because Number cannot be instantiated.

b)Compiler error in line marked with comment BIG because BigDecimal does not inherit from Number.

c)When executed, this program prints the following: 0 1 2.0 3.

d)When executed, this program prints the following: 0.0 1.0 2.0 3.0.

3.Consider the following code segment:

StringBuffer strBuffer = new StringBuffer("This, that, etc.!"); System.out.println(strBuffer.replace(12, 15, "etcetera"));

Which one of the following options correctly describes the behavior of this code segment?

a)This code segment: This, that, etcetera.!

b)This code segment: This, that, etcetera!

c)This code segment: This, that, etc.

d)This program throws in an ArrayIndexOutOfBoundsException.

4.Consider the following program:

class SBAppend {

public static void main(String []args) { Object nullObj = null;

StringBuffer strBuffer = new StringBuffer(10);

strBuffer.append("hello "); strBuffer.append("world "); strBuffer.append(nullObj); strBuffer.insert(11, '!'); System.out.println(strBuffer);

}

}

Which one of the following options correctly describes the behavior of this program?

a)This program prints the following: hello world!

b)This program prints the following: hello world! null

c)This program throws a NullPointerException.

d)This program throws an InvalidArgumentException.

e)This program throws an ArrayIndexOutOfBoundsException.

5.Consider the following code segment:

Boolean b = null; System.out.println(b ? true : false);

514

Appendix B Mock Test – 1

Which one of the following options correctly describes the behavior of this code segment?

a)This code will result in a compiler error since a reference type (of type Boolean) cannot be used as part of expression for condition check.

b)This code will result in a throwing a NullPointerException.

c)This code will print true in console.

d)This code will print false in console.

6.What will be the output of the following program?

class Base {

public Base() { System.out.println("Base");

}

}

class Derived extends Base { public Derived() {

System.out.println("Derived");

}

}

class DeriDerived extends Derived { public DeriDerived() {

System.out.println("DeriDerived");

}

}

class Test {

public static void main(String []args) { Derived b = new DeriDerived();

}

}

a)Base Derived DeriDerived

b)Derived DeriDerived

c)DeriDerived Derived Base

d)DeriDerived Derived

515

Appendix B Mock Test – 1

7.Consider the following code segment:

MODIFIER class SomeClass { }

Which three of the following modifiers, when replaced instead of MODIFIER, will compile cleanly?

a)public

b)protected

c)private

d)abstract

e)final

f)static

8.Consider the following class definition:

class Point {

private int x = 0, y; public Point(int x, int y) {

this.x = x; this.y = y;

}

// DEFAULT_CTOR

}

Which one of the following definitions of the Point constructor can be replaced without compiler errors in place of the comment DEFAULT_CTOR?

a)

public Point() {

 

this(0, 0);

 

super();

 

}

b)

public Point() {

 

super();

 

this(0, 0);

 

}

 

c)private Point() {

this(0, 0);

}

d)public Point() {

this();

}

e)public Point() {

this(x, 0);

}

516

Appendix B Mock Test – 1

9.Consider the following program:

class Base {

public Base() { System.out.print("Base ");

}

public Base(String s) { System.out.print("Base: " + s);

}

}

class Derived extends Base {

public Derived(String s) {

super();

//

Stmt-1

super(s);

//

Stmt-2

System.out.print("Derived ");

}

}

class Test {

public static void main(String []args) { Base a = new Derived("Hello ");

}

}

Select three correct options from the following list:

a)Removing Stmt-1 will make the program compilable and it will print the following: Base Derived.

b)Removing Stmt-1 will make the program compilable and it will print the following: Base: Hello Derived.

c)Removing Stmt-2 will make the program compilable and it will print the following: Base Derived.

d)Removing both Stmt-1 and Stmt-2 will make the program compilable and it will print the following: Base Derived.

e)Removing both Stmt-1 and Stmt-2 will make the program compilable and it will print the following: Base: Hello Derived.

10.You want to use the static member MYCONST belonging to class A in abc.org.project package. Which one of the following statements shows the correct use of static import feature?

a)static import abc.org.project.A;

b)static import abc.org.project.A.MYCONST;

c)import static abc.org.project.A;

d)import static abc.org.project.A.MYCONST;

517

Appendix B Mock Test – 1

11.Which one of the following programs compiles without any errors and prints “hello world” in console?

a)import static java.lang.System.out.println; class StaticImport {

public static void main(String []args) { println("hello world");

}

}

b)import static java.lang.System.out; class StaticImport {

public static void main(String []args) { out.println("hello world");

}

}

c)import static java.lang.System.out.*; class StaticImport {

public static void main(String []args) { out.println("hello world");

}

}

d) import static java.lang.System.out.*;

class StaticImport {

public static void main(String []args) { println("hello world");

}

}

12.Consider the following program and choose the right option from the given list:

class Base {

public void test() {

protected int a = 10;

// #1

}

 

}

 

 

class Test extends Base {

// #2

public static void main(String[] args) {

System.out.printf(null);

// #3

}

 

}

 

 

a)The compiler will report an error at statement #1.

b)The compiler will report an error at statement #2.

c)The compiler will report errors at statement #3.

d)The program will compile without any error.

518

Appendix B Mock Test – 1

13.Consider the following program and choose the correct option from the list of options:

class Base {

public void test() {}

}

class Base1 extends Base { public void test() {

System.out.println("Base1");

}

}

class Base2 extends Base { public void test() {

System.out.println("Base2");

}

}

class Test {

public static void main(String[] args) {

Base obj = new Base1();

 

((Base2)obj).test();

// CAST

}

}

a)The program will print the following: Base1.

b)The program will print the following: Base2.

c)The compiler will report an error in the line marked with comment CAST.

d)The program will result in an exception (ClassCastException).

14.Consider the following program:

class Outer { class Inner {

public void print() {

System.out.println("Inner: print");

}

}

}

class Test {

public static void main(String []args) { // Stmt#1

inner.print();

}

}

519

Appendix B Mock Test – 1

Which one of the following statements will you replace in place of // Stmt#1 to make the program compile and run successfully to print “Inner: print” in console?

a)Outer.Inner inner = new Outer.Inner();

b)Inner inner = new Outer.Inner();

c)Outer.Inner inner = new Outer().Inner();

d)Outer.Inner inner = new Outer().new Inner();

15.Consider the following program:

public class Outer {

private int mem = 10;

class Inner {

private int imem = new Outer().mem; // ACCESS1

}

public static void main(String []s) {

System.out.println(new Outer().new Inner().imem); // ACCESS2

}

}

Which one of the following options is correct?

a)When compiled, this program will result in a compiler error in line marked with comment ACCESS1.

b)When compiled, this program will result in a compiler error in line marked with comment ACCESS2.

c)When executed, this program prints 10.

d)When executed, this program prints 0.

16.Consider the following program:

interface EnumBase { }

enum AnEnum implements EnumBase { // IMPLEMENTS_INTERFACE ONLY_MEM;

}

class EnumCheck {

public static void main(String []args) { if(AnEnum.ONLY_MEM instanceof AnEnum) {

System.out.println("yes, instance of AnEnum");

}

if(AnEnum.ONLY_MEM instanceof EnumBase) { System.out.println("yes, instance of EnumBase");

}

if(AnEnum.ONLY_MEM instanceof Enum) { // THIRD_CHECK System.out.println("yes, instance of Enum");

}

}

}

520

Appendix B Mock Test – 1

Which one of the following options is correct?

a)This program results in a compiler in the line marked with comment IMPLEMENTS_INTERFACE.

b)This program results in a compiler in the line marked with comment THIRD_CHECK.

c)When executed, this program prints the following:

yes, instance of AnEnum

d)When executed, this program prints the following: yes, instance of AnEnum

yes, instance of EnumBase

e)When executed, this program prints the following: yes, instance of AnEnum

yes, instance of EnumBase yes, instance of Enum

17.Which of the following statements are true with respect to enums? (Select all that apply.)

a)An enum can have private constructor.

b)An enum can have public constructor.

c)An enum can have public methods and fields.

d)An enum can implement an interface.

e)An enum can extend a class.

18.Consider the following program and predict the behavior:

class base1 {

protected int var;

}

interface base2 {

int var = 0; // #1

}

class Test extends base1 implements base2 { // #2 public static void main(String args[]) {

System.out.println("var:" + var); // #3

}

}

a)The program will report a compilation error at statement #1.

b)The program will report a compilation error at statement #2.

c)The program will report a compilation error at statement #3.

d)The program will compile without any errors.

521

Appendix B Mock Test – 1

19.Consider the following program:

class WildCard { interface BI {}

interface DI extends BI {} interface DDI extends DI {}

static class C<T> {}

static void foo(C<? super DI> arg) {}

public static void main(String

[]args) {

foo(new C<BI>());

// ONE

foo(new C<DI>());

// TWO

foo(new C<DDI>());

// THREE

foo(new C());

// FOUR

}

 

}

 

 

Which of the following options are correct?

 

a)Line marked with comment ONE will result in a compiler error.

b)Line marked with comment TWO will result in a compiler error.

c)Line marked with comment THREE will result in a compiler error.

d)Line marked with comment FOUR will result in a compiler error.

20.Consider the following definitions:

interface BI {}

interface DI extends BI {}

The following options provide definitions of a template class X. Which one of the options specifies class X with a type parameter whose upper bound declares DI to be the super type from which all type arguments must be derived?

a)class X <T super DI> { }

b)class X <T implements DI> { }

c)class X <T extends DI> { }

d)class X <T extends ? & DI> { }

21.Consider the following program:

class base1{}

class base2{}

interface base3{}

interface base4{}

522

Appendix B Mock TesT – 1

// Stmt

public static void main(String args[]){

}

}

Which one of the following statements will compile without errors if replaced in place of the line marked with comment Stmt?

a)class Test extends base1, base2 implements base3, base4 {

b)class Test extends base1 implements base3, base4 {

c)class Test extends base1 implements base3 implements base4 {

d)class Test extends base1, extends base2 implements base3, base4 {

22.In the context of Singleton pattern, which one of the following statements is true?

a)A Singleton class must not have any static members.

b)A Singleton class has a public constructor.

c)A Factory class may use Singleton pattern.

d)All methods of the Singleton class must be private.

23.In the context of DAO pattern, which one of the following classes could be playing a role of TransferObject:

a)ImageManager

b)ImageFactory

c)Image

d)ImageProcessor

24.Which one of the following object-oriented concepts describes has-a relationship?

a)Inheritance

b)Composite pattern

c)Inner classes

d)Composition

25.Consider the following program: class ClassA {}

interface InterfaceB {} class ClassC {}

class Test extends ClassA implements InterfaceB { String msg;

ClassC classC;

}

523

Appendix B Mock Test – 1

Which one of the following statements is true?

a)Class Test is related with ClassA with a has-a relationship.

b)Class Test is related to ClassC with a composition relationship.

c)Class Test is related with String with an is-a relationship.

d)Class ClassA is related with InterfaceB with an is-a relationship.

26.Consider the following UML diagram of a class program and choose a right option:

a)The class exhibits low cohesion.

b)The class implements Singleton pattern.

c)The class implements DAO pattern.

d)The class exhibits low coupling.

27.Consider the following program:

import java.util.Comparator; import java.util.Arrays;

class CountryComparator implements Comparator<String> { public int compare(String country1, String country2) {

return country2.compareTo(country2); // COMPARE_TO

}

}

public class Sort {

public static void main(String[] args) {

String[] brics = {"Brazil", "Russia", "India", "China"}; Arrays.sort(brics, null);

for(String country : brics) { System.out.print(country + " ");

}

}

}

524

Appendix B Mock Test – 1

Which one of the following options correctly describes the behavior of this program?

a)The program results in a compiler error in the line marked with the comment COMPARE_TO.

b)The program prints the following: Brazil Russia India China.

c)The program prints the following: Brazil China India Russia.

d)The program prints the following: Russia India China Brazil.

e)The program throws the exception InvalidComparatorException.

f)The program throws the exception InvalidCompareException.

g)The program throws the exception NullPointerException.

28.Which one of the following class definitions will compile without any errors?

a)class P<T> {

static T s_mem;

}

b) class Q<T> { T mem;

public Q(T arg) { mem = arg;

}

}

c) class R<T> { T mem;

public R() {

mem = new T();

}

}

d) class S<T> { T []arr;

public S() {

arr = new T[10];

}

}

29.Which one of the following class/interface supports “retrieval if elements based on the closest match to a given value or values?”

a)EnumSet

b)HashSet

c)AbstractSet

d)NavigableSet

525

Appendix B Mock Test – 1

30.In a class that extends ListResourceBundle, which one of the following method definitions correctly overrides the getObject() method of the base class?

a)public String[][] getContents() {

return new Object[][] { { "1", "Uno" }, { "2", "Duo" }, { "3", "Trie" }};

}

b)public Object[][] getContents() {

return new Object[][] { { "1", "Uno" }, { "2", "Duo" }, { "3", "Trie" }};

}

c)private List<String> getContents() {

return new ArrayList (Arrays.AsList({ { "1", "Uno" }, { "2", "Duo" }, { "3", "Trie" }});

}

d)protected Object[] getContents(){

return new String[] { "Uno", "Duo", "Trie" };

}

31.Which one of the following interfaces declares a single method named iterator()? (Note: Implementing this interface allows an object to be the target of the for-each statement.)

a)Iterable<T>

b)Iterator<T>

c)Enumeration<E>

d)ForEach<T>

32.Which one of the following options is best suited for generating random numbers in a multi-threaded application?

a)Using java.lang.Math.random()

b)Using java.util.concurrent.ThreadLocalRandom

c)Using java.util.RandomAccess

d)Using java.lang.ThreadLocal<T>

33.Consider the following program:

import java.util.*;

class ListFromVarargs {

public static <T> List<T> asList1(T... elements) { ArrayList<T> temp = new ArrayList<>();

for(T element : elements) { temp.add(element);

}

return temp;

}

526

Appendix B Mock Test – 1

public static <T> List<?> asList2(T... elements) { ArrayList<?> temp = new ArrayList<>();

for(T element : elements) { temp.add(element);

}

return temp;

}

public static <T> List<?> asList3(T... elements) { ArrayList<T> temp = new ArrayList<>();

for(T element : elements) { temp.add(element);

}

return temp;

}

public static <T> List<?> asList4(T... elements) { List<T> temp = new ArrayList<T>();

for(T element : elements) { temp.add(element);

}

return temp;

}

}

Which of the asList definitions in this program will result in a compiler error?

a)The definition of asList1 will result in a compiler error.

b)The definition of asList2 will result in a compiler error.

c)The definition of asList3 will result in a compiler error.

d)The definition of asList4 will result in a compiler error.

e)None of the definitions (asList1, asList2, asList3, asList4) will result in a compiler error.

34.Consider the following program:

import java.util.*;

class TemplateType {

public static void main(String []args) { List<Map<List<Integer>, List<String>>> list =

new ArrayList<>(); // ADD_MAP Map<List<Integer>, List<String>> map = new HashMap<>();

list.add(null);

//

ADD_NULL

list.add(map);

 

 

list.add(new HashMap<List<Integer>,

List<String>>());

// ADD_HASHMAP

527

Appendix B Mock Test – 1

for(Map element : list) {

//

ITERATE

System.out.print(element +

" ");

}

 

 

}

}

Which one of the following options is correct?

a)This program will result in a compiler error in line marked with comment ADD_MAP.

b)This program will result in a compiler error in line marked with comment ADD_HASHMAP.

c)This program will result in a compiler error in line marked with comment ITERATE.

d)When run, this program will crash, throwing a NullPointerException in line marked with comment ADD_NULL.

e)When run, this program will print the following: null {} {}

35.Consider the following program:

class Base<T> { }

class Derived<T> { }

class Test {

public static void main(String []args) { // Stmt #1

}

}

Which statements can be placed in the place of //Stmt#1 and the program remains compilable (choose two):

a)Base<Number> b = new Base<Number>();

b)Base<Number> b = new Derived<Number>();

c)Base<Number> b = new Derived<Integer>();

d)Derived<Number> b = new Derived<Integer>();

e)Base<Integer> b = new Derived<Integer>();

f)Derived<Integer> b = new Derived<Integer>();

36.Consider the following program:

class Base<T> { }

class Derived<T> { }

class Test {

public static void main(String []args) { //Stmt#1

}

}

528

Appendix B Mock Test – 1

Which statements can be placed in the place of //Stmt#1 and the program remains compilable (select all that apply)?

a)Base<? extends Number> b = new Base<Number>();

b)Base<? extends Number> b = new Derived<Number>();

c)Base<? extends Number> b = new Derived<Integer>();

d)Derived<? extends Number> b = new Derived<Integer>();

e)Base<?> b = new Derived<Integer>();

f)  Derived<?> b = new Derived<Integer>();

37.Which of the following statements are true about java.sql.Savepoint? (select all that apply)

a)Savepoint is a point within the current transaction that can be referenced from the Connection.rollback() method

b)When a transaction is rolled back to a savepoint all changes made after that savepoint are undone.

c)Savepoints must be named. It is not possible to have "unnamed savepoints".

d)java.sql.Savepoint is an abstract class; it is implemented by the classes such as JDBCSavepoint, ODBCSavepoint, and TransactionSavepoint in the java.sql package.

38.Consider the following program and choose the appropriate option:

import java.util.*;

class Test {

public static void main(String []args) {

Set<Integer> set = new LinkedHashSet<Integer>(); //#1 LinkedHashSet<Integer> set2 = new HashSet<Integer>(); //#2 SortedSet<Integer> set3 = new TreeSet<Integer>(); //#3 SortedSet<Integer> set4 = new NavigableSet<Integer>(); //#4

}

}

a)Statements #1 and #2 will compile successfully.

b)Statements #1 and #3 will compile successfully.

c)Statements #1, #2, and #3 will compile successfully.

d)Statements #2 and #4 will compile successfully.

39.Consider the following program:

import java.util.*;

class Test {

public static void main(String []args) { Set<Integer> set = new TreeSet<Integer>();

529

Appendix B Mock Test – 1

set.add(5);

set.add(10);

set.add(3);

set.add(5);

System.out.println(set);

}

}

What will be the output of this program?

a)[5, 10, 3, 5]

b)[5, 10, 3]

c)[3, 5, 10]

d)[10, 5, 3]

40.Which of the following statements are true about classes relating to formatting date and time for local cultures? (select all that apply)

a)java.text.Format is the abstract base class that supports formatting of locale sensitive information such as date, time, and currency

b)java.text.CustomTimeFormat allows you to define custom patterns for processing time for specific locales.

c)java.text.NumberFormat derives from the java.text.Format class; it is the base class for processing numbers, currency, etc. in a locale sensitive way.

d)java.text.DateFormat derives from the java.text.Format class; it is the base class for processing date and time information based on locale.

41.Consider the following program and choose the appropriate option:

import java.util.*;

 

 

 

 

class Test {

 

 

public static void main(String []args) {

 

Map<String,

int> map =

 

new

HashMap<int, String>();

//#1

Map<String,

String> map2 =

 

new

HashMap<String, String>();

//#2

Map<String,

String> map3 = new HashMap<>();

//#3

Map<> map4 = new HashMap<String, String>();

//#4

}

 

 

}

 

 

 

 

a)Statement #1 and #2 will compile successfully.

b)Statement #2 and #3 will compile successfully.

c)Statement #3 and #4 will compile successfully.

d)Statement #4 and #1 will compile successfully.

530

Appendix B Mock Test – 1

42.Consider the following program and predict the output:

import java.util.*;

class Test {

public static void main(String []args) {

Map<Integer, String> map = new TreeMap<Integer, String>(); map.put(5, "5");

map.put(10, "10"); map.put(3, "3"); map.put(5,"25"); System.out.println(map);

}

}

a){5=5, 10=10, 3=3, 5=25}

b){10=10, 3=3, 5=25}

c){3=3, 5=5, 5=25, 10=10}

d){3=3, 5=25, 10=10}

e){3=3, 5=5, 10=10}

43.Consider the following program and predict the output:

import java.util.*;

class Test {

public static void main(String []args) { Deque<Integer> deque = new LinkedList<>(); deque.add(10);

deque.add(20);

deque.peek();

deque.peek(); deque.peek(); //#1 System.out.println(deque);

}

}

a)[10, 20]

b)[20, 10]

c)[]

d)NoSuchElementException thrown when executing the line #1.

44.Which of the following classes in the java.util.concurrent.atomic package inherit from java.lang.Number? (Select all that apply).

a)AtomicBoolean

b)AtomicInteger

c)AtomicLong

d)AtomicFloat

e)AtomicDouble

531

Appendix B Mock Test – 1

45.Consider the following program and predict the output:

import java.util.HashSet;

class Student{

public Student(int r) { rollNo = r;

}

int rollNo;

}

class Test {

public static void main(String[] args){ HashSet<Student> students = new HashSet<>(); students.add(new Student(5)); students.add(new Student(10));

System.out.println(students.contains(new Student(10)));

}

}

a)This program prints the following: true.

b)This program prints the following: false.

c)This program results in a compiler error.

d)This program throws NoSuchElementException.

46.Which of the following statements are true regarding resource bundles in the context of localization? (select all that apply)

a)java.util.ResourceBundle is the base class and is an abstraction of resource bundles that contain locale-specific objects.

b)java.util.PropertyResourceBundle is a concrete subclass of java.util. ResourceBundle that manages resources for a locale using strings provided in the form of a property file.

c)Classes extending java.util.PropertyResourceBundle must override the getContents() method which has the return type Object [][].

d)java.util.ListResourceBundle defines the getKeys() method that returns enumeration of keys contained in the resource bundle.

47.Consider the following program and predict the output:

import java.util.HashSet;

class Student{

public Student(int r) { rollNo = r;

}

532

Appendix B Mock TesT – 1

int rollNo;

public int hashCode(){ return rollNo;

}

}

class Test {

public static void main(String[] args){ HashSet<Student> students = new HashSet<>(); students.add(new Student(5));

Student s10 = new Student(10); students.add(s10);

System.out.println(students.contains(new Student(10))); System.out.println(students.contains(s10));

}

}

a)false true

b)false false

c)true false

d)true true

48.Which of the following statements are true regarding the classes or interfaces defined in the java.util.concurrent package?

a)The Executor interface declares a single method execute(Runnable command) that executes the given command at sometime in the future.

b)The Callable interface declares a single method call() that computes a result.

c)The Exchanger class provides a “synchronization point at which threads can pair and swap elements within pairs”.

d)The TimeUnit enumeration represents time duration and is useful for specifying timing parameters in concurrent programs.

49.Consider the following program and predict the output: import java.util.*;

class Test {

public static void main(String []args) { List<Integer> intList = new ArrayList<>();

intList.add(10);

 

intList.add(20);

 

List list = intList;

 

list.add("hello");

// ADD_STR

533

Appendix B Mock Test – 1

for(Object o : list) { System.out.print(o + " ");

}

}

}

a)This program will not print any output and will throw ClassCastException.

b)This program will first print 10 and 20 and then throw ClassCastException.

c)This program will result in a compiler error in line marked with comment ADD_STR.

d)This program will print 10, 20, and hello.

50.Which TWO of the following options provide assignments that will compile without errors?

a)Map<String, String> map1 = new NavigableMap<>();

b)Map<String, String> map2 = new IdentityHashMap<>();

c)Map<String, String> map3 = new Hashtable<>();

d)Map<String, String> map4 = new ConcurrentMap<>();

51.Consider the following program:

import java.util.*;

class AsList {

public static void main(String []args) { String hello = "hello";

String world = "world";

StringBuffer helloWorld = new StringBuffer(hello + world);

List<String> list =

Arrays.asList(hello, world, helloWorld.toString()); helloWorld.append("!");

list.remove(0); // REMOVE System.out.println(list);

}

}

Which one of the following options is correct?

a)When compiled, this program will result in a compiler error in linked marked with comment REMOVE.

b)When run, this program will crash with throwing the exception UnsupportedOperationException when executing the line marked with comment REMOVE.

c)When run, this program will print the following output: [hello, world, helloworld]

d)When run, this program will print the following output: [world, helloworld!]

e)When run, this program will print the following output: [world, helloworld]

534

Appendix B Mock Test – 1

52.Consider the following program and predict the output:

class Test {

public static void main(String []args) { String s = new String("5"); System.out.println(1+10+s+1+10);

}

}

a)11511

b)1105110

c)115110

d)27

53.Consider the following program and predict the output:

class Test {

public static void main(String []args) { String s = new String("5");

System.out.println(1.0+10.5+s+(1.0+10.5));

}

}

a)11.5511.5

b)11.551.010.5

c)1.010.551.010.5

d)11.55(1.010.5)

e)11.55(11.5)

54.Consider the following program:

class Printf {

public static void main(String []args) { System.out.printf("%3.4s %n", "hello world"); System.out.printf("%05d", 123);

}

}

Which one of the following options correctly provides the output of this program?

a)lo 05123

b)hell 0123

c)hello 123

535

Appendix B Mock Test – 1

d)hell 00123

e)hello world 123

55.Consider the following program:

class PrintlnTest {

public static void main(String[] args) { String two = "2"; System.out.println("1 + 2 + 3 + 4 = "

+ 1 + Integer.parseInt(two) + 3 + 4); // PARSE

}

}

Which one of the following options correctly describes the behavior of this program?

a)When compiled, this program will give a compiler error in line marked with comment PARSE for missing catch handler for NumberFormatException.

b)

When executed, the program prints the following: 1

+ 2

+ 3

+ 4

= 1234.

c)

When executed, the program prints the following: 1 + 2 + 3 + 4 = 10.

d)

When executed, the program prints the following: 1

+ 2

+ 3

+ 4

= 127.

e)

When executed, the program prints the following: 1 + 2 + 3 + 4 = 19.

f)When executed, the program throws a NumberFormatException in the line marked with comment PARSE.

56.Consider the following program and predict the output:

class Test {

public static void main(String []args) { int a = 7, b = 10;

System.out.printf("no:%2$s and %1$s", a, b); System.out.printf("\nno:2$s and 1$s", a, b);

}

}

a)no:10 and 7 no:2$s and 1$s

b)no:7 and 10 no:2$s and 1$s

c)no:10 and 7 no:10 and 7

d)no:7 and 10 no:7 and 10

e)This program will result in compiler error(s).

536

Appendix B Mock Test – 1

57.Consider the following program and predict the output (ignore any empty lines in the output):

class Test {

public static void main(String[] s) { String quote = "aba*abaa**aabaa***";

String [] words = quote.split("a\\**", 10); for (String word : words) {

System.out.println(word);

}

}

}

a)ab aba *aaba

**

b)b b b

c)aba*aba aaba

d)This program throws a runtime exception.

58.Consider the following program and predict the output:

import java.util.regex.*;

class Test {

public static void main(String[] args) { String str1 = "xxzz";

String str2 = "xyz"; String str3 = "yzz";

Pattern pattern = Pattern.compile("(xx)*y?z{1,}"); Matcher matcher = pattern.matcher(str1); System.out.println(matcher.matches()); System.out.println(pattern.matcher(str2).matches()); System.out.println(

Pattern.compile("(xx)*y?z{1,}"). matcher(str3).matches());

}

}

a)true false true

b)true false false

537

Appendix B Mock Test – 1

c)false false false

d)false false true

e)true true true

59.Consider the following program and predict the output:

import java.util.regex.*;

class Test {

public static void main(String[] args) { String str = "OCPJP 2013 OCPJP7";

Pattern pattern = Pattern.compile("\\b\\w+\\D\\b");

Matcher matcher = pattern.matcher(str); while(matcher.find()) {

System.out.println(matcher.group());

}

}

}

a)OCPJP 2013 OCPJP7

b)OCPJP 2013

c)OCPJP OCPJP7

d)This program does not result in any output.

60.Consider the following program and predict the output:

import java.util.regex.*;

class Test {

public static void main(String[] args) { String str =

"Suneetha N.=9876543210, Pratish Patil=9898989898"; Pattern pattern =

Pattern.compile("(\\w+)(\\s\\w+)(=)(\\d{10})"); Matcher matcher = pattern.matcher(str);

String newStr = matcher.replaceAll("$4:$2,$1"); System.out.println(newStr);

}

}

538

Appendix B Mock Test – 1

a)9876543210: N.,Suneetha, 9898989898: Patil,Pratish

b)Suneetha N.=9876543210, Pratish Patil=9898989898

c)Suneetha N.=9876543210, 9898989898: Patil,Pratish

d)This program throws a runtime exception.

61.Which of the following TWO statements are true about the pre-defined streams

System.in, System.out, and System.err?

a)System.in is of type InputStream.

b)System.in is of type FileReader.

c)System.out is of type OutputStream.

d)System.err is of type ErrorStream.

e)Both System.out and System.err are of type PrintStream.

f)Both System.out and System.err are of type FileWriter.

62.Consider the following program:

import java.io.*;

class CloseableImpl implements Closeable { public void close() throws IOException {

System.out.println("In CloseableImpl.close()");

}

}

class AutoCloseableImpl implements AutoCloseable { public void close() throws Exception {

System.out.println("In AutoCloseableImpl.close()");

}

}

class AutoCloseCheck {

public static void main(String []args) {

try (Closeable closeableImpl = new CloseableImpl(); AutoCloseable autoCloseableImpl

=new AutoCloseableImpl()) {

}catch (Exception ignore) {

//do nothing

}

finally {

// do nothing

}

}

}

539

Appendix B Mock Test – 1

Which one of the following options correctly shows the output of this program when the program is executed?

a)This program does not print any output in console.

b)This program prints the following output: In AutoCloseableImpl.close()

c)This program prints the following output: In AutoCloseableImpl.close()

In CloseableImpl.close()

d)This program prints the following output: In CloseableImpl.close()

In AutoCloseableImpl.close()

63.Consider the following code snippet and choose the best option:

public static void main(String []files) { try (FileReader inputFile =

new FileReader(new File(files[0]))) { // #1

}

catch (FileNotFoundException | IOException e) { // #2 e.printStackTrace();

}

}

a)The code snippet will compile without any errors.

b)The compiler will report an error at statement #1.

c)The compiler will report an error at statement #2.

d)The compiler will report errors at statements #1 and #2.

64.Consider the following code segment:

while( (ch = inputFile.read()) != VAL) { outputFile.write( (char)ch );

}

Assume that inputFile is of type FileReader, and outputFile is of type FileWriter, and ch is of type char. The method read() returns the character if successful, or VAL if the end of the stream has been reached. What is the correct value of this VAL checked in the while loop for end-of-stream?

a)-1

b)0

c)255

d)Integer.MAX_VALUE

e)Integer.MIN_VALUE

540

Appendix B Mock Test – 1

65.Consider the following program and predict the output:

import java.io.*;

class USPresident implements Serializable{

private static final long serialVersionUID = 1L; @Override

public String toString() {

return "US President [name=" + name +

", period=" + period + ", term=" + term + "]";

}

public USPresident(String name, String period, String term) { this.name = name;

this.period = period; this.term = term;

}

private String name; private String period;

private static transient String term;

}

class TransientSerialization {

public static void main(String []args) { USPresident usPresident = new USPresident

("Barack Obama", "2009 to --", "56th term"); System.out.println(usPresident);

try (ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream("USPresident.data"))){ oos.writeObject(usPresident);

}catch(IOException ioe) {

//ignore

}

try(ObjectInputStream ois = new ObjectInputStream (new FileInputStream("USPresident.data"))){ Object obj = ois.readObject();

if(obj != null && obj instanceof USPresident){ USPresident presidentOfUS = (USPresident)obj; System.out.println(presidentOfUS);

}

}catch(IOException ioe) {

//ignore

}catch (ClassNotFoundException e) {

//ignore

}

}

}

541

Appendix B Mock Test – 1

a)US President [name=Barack Obama, period=2009 to --, term=56th term] US President [name=Barack Obama, period=2009 to --, term=56th term]

b)US President [name=Barack Obama, period=2009 to --, term=56th term] US President [name=Barack Obama, period=2009 to --, term=null]

c)This program will result in a compiler error.

d)This program will result in a runtime exception.

66.Which one of the following statements true?

a)If you do not specify serialVersionUID while in serialization, your class will not compile

b)If you do not specify serialVersionUID while in serialization, JVM will work across all platforms and JVM implementations.

c)If you are implementing an Externalizable interface, you need not specify serialVerionUID.

d)If a class is serialized and you try to serialize it again, the JVM will not serialize it due to the same serialVersionUID.

67.Consider the following program:

import java.io.*;

class CopyFile {

public static void main(String []files) { if(files.length != 2) {

System.err.println

("Incorrect syntax. Usage: Copy SrcFile DstFile"); System.exit(-1);

}

String srcFile = files[0]; String dstFile = files[1];

try (BufferedReader inputFile

=new BufferedReader(new FileReader(srcFile)); BufferedWriter outputFile

=new BufferedWriter(new FileWriter(dstFile))) { int ch = 0;

inputFile.skip(6);

while( (ch = inputFile.read()) != -1) { outputFile.write( (char)ch );

}

outputFile.flush();

}catch (IOException exception) { System.err.println("Error "

+exception.getMessage());

}

}

}

Assume that you have a file named HelloWorld.txt with the following contents:

Hello World!

542

Appendix B Mock TesT – 1

This program is invoked from the command-line as:

java CopyFile HelloWorld.txt World.txt

Which one of the following options correctly describes the behavior of this program (assuming that both srcFile and dstFile are opened successfully)?

a)The program will throw an IOException because skip() is called before calling read().

b)The program will result in creating the file World.txt with the contents “World!” in it.

c)This program will result in throwing CannotSkipException.

d)This program will result in throwing IllegalArgumentException.

68.Consider the following program: import java.nio.file.*;

class SubPath {

public static void main(String []args) {

Path aPath = Paths.get("C:\\WINDOWS\\system32\\config\\systemprofile\\ Start Menu\\Programs\\Accessories\\Entertainment\\Windows Media Player"); System.out.println(aPath.subpath(3, 4));

}

}

Which one of the following options is correct?

a)This program prints the following: config\systemprofile.

b)This program prints the following: config.

c)This program prints the following: systemprofile.

d)This program prints the following: system32\config.

e)This program throws an IllegalArgumentException.

69.Consider the following code segment:

Path testFilePath = Paths.get("C:\\WINDOWS\\system32\\config\\.\\systemprofile\\Start Menu\\Programs\\Accessories\\Entertainment\\..\\..");

System.out.println("It's normalized absolute path is: " + testFilePath.normalize().toAbsolutePath());

Which one of the following options correctly provides the output of this code segment?

a)C:\\WINDOWS\\system32\\config\\systemprofile\\Start

Menu\\Programs\\Accessories\\Entertainment\\

b)C:\WINDOWS\system32\config\systemprofile\Start

Menu\Programs\Accessories\Entertainment\

c)C:\WINDOWS\system32\config\systemprofile\Start Menu\Programs

d)C:\WINDOWS\system32\systemprofile\Start

Menu\Programs\Accessories\Entertainment\

543

Appendix B Mock Test – 1

70.Consider the following program and predict the output:

class Base {

protected void finalize() { System.out.println("in Base.finalize");

}

}

class Derived extends Base { protected void finalize() {

System.out.println("in Derived.finalize");

}

}

class Test {

public static void main(String []args) { Derived d = new Derived();

d = null; Runtime.runFinalizersOnExit(true);

}

}

a)This program prints the following: in Base.finalize.

b)This program prints the following: in Derived.finalize.

c)This program throws a CannotRunFinalizersOnExitException.

d)This program throws a NullPointerException.

71.Consider the following program and predict the output:

class Test {

private static int mem = 0; public static void foo() {

try {

mem = mem + 1;

}

catch(Exception e) { e.printStackTrace();

}

finally {

mem = mem + 1;

}

}

public static void main(String []args) { foo();

System.out.println(mem);

}

}

544

Appendix B Mock Test – 1

a)0

b)1

c)2

d)3

72.Consider the following program:

class Base {

public void foo() {

assert true;

// ASSERT_BASE

}

}

class Derived extends Base { public void foo() {

assert false; // ASSERT_DERIVED

}

}

class AssertionCheck {

public static void main(String []args) { try {

Base base = new Base(); base.foo();

}

catch(Exception e) {

base = new Derived(); base.foo();

}

}

}

From the command line, this program is invoked as follows:

java -ea -da:Derived AssertionCheck

Which one of the following options correctly describes the behavior of this program when it is run?

a)This program crashes throwing an AssertionError in line marked with comment ASSERT_BASE.

b)This program crashes throwing an AssertionError in line marked with comment ASSERT_DERIVED.

c)This program first prints “Caught exception” and then crashes throwing an AssertionError in line marked with comment ASSERT_DERIVED.

d)This program completes execution normally without producing any output or throwing any exceptions.

545

Appendix B Mock Test – 1

73.Consider the following code segment:

try (BufferedReader inputFile

=new BufferedReader(new FileReader(srcFile)); BufferedWriter outputFile

=new BufferedWriter(new FileWriter(dstFile))) { // TRY-BLOCK int ch = 0;

while( (ch = inputFile.read()) != -1) { outputFile.write( (char)ch );

}

} catch (FileNotFoundException

| IOException exception) { // MULTI-CATCH-BLOCK System.err.println("Error in opening or processing file "

+ exception.getMessage());

}

Assume that srcFile and dstFile are Strings. Which one of the following options correctly describes the behavior of this program?

a)This program will get into an infinite loop because the condition check for end-of-stream (checking != -1) is incorrect.

b)This program will get into an infinite loop because the variable ch is declared as int instead of char.

c)This program will result in a compiler error in line marked with comment TRY-BLOCK because you need to use , (comma) instead of ; (semi-colon) as separator for opening multiple resources.

d)This program will result in a compiler error in line marked with comment MULTI-CATCH-BLOCK because IOException is the base class for

FileNotFoundException.

74.Consider the following program and replace the statement #1 and #2 with appropriate declarations:

import java.io.Console;

class Login {

public static void main(String []args) { Console console = System.console(); if(console != null) {

//#1

//#2

userName = console.readLine("Enter your username: "); password = console.readPassword("Enter password: "); System.out.println(userName + " ," + password);

}

}

}

546

Appendix B Mock Test – 1

a)String userName = null; char[] password = null;

b)String userName = null; String password = null;

c)char[] userName = null; String password = null;

d)char[] userName = null;

char[] password = null;

75.Assuming that file is a String variable, which one of the following statements is NOT a valid statement?

a)BufferedReader inputFile = new BufferedReader(new FileReader(file));

b)FileReader inputFile = new FileReader(file);

c)FilterReader fr = new FilterReader(file);

d)FilterReader fr = new PushbackReader(new FileReader(file));

76.Consider the following snippet:

try (FileReader inputFile = new FileReader(file)) { //#1

System.out.print( (char)ch );

}

}

Which one of the following statements can be replaced in the place of statement #1?

a)while( (ch = inputFile.read()) != null) {

b)while( (ch = inputFile.read()) != -1) {

c)while( (ch = inputFile.read()) != 0) {

d)while( (ch = inputFile.read()) != EOF) {

77.Among the given options, which two options will compile successfully:

a)BufferedReader br =

new BufferedReader(new FileReader(srcFile)); br.getChannel();

b)RandomAccessFile raf =

new RandomAccessFile(srcFile, "rw+"); raf.getChannel();

c)FileInputStream ifr =

new FileInputStream(srcFile); ifr.getChannel();

d)DataInputStream dis =

new DataInputStream(new FileInputStream("temp.data")); dis.getChannel();

547

Appendix B Mock Test – 1

78.Consider the following program and predict the output (the following files exist in the

given path File09.java, File0.java, FileVisitor1.java, FileVisitor1.class):

class MyFileFindVisitor extends SimpleFileVisitor<Path> { private PathMatcher matcher;

public MyFileFindVisitor(String pattern) { matcher =

FileSystems.getDefault().getPathMatcher(pattern);

}

public FileVisitResult visitFile

(Path path, BasicFileAttributes fileAttributes){ find(path);

return FileVisitResult.CONTINUE;

}

private void find(Path path) {

Path name = path.getFileName(); if(matcher.matches(name))

System.out.println

("Matching file:" + path.getFileName());

}

public FileVisitResult preVisitDirectory

(Path path, BasicFileAttributes fileAttributes){ find(path);

return FileVisitResult.CONTINUE;

}

}

class FileTreeWalkFind {

public static void main(String[] args) {

Path startPath = Paths.get("d:\\workspace\\test\\src"); String pattern = "glob:File[0-9]+.java";

try {

Files.walkFileTree

(startPath, new MyFileFindVisitor(pattern)); System.out.println("File search completed!");

} catch (IOException e) { e.printStackTrace();

}

}

}

a)File09.java

File0.java

FileVisitor1.java

File search completed!

b) File09.java

File0.java

File search completed!

548

Appendix B Mock Test – 1

c)File0.java

File search completed!

d)File search completed!

79.Which one of the following statements is NOT correct in the context of NIO.2?

a)While finding files/directories, the default pattern format is glob; hence, you need not start the search-pattern from "glob:".

b)You can specify the search pattern either in glob format or in regex format.

c)Glob format is a subset of the regex pattern format.

d)There will be no error or runtime exception if you specify a wrong glob search pattern.

80.Which one of the following statements will compile without errors?

a)Locale locale1 = new Locale.US;

b)Locale locale2 = Locale.US;

c)Locale locale3 = new US.Locale();

d)Locale locale4 = Locale("US");

e)Locale locale5 = new Locale(Locale.US);

81.Consider the following program:

import java.util.*;

class Format {

public static void main(String []args) { Formatter formatter = new Formatter();

Calendar calendar = Calendar.getInstance(Locale.US); calendar.set(/* year =*/ 2012,

/* month = */ Calendar.FEBRUARY, /* date = */ 1); formatter.format("%tY/%tm/%td",

calendar, calendar, calendar); System.out.println(formatter);

}

}

Which one of the following options is correct?

a)The program throws a MissingFormatArgumentException.

b)The program throws an UnknownFormatConversionException.

c)The program prints the following: 2012/02/01.

d)The program prints the following: 12/Feb/01.

549

Appendix B Mock Test – 1

82.Which one of the following statements is correct with respect to Closeable and

AutoCloseable interfaces?

a)Interface Closeable extends AutoCloseable and defines one method, close().

b)Interface Autocloseable extends Closeable and defines one method, close().

c)Interface Closeable extends AutoCloseable and does not define any method.

d)Interface AutoCloseable extends Closeable and does not define any method.

e)Closeable and AutoCloseable interfaces do not share any inheritance relationship.

83.Which one of the following code snippets shows the correct usage of try-with-resources statement?

a)public static void main(String []files) {

try (FileReader inputFile

= new FileReader(new File(files[0]))) { //...

}

catch(IOException ioe) {}

}

b)public static void main(String []files) {

try (FileReader inputFile

= new FileReader(new File(files[0]))) { //...

}

finally {/*...*/} catch(IOException ioe) {}

}

c)public static void main(String []files) {

try (FileReader inputFile

= new FileReader(new File(files[0]))) { //...

}

catch(IOException ioe) {} finally {/*...*/}

}

d)public static void main(String []files) {

try (FileReader inputFile

= new FileReader(new File(files[0]))) { //...

}

}

550

Appendix B Mock Test – 1

84.Consider the following program and predict the output:

class MyThread extends Thread { public MyThread(String name) {

this.setName(name);

start();

System.out.println("in ctor " + getName());

}

public void start() {

System.out.println("in start " + getName());

}

public void run() {

System.out.println("in run " + getName());

}

}

class Test {

public static void main(String []args) { new MyThread("oops");

}

}

a)in start oops in ctor oops

b)in start oops in run oops in ctor oops

c)in start oops in ctor oops in run oops

d)in ctor oops in start oops in run oops

85.Which one of the following methods returns a Future object?

a)The overloaded submit() method declared in the ExecutorService interface.

b)The execute() method declared in the Executor interface.

c)The call() method declared in the Callable interface.

d)The run() method declared in the Runnable interface.

551

Appendix B Mock Test – 1

86.Consider the following program:

import java.util.concurrent.locks.*;

class LockUnlock {

public static void main(String []args) { Lock lock = new ReentrantLock(); try {

System.out.print("Lock 1 "); lock.lock();

System.out.print("Critical section 1 "); System.out.print("Lock 2 ");

lock.lock();

// LOCK_2

 

System.out.print("Critical section 2 ");

} finally {

 

 

lock.unlock();

 

 

System.out.print("Unlock 2

");

lock.unlock();

// UNLOCK_1

System.out.print("Unlock 1

");

}

 

 

}

}

Which one of the following options is correct?

a)This program will throw an IllegalMonitorStateException in the line marked with comment LOCK_2.

b)This program will throw an IllegalMonitorStateException in the line marked with comment UNLOCK_1.

c)This program will throw an UnsupportedOperationException in the line marked with comment UNLOCK_1.

d)This program prints the following: Lock 1 Critical section 1 Lock 2 Critical section 2 Unlock 2 Unlock 1.

87.Consider the following program:

import java.util.concurrent.locks.*;

class LockUnlock {

public static void main(String []args) { Lock lock1 = new ReentrantLock(); Lock lock2 = new ReentrantLock(); try {

System.out.println("Going to lock..."); lock1.lock();

System.out.println("In critical section"); } finally {

lock2.unlock(); System.out.println("Unlocking ...");

}

}

}

552

Appendix B Mock TesT – 1

Which one of the following options is correct?

a)This program will print the following: “Going to lock…”

“In critical section” Unlocking …

b)This program will print the following: “Going to lock…”

“In critical section”

and then terminate normally.

c)This program will print the following: “Going to lock…”

“In critical section”

and then enter into a deadlock because lock2.unlock() waits for lock2 to get locked first.

d)This program will throw an IllegalMonitorStateException.

88.Consider the following program:

import java.util.concurrent.Semaphore;

class ATMRoom {

public static void main(String []args) {

Semaphore machines = new Semaphore(2); //#1 new Person(machines, "Mickey");

new Person(machines, "Donald"); new Person(machines, "Tom"); new Person(machines, "Jerry"); new Person(machines, "Casper");

}

}

class Person extends Thread { private Semaphore machines;

public Person(Semaphore machines, String name) { this.machines = machines;

this.setName(name);

this.start();

}

public void run() { try {

System.out.println(getName()

+" waiting to access an ATM machine"); machines.acquire(); System.out.println(getName()

+" is accessing an ATM machine"); Thread.sleep(1000);

553

Appendix B Mock Test – 1

System.out.println(getName()

+ " is done using the ATM machine"); machines.release();

} catch(InterruptedException ie) { System.err.println(ie);

}

}

}

Which one of the options is true if you replace the statement #1 with the following statement?

Semaphore machines = new Semaphore(2, true);

a)The exact order in which waiting persons will get the ATM machine cannot be predicted.

b)The ATM machine will be accessed in the order of waiting persons (because of the second parameter in semaphore constructor).

c)It will not compile since second parameter in semaphore instantiation is not allowed.

d)It will result in throwing an IllegalMonitorStateException.

89.A couple of friends are waiting for some more friends to come so that they can go to a restaurant for dinner. Which synchronization construct could be used here to programmatically simulate this situation?

a)Exchanger

b)Lock

c)CyclicBarrier

d)RecursiveAction

90.An application establishes connection with a database, which returns a resultset containing two identical column names. You are using ResultSet to retrieve the associated values. In this context, which statement is true?

a)You can retrieve both the column values using column names.

b)You can retrieve both the column values using column names; however, you need to specify the column names using the column index (i.e. column-name:column-index).

c)You cannot use column names to retrieve both the values; you need to use column index to do it.

d)Both options b and c will work.

554

Appendix B Mock Test – 1

Answer Sheet

 

 

 

 

 

 

Question No

Answer

Question No

Answer

Question No

Answer

1

 

31

 

61

 

2

 

32

 

62

 

3

 

33

 

63

 

4

 

34

 

64

 

5

 

35

 

65

 

6

 

36

 

66

 

7

 

37

 

67

 

8

 

38

 

68

 

9

 

39

 

69

 

10

 

40

 

70

 

11

 

41

 

71

 

12

 

42

 

72

 

13

 

43

 

73

 

14

 

44

 

74

 

15

 

45

 

75

 

16

 

46

 

76

 

17

 

47

 

77

 

18

 

48

 

78

 

19

 

49

 

79

 

20

 

50

 

80

 

21

 

51

 

81

 

22

 

52

 

82

 

23

 

53

 

83

 

24

 

54

 

84

 

25

 

55

 

85

 

26

 

56

 

86

 

27

 

57

 

87

 

28

 

58

 

88

 

29

 

59

 

89

 

30

 

60

 

90

 

 

 

 

 

 

 

555

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]