logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Threads See What Others Are Saying!
  • Question
  • Which of these will create and start this thread?
    public class MyRunnable implements Runnable 
    {
        public void run() 
        {
            // some code here
        }
    }
    


  • Options
  • A. new Runnable(MyRunnable).start();
  • B. new Thread(MyRunnable).run();
  • C. new Thread(new MyRunnable()).start();
  • D. new MyRunnable().start();

  • Correct Answer
  • new Thread(new MyRunnable()).start(); 

    Explanation
    Because the class implements Runnable, an instance of it has to be passed to the Thread constructor, and then the instance of the Thread has to be started.

    A is incorrect. There is no constructor like this for Runnable because Runnable is an interface, and it is illegal to pass a class or interface name to any constructor.

    B is incorrect for the same reason; you can't pass a class or interface name to any constructor.

    D is incorrect because MyRunnable doesn't have a start() method, and the only start() method that can start a thread of execution is the start() in the Thread class.


  • More questions

    • 1. In the given program, how many lines of output will be produced?
      public class Test 
      {
          public static void main(String [] args) 
          {
          int [] [] [] x = new int [3] [] [];
          int i, j;
          x[0] = new int[4][];
          x[1] = new int[2][];
          x[2] = new int[5][];
          for (i = 0; i < x.length; i++)
          {
              for (j = 0; j < x[i].length; j++) 
              {
                  x[i][j] = new int [i + j + 1];
                  System.out.println("size = " + x[i][j].length);
              }
          }
          }
      }
      

    • Options
    • A. 7
    • B. 9
    • C. 11
    • D. 13
    • E. Compilation fails
    • Discuss
    • 2. Which of the following statements about the hashcode() method are incorrect?

      1. The value returned by hashcode() is used in some collection classes to help locate objects.
      2. The hashcode() method is required to return a positive int value.
      3. The hashcode() method in the String class is the one inherited from Object.
      4. Two new empty String objects will produce identical hashcodes.

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. 1 and 4
    • Discuss
    • 3. What will be the output of the program?
      public class X 
      {
          public static void main(String [] args) 
          {
              String names [] = new String[5];
              for (int x=0; x < args.length; x++)
                  names[x] = args[x];
              System.out.println(names[2]);
          }
      }
      
      and the command line invocation is

      > java X a b


    • Options
    • A. names
    • B. null
    • C. Compilation fails
    • D. An exception is thrown at runtime
    • Discuss
    • 4. What will be the output of the program?
      class MyThread extends Thread 
      {
          public static void main(String [] args) 
          {
              MyThread t = new MyThread();
              t.start();
              System.out.print("one. ");
              t.start();
              System.out.print("two. ");
          }
          public void run() 
          {
              System.out.print("Thread ");
          }
      }
      

    • Options
    • A. Compilation fails
    • B. An exception occurs at runtime.
    • C. It prints "Thread one. Thread two."
    • D. The output cannot be determined.
    • Discuss
    • 5. What will be the output of the program?
      public class ExamQuestion7 
      {  
          static int j; 
          static void methodA(int i)
          {
              boolean b; 
              do
              { 
                  b = i<10 | methodB(4); /* Line 9 */
                  b = i<10 || methodB(8);  /* Line 10 */
              }while (!b); 
          } 
          static boolean methodB(int i)
          {
              j += i; 
              return true; 
          } 
          public static void main(String[] args)
          {
              methodA(0); 
              System.out.println( "j = " + j ); 
          } 
      }
      

    • Options
    • A. j = 0
    • B. j = 4
    • C. j = 8
    • D. The code will run with no output
    • Discuss
    • 6. The following block of code creates a Thread using a Runnable target:
      Runnable target = new MyRunnable();
      Thread myThread = new Thread(target);
      
      Which of the following classes can be used to create the target, so that the preceding code compiles correctly?

    • Options
    • A. public class MyRunnable extends Runnable{public void run(){}}
    • B. public class MyRunnable extends Object{public void run(){}}
    • C. public class MyRunnable implements Runnable{public void run(){}}
    • D. public class MyRunnable implements Runnable{void run(){}}
    • Discuss
    • 7. What will be the output of the program?
      public class WaitTest 
      {
          public static void main(String [] args) 
          {
              System.out.print("1 ");
              synchronized(args)
              {
                  System.out.print("2 ");
                  try 
                  {
                          args.wait(); /* Line 11 */
                  }
                  catch(InterruptedException e){ }
              }
              System.out.print("3 ");
          }
      }
      

    • Options
    • A. It fails to compile because the IllegalMonitorStateException of wait() is not dealt with in line 11.
    • B. 1 2 3
    • C. 1 3
    • D. 1 2
    • Discuss
    • 8. Which two are equal?

      1. 32/4
      2. (8 >> 2) << 4
      3. 2^5
      4. 128 >>> 2
      5. 2 >> 5

    • Options
    • A. 1 and 2
    • B. 2 and 4
    • C. 1 and 3
    • D. 2 and 3
    • Discuss
    • 9. Which one of the following will declare an array and initialize it with five numbers?

    • Options
    • A. Array a = new Array(5);
    • B. int [] a = {23,22,21,20,19};
    • C. int a [] = new int[5];
    • D. int [5] array;
    • Discuss
    • 10. What allows the programmer to destroy an object x?

    • Options
    • A. x.delete()
    • B. x.finalize()
    • C. Runtime.getRuntime().gc()
    • D. Only the garbage collection system can destroy an object.
    • Discuss


    Comments

    There are no comments.

Enter a new Comment