1.

What will be the output of the program?
 public class Test { public static void main (String [] args) { final Foo f = new Foo(); Thread t = new Thread(new Runnable() { public void run() { f.doStuff(); } }); Thread g = new Thread() { public void run() { f.doStuff(); } }; t.start(); g.start(); } } class Foo { int x = 5; public void doStuff() { if (x < 10) { // nothing to do try { wait(); } catch(InterruptedException ex) { } } else { System.out.println("x is " + x++); if (x >= 10) { notify(); } } } } 

A. The code will not compile because of an error on notify(); of class Foo.
B. The code will not compile because of some other error in class Test.
C. An exception occurs at runtime.
D. It prints "x is 5 x is 6".
Answer» D. It prints "x is 5 x is 6".


Discussion

No Comment Found