logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Flow Control See What Others Are Saying!
  • Question
  • What will be the output of the program?
    int i = 1, j = 10; 
    do 
    {
        if(i > j) 
        {
            break; 
        } 
        j--; 
    } while (++i < 5); 
    System.out.println("i = " + i + " and j = " + j);
    


  • Options
  • A. i = 6 and j = 5
  • B. i = 5 and j = 5
  • C. i = 6 and j = 4
  • D. i = 5 and j = 6

  • Correct Answer
  • i = 5 and j = 6 

    Explanation
    This loop is a do-while loop, which always executes the code block within the block at least once, due to the testing condition being at the end of the loop, rather than at the beginning. This particular loop is exited prematurely if i becomes greater than j.

    The order is, test i against j, if bigger, it breaks from the loop, decrements j by one, and then tests the loop condition, where a pre-incremented by one i is tested for being lower than 5. The test is at the end of the loop, so i can reach the value of 5 before it fails. So it goes, start:

    1, 10

    2, 9

    3, 8

    4, 7

    5, 6 loop condition fails.


    More questions

    • 1. Given that EOFException and FileNotFoundException are both subclasses of IOException, and further assuming this block of code is placed into a class, which statement is most true concerning this code?
      System.out.print("Start ");
      try 
      {
          System.out.print("Hello world");
          throw new FileNotFoundException();
      }
      System.out.print(" Catch Here "); /* Line 7 */
      catch(EOFException e) 
      {
          System.out.print("End of file exception");
      }
      catch(FileNotFoundException e) 
      {
          System.out.print("File not found");
      }
      

    • Options
    • A. The code will not compile.
    • B. Code output: Start Hello world File Not Found.
    • C. Code output: Start Hello world End of file exception.
    • D. Code output: Start Hello world Catch Here File not found.
    • Discuss
    • 2. Which three piece of codes are equivalent to line 3?
      1. final int k = 4;
      2. public int k = 4;
      3. static int k = 4;
      4. abstract int k = 4;
      5. volatile int k = 4;
      6. protected int k = 4;
      public interface Foo 
      { 
          int k = 4; /* Line 3 */
      }
      

    • Options
    • A. 1, 2 and 3
    • B. 2, 3 and 4
    • C. 3, 4 and 5
    • D. 4, 5 and 6
    • Discuss
    • 3. After line 11 runs, how many objects are eligible for garbage collection?
      class X2 
      {
          public X2 x;
          public static void main(String [] args) 
          {
              X2 x2 = new X2();  /* Line 6 */
              X2 x3 = new X2();  /* Line 7 */
              x2.x = x3;
              x3.x = x2;
              x2 = new X2();
              x3 = x2; /* Line 11 */
              doComplexStuff();
          }
      }
      

    • Options
    • A. 0
    • B. 1
    • C. 2
    • D. 3
    • Discuss
    • 4. When is the Float object, created in line 3, eligible for garbage collection?
      public Object m() 
      {  
          Object o = new Float(3.14F); 
          Object [] oa = new Object[l];
          oa[0] = o; /* Line 5 */
          o = null;  /* Line 6 */
          oa[0] = null; /* Line 7 */
          return o; /* Line 8 */
      }
      

    • Options
    • A. just after line 5
    • B. just after line 6
    • C. just after line 7
    • D. just after line 8
    • Discuss
    • 5. What is the prototype of the default constructor?
      public class Test { }
      

    • Options
    • A. Test( )
    • B. Test(void)
    • C. public Test( )
    • D. public Test(void)
    • Discuss
    • 6. Which is valid in a class that extends class A?
      class A 
      {  
          protected int method1(int a, int b) 
          {
              return 0; 
          } 
      }
      

    • Options
    • A. public int method1(int a, int b) {return 0; }
    • B. private int method1(int a, int b) { return 0; }
    • C. public short method1(int a, int b) { return 0; }
    • D. static protected int method1(int a, int b) { return 0; }
    • Discuss
    • 7. After line 8 runs. how many objects are eligible for garbage collection?
      public class X 
      {
          public static void main(String [] args) 
          {
              X x = new X();
              X x2 = m1(x); /* Line 6 */
              X x4 = new X();
              x2 = x4; /* Line 8 */
              doComplexStuff();
          }
          static X m1(X mx) 
          {
              mx = new X();
              return mx;
          }
      }
      

    • Options
    • A. 0  
    • B. 1
    • C. 2
    • D. 3
    • Discuss
    • 8. Which of the following will directly stop the execution of a Thread?

    • Options
    • A. wait()
    • B. notify()
    • C. notifyall()
    • D. exits synchronized code
    • Discuss
    • 9. 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
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment