logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Exceptions See What Others Are Saying!
  • Question
  • What will be the output of the program?
    public class RTExcept 
    {
        public static void throwit () 
        {
            System.out.print("throwit ");
            throw new RuntimeException();
        }
        public static void main(String [] args) 
        {
            try 
            {
                System.out.print("hello ");
                throwit();
            }
            catch (Exception re ) 
            {
                System.out.print("caught ");
            }
            finally 
            {
                System.out.print("finally ");
            }
            System.out.println("after ");
        }
    }
    


  • Options
  • A. hello throwit caught
  • B. Compilation fails
  • C. hello throwit RuntimeException caught after
  • D. hello throwit caught finally after

  • Correct Answer
  • hello throwit caught finally after 

    Explanation
    The main() method properly catches and handles the RuntimeException in the catch block, finally runs (as it always does), and then the code returns to normal.

    A, B and C are incorrect based on the program logic described above. Remember that properly handled exceptions do not cause the program to stop executing.


    More questions

    • 1. Which of the following line of code is suitable to start a thread?
      class X implements Runnable 
      { 
          public static void main(String args[]) 
          {
              /* Missing code? */
          } 
          public void run() {} 
      }
      

    • Options
    • A. Thread t = new Thread(X);
    • B. Thread t = new Thread(X); t.start();
    • C. X run = new X(); Thread t = new Thread(run); t.start();
    • D. Thread t = new Thread(); x.run();
    • Discuss
    • 2. What will be the output of the program?
      try 
      {
          Float f1 = new Float("3.0");
          int x = f1.intValue();
          byte b = f1.byteValue();
          double d = f1.doubleValue();
          System.out.println(x + b + d);
      }
      catch (NumberFormatException e) /* Line 9 */
      {
          System.out.println("bad number"); /* Line 11 */
      }
      

    • Options
    • A. 9.0
    • B. bad number
    • C. Compilation fails on line 9.
    • D. Compilation fails on line 11.
    • Discuss
    • 3. What will be the output of the program?
      String a = "newspaper";
      a = a.substring(5,7);
      char b = a.charAt(1);
      a = a + b;
      System.out.println(a);
      

    • Options
    • A. apa
    • B. app
    • C. apea
    • D. apep
    • Discuss
    • 4. Which statement is true?

    • Options
    • A. The notifyAll() method must be called from a synchronized context.
    • B. To call wait(), an object must own the lock on the thread.
    • C. The notify() method is defined in class java.lang.Thread.
    • D. The notify() method causes a thread to immediately release its locks.
    • Discuss
    • 5. Which statement is true?
      class Test1 
      {
          public int value;
          public int hashCode() { return 42; }
      }
      class Test2 
      {
          public int value;
          public int hashcode() { return (int)(value^5); }
      }
      

    • Options
    • A. class Test1 will not compile.
    • B. The Test1 hashCode() method is more efficient than the Test2 hashCode() method.
    • C. The Test1 hashCode() method is less efficient than the Test2 hashCode() method.
    • D. class Test2 will not compile.
    • Discuss
    • 6. Assuming that the equals() and hashCode() methods are properly implemented, if the output is "x = 1111", which of the following statements will always be true?
      x = 0;
      if (x1.hashCode() != x2.hashCode() )  x = x + 1;
      if (x3.equals(x4) )  x = x + 10;
      if (!x5.equals(x6) ) x = x + 100;
      if (x7.hashCode() == x8.hashCode() )  x = x + 1000;
      System.out.println("x = " + x);
      

    • Options
    • A. x2.equals(x1)
    • B. x3.hashCode() == x4.hashCode()
    • C. x5.hashCode() != x6.hashCode()
    • D. x8.equals(x7)
    • Discuss
    • 7. The static method Thread.currentThread() returns a reference to the currently executing Thread object. What is the result of this code?
      class Test 
      {
          public static void main(String [] args) 
          {
              printAll(args);
          }
      
          public static void printAll(String[] lines) 
          {
              for(int i = 0; i < lines.length; i++)
              {
                  System.out.println(lines[i]);
                  Thread.currentThread().sleep(1000);
              }
          }
      }
      

    • Options
    • A. Each String in the array lines will output, with a 1-second pause.
    • B. Each String in the array lines will output, with no pause in between because this method is not executed in a Thread.
    • C. Each String in the array lines will output, and there is no guarantee there will be a pause because currentThread() may not retrieve this thread.
    • D. This code will not compile.
    • Discuss
    • 8. Which answer most closely indicates the behavior of the program?
      public class MyProgram 
      {
          public static void throwit() 
          {
              throw new RuntimeException();
          }
          public static void main(String args[])
          {
              try 
              {
                  System.out.println("Hello world ");
                  throwit();
                  System.out.println("Done with try block ");
              }
              finally 
              {
                  System.out.println("Finally executing ");
              }
          }
      }
      

    • Options
    • A. The program will not compile.
    • B. The program will print Hello world, then will print that a RuntimeException has occurred, then will print Done with try block, and then will print Finally executing.
    • C. The program will print Hello world, then will print that a RuntimeException has occurred, and then will print Finally executing.
    • D. The program will print Hello world, then will print Finally executing, then will print that a RuntimeException has occurred.
    • Discuss
    • 9. Which two code fragments will compile?
      1. interface Base2 implements Base {}
      2. abstract class Class2 extends Base
        { public boolean m1(){ return true; }}
      3. abstract class Class2 implements Base {}
      4. abstract class Class2 implements Base
        { public boolean m1(){ return (7 > 4); }}
      5. abstract class Class2 implements Base
        { protected boolean m1(){ return (5 > 7) }}
      interface Base 
      {
          boolean m1 ();
          byte m2(short s);
      }
      

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. 1 and 5
    • Discuss
    • 10. Which statement, if placed in a class other than MyOuter or MyInner, instantiates an instance of the nested class?
      public class MyOuter 
      {
          public static class MyInner 
          {
              public static void foo() { }
          }
      }
      

    • Options
    • A. MyOuter.MyInner m = new MyOuter.MyInner();
    • B. MyOuter.MyInner mi = new MyInner();
    • C. MyOuter m = new MyOuter();

      MyOuter.MyInner mi = m.new MyOuter.MyInner();

    • D. MyInner mi = new MyOuter.MyInner();
    • Discuss


    Comments

    There are no comments.

Enter a new Comment