logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Objects and Collections See What Others Are Saying!
  • Question
  • What will be the output of the program?
    public class Test 
    { 
        public static void main (String[] args) 
        {
            String foo = args[1]; 
            String bar = args[2]; 
            String baz = args[3]; 
            System.out.println("baz = " + baz); /* Line 8 */
        } 
    }
    
    And the command line invocation:

    > java Test red green blue


  • Options
  • A. baz =
  • B. baz = null
  • C. baz = blue
  • D. Runtime Exception

  • Correct Answer
  • Runtime Exception 

    Explanation
    When running the program you entered 3 arguments "red", "green" and "blue". When dealing with arrays in java you must remember ALL ARRAYS IN JAVA ARE ZERO BASED therefore args[0] becomes "red", args[1] becomes "green" and args[2] becomes "blue".

    When the program entcounters line 8 above at runtime it looks for args[3] which has never been created therefore you get an

    ArrayIndexOutOfBoundsException at runtime.


    More questions

    • 1. What will be the output of the program?
      public class If1 
      {
          static boolean b;
          public static void main(String [] args) 
          {
              short hand = 42;
              if ( hand < 50 && !b ) /* Line 7 */
                  hand++;
              if ( hand > 50 );     /* Line 9 */
              else if ( hand > 40 ) 
              {
                  hand += 7;
                  hand++;    
              }
              else
                  --hand;
              System.out.println(hand);
          }
      }
      

    • Options
    • A. 41
    • B. 42
    • C. 50
    • D. 51
    • Discuss
    • 2. What will be the output of the program?
      public class Test 
      { 
          public static void main (String args[]) 
          {
              String str = NULL; 
              System.out.println(str); 
          } 
      }
      

    • Options
    • A. NULL
    • B. Compile Error
    • C. Code runs but no output
    • D. Runtime Exception
    • Discuss
    • 3. What will be the output of the program?

      System.out.println(Math.sqrt(-4D));


    • Options
    • A. -2
    • B. NaN
    • C. Compile Error
    • D. Runtime Exception
    • Discuss
    • 4. What will be the output of the program?
      package foo; 
      import java.util.Vector; /* Line 2 */
      private class MyVector extends Vector 
      {
          int i = 1; /* Line 5 */
          public MyVector() 
          { 
              i = 2; 
          } 
      } 
      public class MyNewVector extends MyVector 
      {
          public MyNewVector () 
          { 
              i = 4; /* Line 15 */
          } 
          public static void main (String args []) 
          { 
              MyVector v = new MyNewVector(); /* Line 19 */
          } 
      }
      

    • Options
    • A. Compilation will succeed.
    • B. Compilation will fail at line 3.
    • C. Compilation will fail at line 5.
    • D. Compilation will fail at line 15.
    • Discuss
    • 5. What will be the output of the program?
      TreeSet map = new TreeSet();
      map.add("one");
      map.add("two");
      map.add("three");
      map.add("four");
      map.add("one");
      Iterator it = map.iterator();
      while (it.hasNext() ) 
      {
          System.out.print( it.next() + " " );
      }
      

    • Options
    • A. one two three four
    • B. four three two one
    • C. four one three two
    • D. one two three four one
    • Discuss
    • 6. Which three statements are true?

      1. Assertion checking is typically enabled when a program is deployed.
      2. It is never appropriate to write code to handle failure of an assert statement.
      3. Assertion checking is typically enabled during program development and testing.
      4. Assertion checking can be selectively enabled or disabled on a per-package basis, but not on a per-class basis.
      5. Assertion checking can be selectively enabled or disabled on both a per-package basis and a per-class basis.

    • Options
    • A. 1, 2 and 4
    • B. 2, 3 and 5
    • C. 3, 4 and 5
    • D. 1, 2 and 5
    • Discuss
    • 7. What will be the output of the program?
      class s implements Runnable 
      { 
          int x, y; 
          public void run() 
          { 
              for(int i = 0; i < 1000; i++) 
                  synchronized(this) 
                  { 
                      x = 12; 
                      y = 12; 
                  } 
              System.out.print(x + " " + y + " "); 
          } 
          public static void main(String args[]) 
          { 
              s run = new s(); 
              Thread t1 = new Thread(run); 
              Thread t2 = new Thread(run); 
              t1.start(); 
              t2.start(); 
          } 
      }
      

    • Options
    • A. DeadLock
    • B. It print 12 12 12 12
    • C. Compilation Error
    • D. Cannot determine output.
    • Discuss
    • 8. What will be the output of the program?
      public class ThreadTest extends Thread 
      { 
          public void run() 
          { 
              System.out.println("In run"); 
              yield(); 
              System.out.println("Leaving run"); 
          } 
          public static void main(String []argv) 
          { 
              (new ThreadTest()).start(); 
          } 
      }
      

    • Options
    • A. The code fails to compile in the main() method
    • B. The code fails to compile in the run() method
    • C. Only the text "In run" will be displayed
    • D. The text "In run" followed by "Leaving run" will be displayed
    • Discuss
    • 9. Which statement is true?

    • Options
    • A. A static method cannot be synchronized.
    • B. If a class has synchronized code, multiple threads can still access the nonsynchronized code.
    • C. Variables can be protected from concurrent access problems by marking them with the synchronized keyword.
    • D. When a thread sleeps, it releases its locks.
    • Discuss
    • 10. Which of the following are legal lines of code?

      1. int w = (int)888.8;
      2. byte x = (byte)1000L;
      3. long y = (byte)100;
      4. byte z = (byte)100L;

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. All statements are correct.
    • Discuss


    Comments

    There are no comments.

Enter a new Comment