Search This Blog

Friday, January 28, 2011

Question 10

What will happen when you attempt to compile and run the following code?

public class TestThread extends Thread{  
  public static void main(String[] args) {
    new TestThread().start();
    new TestThread().start();
  }
  public void run(){
    SafeClass st = new SafeClass("abc");
    SafeClass st1 = new SafeClass("xyz");
  }
}
class SafeClass {
  private String str;
  public  SafeClass(String s){
    str = s;
    str.toUpperCase();
    System.out.println(str+" ");
    
  }
}
Options :


a. It will print - ABC XYZ ABC XYZ in that sequence.
b. It will print - ABC ABC XYZ XYZ in that sequence
c. It will print - ABC and XYZ twice, but the sequence cannot be determined.
d. It will print - abc and xyz twice, but the sequence cannot be determined.
e. The code will not compile.



Answer: D

First of all the system.out.println method prints only lower case abc and xyz because the output of str.toUpperCase() is not assigned to str. So options A, B, C are incorrect. Option E is incorrect because the code compiles properly. So the remaining is option D which is correct because for sure the threads are going to print abc and xyz twice but the order of their execution cannot be predicted.

Question 10SocialTwist Tell-a-Friend

No comments:

Post a Comment