Home / Java Programming / Java.lang Class :: Discussion

Discussion :: Java.lang Class

  1. What will be the output of the program?

    public class Test  {      public static void main(String[] args)      {         final StringBuffer a = new StringBuffer();          final StringBuffer b = new StringBuffer();           new Thread()          {              public void run()              {                 System.out.print(a.append("A"));                  synchronized(b)                  {                      System.out.print(b.append("B"));                  }              }          }.start();                       new Thread()          {             public void run()              {                 System.out.print(b.append("C"));                  synchronized(a)                  {                     System.out.print(a.append("D"));                  }              }          }.start();      }  } 

  2. A.
    ACCBAD
    B.
    ABBCAD
    C.
    CDDACB
    D.
    Indeterminate output

    View Answer

    Workspace

    Answer : Option D

    Explanation :

    It gives different output while executing the same compiled code at different times.

    C:\>javac Test.java C:\>java Test ABBCAD C:\>java Test ACADCB C:\>java Test ACBCBAD C:\>java Test ABBCAD C:\>java Test ACBCBAD C:\>java Test ACBCBAD C:\>java Test ABBCAD


Be The First To Comment