Sail E0 Webinar
Question

class Test
{
public static void main(String [] args)
{
printAll(args);
}
public static void printAll(String[] lines)
{
for(int i = 0; i < lines.length; i++)
{
System.out.println(lines[i]);
Thread.currentThread().sleep(1000);
}
}
}


the static method Thread.currentThread() returns a reference to the currently



executing Thread object. What is the result of this code?


Options:
A .  Each String in the array lines will output, with a 1-second pause.
B .  Each String in the array lines will output, with no pause in between because this method is not executed in a Thread.
C .  Each String in the array lines will output, and there is no guarantee there will be a pause because currentThread() may not retrieve this thread.
D .  This code will not compile.
Answer: Option D

D. The sleep() method must be enclosed in a try/catch block, or the method printAll() must 

declare it throws the InterruptedException.

A is incorrect, but it would be correct if the InterruptedException was dealt with.

B is incorrect, but it would still be incorrect if the InterruptedException was dealt with because

 all Java code, including the main() method, runs in threads.

C is incorrect. The sleep() method is static, so even if it is called on an instance, it still always 

affects the currently executing thread.



Was this answer helpful ?
Next Question

Submit Solution

Your email address will not be published. Required fields are marked *

Latest Videos

Latest Test Papers