logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Threads See What Others Are Saying!
  • Question
  • What will be the output of the program?
    public class Q126 implements Runnable 
    { 
        private int x; 
        private int y; 
    
        public static void main(String [] args) 
        { 
            Q126 that = new Q126(); 
            (new Thread(that)).start( ); /* Line 8 */
            (new Thread(that)).start( ); /* Line 9 */
        } 
        public synchronized void run( ) /* Line 11 */
        { 
            for (;;) /* Line 13 */
            { 
                x++; 
                y++; 
                System.out.println("x = " + x + "y = " + y); 
            } 
        } 
    }
    


  • Options
  • A. An error at line 11 causes compilation to fail
  • B. Errors at lines 8 and 9 cause compilation to fail.
  • C. The program prints pairs of values for x and y that might not always be the same on the same line (for example, "x=2, y=1")
  • D. The program prints pairs of values for x and y that are always the same on the same line (for example, "x=1, y=1". In addition, each value appears once (for example, "x=1, y=1" followed by "x=2, y=2")

  • Correct Answer
  • The program prints pairs of values for x and y that are always the same on the same line (for example, "x=1, y=1". In addition, each value appears once (for example, "x=1, y=1" followed by "x=2, y=2") 

    Explanation
    The synchronized code is the key to answering this question. Because x and y are both incremented inside the synchronized method they are always incremented together. Also keep in mind that the two threads share the same reference to the Q126 object.

    Also note that because of the infinite loop at line 13, only one thread ever gets to execute.


    More questions

    • 1. Which two statements are equivalent?

      1. 16*4
      2. 16>>2
      3. 16/2^2
      4. 16>>>2

    • Options
    • A. 1 and 2
    • B. 2 and 4
    • C. 3 and 4
    • D. 1 and 3
    • Discuss
    • 2. What two statements are true about properly overridden hashCode() and equals() methods?

      1. hashCode() doesn't have to be overridden if equals() is.
      2. equals() doesn't have to be overridden if hashCode() is.
      3. hashCode() can always return the same value, regardless of the object that invoked it.
      4. equals() can be true even if it's comparing different objects.

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. 1 and 3
    • Discuss
    • 3. Which is a valid keyword in java?

    • Options
    • A. interface
    • B. string
    • C. Float
    • D. unsigned
    • Discuss
    • 4. What will be the output of the program?
      int i = 1, j = 10; 
      do 
      {
          if(i++ > --j) /* Line 4 */
          {
              continue; 
          } 
      } while (i < 5); 
      System.out.println("i = " + i + "and j = " + j); /* Line 9 */
      

    • Options
    • A. i = 6 and j = 5
    • B. i = 5 and j = 5
    • C. i = 6 and j = 6
    • D. i = 5 and j = 6
    • Discuss
    • 5. What will be the output of the program?
      int i = 0; 
      while(1) 
      {
          if(i == 4) 
          {
              break;
          } 
          ++i; 
      } 
      System.out.println("i = " + i);
      

    • Options
    • A. i = 0
    • B. i = 3
    • C. i = 4
    • D. Compilation fails.
    • Discuss
    • 6. What will be the output of the program?
      public class Test 
      {
          public int aMethod()
          {
              static int i = 0;
              i++;
              return i;
          }
          public static void main(String args[])
          {
              Test test = new Test();
              test.aMethod();
              int j = test.aMethod();
              System.out.println(j);
          }
      }
      

    • Options
    • A. 0
    • B. 1
    • C. 2
    • D. Compilation fails.
    • Discuss
    • 7. What will be the output of the program?
      int x = l, y = 6; 
      while (y--) 
      {
          x++; 
      } 
      System.out.println("x = " + x +" y = " + y);
      

    • Options
    • A. x = 6 y = 0
    • B. x = 7 y = 0
    • C. x = 6 y = -1
    • D. Compilation fails.
    • Discuss
    • 8. What will be the output of the program?
      class MyThread extends Thread 
      { 
          MyThread() {} 
          MyThread(Runnable r) {super(r); } 
          public void run() 
          { 
              System.out.print("Inside Thread ");
          } 
      } 
      class MyRunnable implements Runnable 
      { 
          public void run() 
          { 
              System.out.print(" Inside Runnable"); 
          } 
      } 
      class Test 
      {  
          public static void main(String[] args) 
          { 
              new MyThread().start(); 
              new MyThread(new MyRunnable()).start(); 
          } 
      }
      

    • Options
    • A. Prints "Inside Thread Inside Thread"
    • B. Prints "Inside Thread Inside Runnable"
    • C. Does not compile
    • D. Throws exception at runtime
    • Discuss
    • 9. Which statement is true?

    • Options
    • A. Assertions can be enabled or disabled on a class-by-class basis.
    • B. Conditional compilation is used to allow tested classes to run at full speed.
    • C. Assertions are appropriate for checking the validity of arguments in a method.
    • D. The programmer can choose to execute a return statement or to throw an exception if an assertion fails.
    • Discuss
    • 10. What will be the output of the program?
      class Two 
      {
          byte x;
      }
      
      class PassO 
      {
          public static void main(String [] args) 
          {
              PassO p = new PassO();
              p.start();
          }
      
          void start() 
          {
              Two t = new Two();
              System.out.print(t.x + " ");
              Two t2 = fix(t);
              System.out.println(t.x + " " + t2.x);
          }
      
          Two fix(Two tt) 
          {
              tt.x = 42;
              return tt;
          }
      }
      

    • Options
    • A. null null 42
    • B. 0 0 42
    • C. 0 42 42
    • D. 0 0 0
    • Discuss


    Comments

    There are no comments.

Enter a new Comment