JP2012Final!Solution

advertisement
Java Programming: Final Examination
姓名:______________
學號:_______________
6/22 2012
分數:______________
I (105 pts) 選擇題[Questions marked with * (ex: Question 9) mean they have more than one answer ]
1.
Fill in the blank in: “Comparable _____ c = new Date();” so that c.compareTo( new Date()) executes normally.
a) <?>
2.
b) <E>
4.
b) ArrayList
c) HashSet
d) LinkedList
e) TreeSet
Which method do you use to test if an element e is in a set or list named x?
a) x.include(e)
b)
(e instanceof List) || (e instanceof Set)
c) x.in(e)
d)
x.contain(e)
e) x.contains(e)
Which of the following is correct to perform the set intersection of two sets s1 and s2?
a) s1.intersect(s2)
5.
d) <Date>
If you want to store non-duplicated objects in the order in which they are inserted, you should use ________.
a) LinkedHashSet
3.
c) <String>
b) s1.intersection(s2)
c) s1.join(s2)
d) s1.retainAll(s2)
The printout of the following code is ________.
LinkedHashSet<String> set1 = new LinkedHashSet<String>();
set1.add("New York");
LinkedHashSet<String> set2 = (LinkedHashSet<String>)(set1.clone());
set1.add("Atlanta");
set2.add("Dallas");
System.out.println(set2);
6.
a) [New York, Atlanta, Dallas]
b) [New York, Dallas]
c) [New York]
d) [New York, Atlanta]
Suppose set s1 is [1, 2, 5] and list L2 is [2, 3, 6]. After s1.addAll(L2), s1 is ________.
a) [1, 2, 2, 3, 5, 6]
7.
c) [1, 5]
d) [1, 2, 3, 5, 6]
e) runtime exception
Suppose set s1 is [1, 2, 5] and set s2 is [2, 3, 6]. After s1.removeAll(s2), s1 is ________.
a) [1, 5]
8.
b) [2]
b) [1, 2, 2, 3, 5, 6]
c) [1, 2, 3, 5, 6]
d) [2]
The ________ method in the Queue interface retrieves and removes the head of this queue, or null if this queue is
empty.
a) remove()
9.
b) poll()
c) element()
d) peek()
* To create a set that consists of string elements "red", "green", and "blue", use
a) new HashSet(new String[ ]{"red", "green", "blue"})
b) new LinkedHashSet(Arrays.asList(new String[ ]{"red", "green", "blue"}))
c)
new Set(Arrays.asList(new String[ ]{"red", "green", "blue"}))
d) new HashSet(Arrays.asList(new String[ ]{"red", "green", "blue"}))
e) new HashSet({"red", "green", "blue"})
10.
Which of the following is correct to create a list from an array?
a) new ArrayList(new String[ ]{"red", "green", "blue"})
b) new List({"red", "green", "blue"})
c)
new LinkedList(new String[ ]{"red", "green", "blue"})
1
d) Arrays.asList(new String[ ]{"red", "green", "blue"})
e) new List(new String[ ]{"red", "green", "blue"})
11.
Which of the following is correct to sort the elements in a list lst?
a) lst.sort()
b) Collections.sort(lst)
c) new LinkedList(new String[ ]{"red", "green", "blue"})
d) Arrays.sort(lst)
12.
To get an iterator from a set, you may use the ________ method.
a) iterators
13.
b) findIterator c) getIterator
d) iterator
Which of the data types below could be used to store elements in their natural order based on the compareTo
method.
a) Collection
14.
b) ArrayList
b) LinkedList
e) LinkedHashSet
d) TreeSet
e) LinkedList
d) Vector
e) Set
Which of the following statements is not defined in the Object class?
b) toString()
c) notifyAll()
d) wait() e) notify()
* You can use the ________ method to temporarily release time for other threads.
a) suspend()
18.
c) Map
c) Stack
a) sleep(long milliseconds)
17.
d) TreeSet
Which of the data types below does not allow duplicates?
a) List
16.
c) Set
Which of the following data types does not implement the Collection interface?
a) HashSet
15.
b) HashSet
b) stop()
c) yield()
d) sleep(long milliseconds)
Which of the following expressions must be true if you create a thread using Thread =
Thread(object)?
19.
a) object instanceof Runnable
b) object instanceof Thread
c) object instanceof String
d) object instanceof Number
Analyze the following code:
public abstract class Test implements Runnable {
public void doSomething()
{
};
}
a) The program will not compile because it does not contain abstract methods.
b) The program will not compile because it does not implement the run() method.
c)
The program compiles fine.
d) None of the above.
20.
*Which of the following methods are in the Collection interface?
a) isEmpty()
21.
c) size()
d) getSize()
*The Collection interface is the base interface for ________.
a) Map
22.
b) clear()
b) List
c) Set
d) LinkedList
e) ArrayList
When you run the following program, what will happen?
public class Test extends Thread {
public static void main(String[ ] args) {
Test t = new Test();
t.start();
t.start();
public void run() {
}
System.out.println("test");
a) The program displays test twice.
b) Nothing is displayed.
2
}
new
c)
The program displays test once.
d) An illegal java.lang.IllegalThreadStateException may be thrown because you just started thread t and thread
might have not yet finished before you start it again. t cannot be restarted!
23.
You can use the ________ method to force one thread to wait for another thread to finish.
a) sleep(long milliseconds)
24.
b) yield()
c) suspend()
d) join()
e) stop()
Which of the following declarations use raw type?
a) ArrayList<String> list = new ArrayList<String>();
b) ArrayList<Object> list = new ArrayList<Object>();
c)
ArrayList list = new ArrayList();
d) ArrayList<Integer> list = new ArrayList<Integer>();
25.
To create a list to store integers, use
a) ArrayList<Object> list = new ArrayList<Integer>();
b) ArrayList<Number> list = new ArrayList<Integer>();
c)
ArrayList<Integer> list = new ArrayList<Integer>();
d) ArrayList<int> list = new ArrayList<int>();
26.
27.
To declare a class named A with a generic type, use
a) public class A(E) { ... }
b) public class A(E, F) { ... }
c) public class A<E, F> { ... }
d) public class A<E> { ... }
Which of the following methods in Thread throws InterruptedException?
a) setPriority(int)
28.
b) sleep(long)
c) yield()
d) run()
e) start()
Suppose there are three Runnable tasks, task1, task2, task3. How do you run them in a thread pool with 2 fixed
threads?
a) ExecutorService executor = Executors.newFixedThreadPool(2); executor.execute(task1);
executor.execute(task2); executor.execute(task3);
b) new Thread(task1).start(); new Thread(task2).start(); new Thread(task3).start();
c)
ExecutorService executor = Executors.newFixedThreadPool(1); executor.execute(task1);
executor.execute(task2); executor.execute(task3);
d) ExecutorService executor = Executors.newFixedThreadPool(3); executor.execute(task1);
executor.execute(task2); executor.execute(task3);
29.
Which of the following method is a static in java.lang.Thread?
a) join()
30.
b) setPriority(int)
c) sleep(long)
d) run()
) start()
The equals method is defined in the Object class. Which of the following is correct to override it in the String
class?
31.
a) public boolean equals(String other)
b) public static boolean equals(Object other)
c) public static boolean equals(String other)
d) public boolean equals(Object other)
Which of the statements regarding the super keyword is incorrect?
a) You can use super to invoke a super class constructor.
b) You cannot invoke a method in superclass's parent class which is overridden by a superclass method.
c)
You can use super.super.p to invoke a method in superclass's parent class.
d) You can use super to invoke a super class method.
32.
You can assign ________ to a variable of Object[ ] type.
3
a) new String[100]
33.
d) new char[100]
Suppose A is an inner class in Test. A is compiled into a file named ________.
a) A.class
34.
b) new int[100] c) new double[100]
b) A$Test.class
c) Test$A.class
d) Test&A.class
Which statement is true about a non-static inner class?
a) It must be final if it is declared in a method scope.
b) It can access private instance variables in the enclosing object.
c) It can only be instantiated in the enclosing class.
d) It is accessible from any other class.
e) It must implement an interface.
35.
36.
*Which of the following statements is correct?
a) Comparable<String> c = new Date();
b) Comparable<Object> c = new Date();
c) Comparable<String> c = new String("abc");
d) Comparable<String> c = "abc";
A variable defined inside a method is referred to as ________.
a) a method variable b) a local variable
37.
38.
a) public static main(String[ ] args)
b) public static Main(String args[ ])
c) public static void main(String[ ] args)
d) public void main(String[ ] args)
Suppose your method does not return any value, which of the following keywords can be used as a return type?
b) double
c) public d) int
e) None of the above
Which of the following statements are correct?
a) char[ ][ ][ ] charArray = new char[2][2][ ];
b) char[ ][ ][ ] charArray = new char[][2][2];
c) char[ ][ ][ ] charArray = {{'a', 'b'}, {'c', 'd'}, {'e', 'f'}};
40.
41.
d) a global variable
All Java applications must have a method ________.
a) void
39.
c) a block variable
d) char[2][2][ ] charArray = {'a', 'b'};
Which of the following statements are correct?
a) char[2][2] charArray = {{'a', 'b'}, {'c', 'd'}};
b) char[ ][ ] charArray = {'a', 'b'};
c) char[ ][ ] charArray = {{'a', 'b'}, {'c', 'd'}};
d) char[2][ ] charArray = {{'a', 'b'}, {'c', 'd'}};
Which of the following declarations are correct?
a) public static void print(String... strings, double... numbers)
b) public static void print(double... numbers, String name)
c)
public static void print(int n, double... numbers)
d) public static double... print(double d1, double d2)
42.
Which of the following kind of nested classes can be instantiated without the need of a containing object?
a) Anonymous inner class.
b) Local class.
c) Member inner class
d) Static nested class.
43.
The ________ method copies the sourceArray to the targetArray.
a) System.arrayCopy(sourceArray, 0, targetArray, 0, sourceArray.length);
b) System.copyArrays(sourceArray, 0, targetArray, 0, sourceArray.length);
c)
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
d) System.copyarrays(sourceArray, 0, targetArray, 0, sourceArray.length);
44.
Assume int[ ] t = {1, 2, 3, 4}. What is t.length?
4
a) 5
45.
46.
b) 0
a) int i = new int(30);
b) char[ ] c = new char();
c) double d[ ] = new double[30];
d) int[ ] i = {3, 4, 3, 2};
e) char[ ] c = new char[4]{'a', 'b', 'c', 'd'};
If you declare an array double[ ] list = {3.4, 2.0, 3.5, 5.5}, the highest index in array list is ________.
b) 4
c) 0
d) 1
e) 2
What is the representation of the third element in an array called a?
a) a[3]
48.
d) 3
*Which of the following statements is valid?
a) 3
47.
c) 4
b) a(3)
c) a(2)
d) a[2]
You can declare two variables with the same name in ________.
a) two nested blocks in a method (two nested blocks means one being inside the other)
b) a block
c)
different methods in a class
d) a method one as a formal parameter and the other as a local variable
49.
50.
To prevent a class from being instantiated, ________
a) use the static modifier on the constructor.
b) don't use any modifiers on the constructor.
c) use the private modifier on the constructor.
d) use the public modifier on the constructor.
A method that is associated with an individual object is called ________.
a) a static method
51.
b) public variables
d) an object method
c) instance variables d) private variables
The default value for data field of a boolean type, numeric type, object type is ________, respectively.
a) false, 0, null b) true, 1, Null c) true, 1, null
53.
c) a class method
Variables that are shared by every instances of a class are ________.
a) class variables
52.
b) an instance method
d) true, 0, null e) false, 1, null
Given the declaration Circle x = new Circle(), which of the following statement is most accurate?
a) x contains a reference to a Circle object. b) You can assign an int value to x.
c) x contains an int value.
54.
55.
________ is invoked to create an object.
a) The main method
b) A method with the void return type
c) A method with a return type
d) A constructor
Which of the following statements are correct? (Choose all that apply.)
a) Number i = 4.5;
56.
b) Double i = 4.5;
c) Integer i = 4.5;
d) Object i = 4.5;
*Which of the following classes are immutable?
a) Integer
57.
d) x contains an object of the Circle type.
b) String
c) Double
d) BigInteger
e) BigDecimal
*Suppose A is an interface, B is a concrete class with a default constructor that implements A. Which of the
following is correct?
a) B b = new B();
58.
b) A a = new A();
c) A a = new B();
d) B b = new A();
*Suppose A is an abstract class, B is a concrete subclass of A, and both A and B have a default constructor. Which
of the following is correct?
a) B b = new B();
59.
b) A a = new A();
Given the class definition : class A {
c) B b = new A();
d) A a = new B();
class A1 { } } ,which of the following is the correct way to create an
instance of class A1
a)
new A.A1()
b) (new A()) . new A.A1()
c)
5
new A(new A.A1() )
d)
new A.A1(new A() )
60.
Which of the following class definitions defines a legal abstract class?
a) public class abstract A { abstract void unfinished(); }
b) class A { abstract void unfinished(); }
61.
c)
class A { abstract void unfinished() {
}}
d)
abstract class A { abstract void unfinished(); }
Inheritance means ________.
a) that data fields should be declared private
b) that a variable of supertype can refer to a subtype object
c)
that a class can extend another class
d) that a class can contain another class
62.
63.
64.
Encapsulation means that ________.
a) a class can extend another class
b) a class can contain another class
c) data fields should be declared private
d) a variable of supertype can refer to a subtype object
Polymorphism means that ________.
a)a class can contain another class
b) a variable of supertype can refer to a subtype object
c) data fields should be declared private
d) a class can extend another class
Which of the following classes cannot be extended?
a) class A {
65.
66.
private A();}
b) class A { }
c) class A { protected A();}
d) final class A { }
The visibility of Java modifiers increases in which of the following order:
a) private, package, protected, and public.
b) private, protected, package, and public.
c) package, private, protected, and public.
d) package, protected, private, and public.
What modifier should you use on a class so that a class in the same package can access it but a class in a different
package cannot access it?
a) protected
67.
c) public d) package (default).
Object-oriented programming allows you to derive new classes from existing classes. This is called ___.
a) inheritance
68.
b) private
b) abstraction
c) encapsulation
d) generalization
If the statement S2 cause an exception (and all other Sk( k = 1..7) do not) in the following statement:
try { S1; S2; S3; }
catch(Exception1 e1) { S4; }
catch(Exception3 e3) { throw new Exception3(); } }
catch(Exception2 e2) { S5; }
finally { S6; }
S7;
Then which of the following statement sequences is the correct sequence of statements executed after S2, if the exception is
of the type Exception3? Suppose that Exception2 is a superclass of Exception3 while Exception1 is not.
a) S6
69.
b) S7
c) S6,S7
d) S4,S6,S7
e) S4,S5,S6,S7
Which of the following method would cause compile error if we put the code : "L.add(e) ;"
a)
public <E> void m0(List<E> L, E e) {… }
b) public <E> void m1(List<? extends E> L, E e) {… }
c)
public <E> void m2(List<? super E> L, E e) {… }
d) public void m2(List L, Object e) {… }
6
into their bodies?
70.
*Which of the following methods can be called by "m(new ArrayList<String>(), new Object() ) " without causing
compile error ?
a)
public <E> void m(List<E> L, E e) {… }
b) public <E> void m(List<? extends E> L, E e) {… }
c)
public <E> void m(List<? super E> L, E e) {… }
d) public void m2(List L, Object e) {… }
II 程式設計 (30 pts)
1. Given the following class :
public class Sum implements Runnable {
public int rlt, from, to;
Sum(int f, int t) { from = f;
to = t}
public void run() { for(int k = from; k<= to; k++) rlt += k; }
Suppose we want to compute (1+2+…+2000) using multithreads. Therefore we partition this task into two subtasks: task1
perform (1+…1000) and task2 performs (1001+…+ 2000). Now, with the Sum class given, try to design a method which would
create and start two threads to perform each subtask, and finally, after they complete, combine their results to get the final one.
public static void man() {
Sum task1 =
_new Sum(1,1000)__, task2 =
___new Sum(1001,2000)__
;
Thread t1 =
__new Thread(task1)___, t2 = _new Thread(task2)______ ;
// start both threads
________t1.start(); ___t2.start();________________________________
//wait them to complete
____t1.join();___ t2.join()______________________________________
int rlt = _task1.rlt + task2.rlt___; out.println(“The sum from 1 to 2000 is “ + rlt); }
2. Design a method duplicate(List L), which, when given a list of objects, can return the set of all objects which occur more than
one time in L.
import java.uitl.*;
static <E> Set<E> duplicate(List<? extends E> L){
Set<E>
s1 =
new HashSet<E>() ;
Set<E> rlt = new HashSet<E>();
for(E e : L) {
if( s1.contains(e) )
rlt.add(e) ;
else s1.add(e) ;
}
return rlt;
}
7
Download