logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Threads See What Others Are Saying!
  • Question
  • 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

  • Correct Answer
  • Prints "Inside Thread Inside Thread" 

    Explanation
    If a Runnable object is passed to the Thread constructor, then the run method of the Thread class will invoke the run method of the Runnable object.

    In this case, however, the run method in the Thread class is overridden by the run method in MyThread class. Therefore the run() method in MyRunnable is never invoked.

    Both times, the run() method in MyThread is invoked instead.


    More questions

    • 1. Which of the following will directly stop the execution of a Thread?

    • Options
    • A. wait()
    • B. notify()
    • C. notifyall()
    • D. exits synchronized code
    • Discuss
    • 2. What will be the output of the program?
      public class Test107 implements Runnable 
      { 
          private int x; 
          private int y; 
      
          public static void main(String args[]) 
          {
              Test107 that = new Test107(); 
              (new Thread(that)).start(); 
              (new Thread(that)).start(); 
          } 
          public synchronized void run() 
          {
              for(int i = 0; i < 10; i++) 
              { 
                  x++; 
                  y++; 
                  System.out.println("x = " + x + ", y = " + y); /* Line 17 */
              } 
          } 
      } 
      

    • Options
    • A. Compilation error.
    • B. Will print in this order: x = 1 y = 1 x = 2 y = 2 x = 3 y = 3 x = 4 y = 4 x = 5 y = 5... but the output will be produced by both threads running simultaneously.
    • C. Will print in this order: x = 1 y = 1 x = 2 y = 2 x = 3 y = 3 x = 4 y = 4 x = 5 y = 5... but the output will be produced by first one thread then the other. This is guaranteed by the synchronised code.
    • D. Will print in this order x = 1 y = 2 x = 3 y = 4 x = 5 y = 6 x = 7 y = 8...
    • Discuss
    • 3. What will be the output of the program?
      String x = new String("xyz");
      String y = "abc";
      x = x + y;
      
      How many String objects have been created?

    • Options
    • A. 2
    • B. 3
    • C. 4
    • D. 5
    • Discuss
    • 4. What will be the output of the program?
      public class SqrtExample 
      {
          public static void main(String [] args) 
          {
              double value = -9.0;
              System.out.println( Math.sqrt(value));
          }
      }
      

    • Options
    • A. 3.0
    • B. -3.0
    • C. NaN
    • D. Compilation fails.
    • Discuss
    • 5. Which two are valid constructors for Thread?

      1. Thread(Runnable r, String name)
      2. Thread()
      3. Thread(int priority)
      4. Thread(Runnable r, ThreadGroup g)
      5. Thread(Runnable r, int priority)

    • Options
    • A. 1 and 3
    • B. 2 and 4
    • C. 1 and 2
    • D. 2 and 5
    • Discuss
    • 6. Which collection class allows you to associate its elements with key values, and allows you to retrieve objects in FIFO (first-in, first-out) sequence?

    • Options
    • A. java.util.ArrayList
    • B. java.util.LinkedHashMap
    • C. java.util.HashMap
    • D. java.util.TreeMap
    • Discuss
    • 7. What will be the output of the program?
      String x = "xyz";
      x.toUpperCase(); /* Line 2 */
      String y = x.replace('Y', 'y');
      y = y + "abc";
      System.out.println(y);
      

    • Options
    • A. abcXyZ
    • B. abcxyz
    • C. xyzabc
    • D. XyZabc
    • Discuss
    • 8. What will be the output of the program?
      public class SwitchTest 
      {  
          public static void main(String[] args) 
          {
              System.out.println("value =" + switchIt(4)); 
          } 
          public static int switchIt(int x) 
          {
              int j = 1;  
              switch (x) 
              { 
                  case l: j++; 
                  case 2: j++;  
                  case 3: j++; 
                  case 4: j++; 
                  case 5: j++; 
                  default: j++; 
                  } 
              return j + x;  
          } 
      }
      

    • Options
    • A. value = 2
    • B. value = 4
    • C. value = 6
    • D. value = 8
    • Discuss
    • 9. What will be the output of the program?
      public class If2 
      {
          static boolean b1, b2;
          public static void main(String [] args) 
          {
              int x = 0;
              if ( !b1 ) /* Line 7 */
              {
                  if ( !b2 ) /* Line 9 */
                  {
                      b1 = true;
                      x++;
                      if ( 5 > 6 ) 
                      {
                          x++;
                      }
                      if ( !b1 ) 
                          x = x + 10;
                      else if ( b2 = true ) /* Line 19 */
                          x = x + 100;
                      else if ( b1 | b2 ) /* Line 21 */
                          x = x + 1000;
                  }
              }
              System.out.println(x);
          }
      }
      

    • Options
    • A. 0
    • B. 1
    • C. 101
    • D. 111
    • Discuss
    • 10. What will be the output of the program?
      public class A
      { 
          void A() /* Line 3 */
          {
              System.out.println("Class A"); 
          } 
          public static void main(String[] args) 
          { 
              new A(); 
          } 
      }
      

    • Options
    • A. Class A
    • B. Compilation fails.
    • C. An exception is thrown at line 3.
    • D. The code executes with no output.
    • Discuss


    Comments

    There are no comments.

Enter a new Comment