logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Objects and Collections See What Others Are Saying!
  • Question
  • What two statements are true about properly overridden hashCode() and equals() methods?

    1. hashCode() doesn't have to be overridden if equals() is.
    2. equals() doesn't have to be overridden if hashCode() is.
    3. hashCode() can always return the same value, regardless of the object that invoked it.
    4. equals() can be true even if it's comparing different objects.


  • Options
  • A. 1 and 2
  • B. 2 and 3
  • C. 3 and 4
  • D. 1 and 3

  • Correct Answer
  • 3 and 4 

    Explanation
    (3) and (4) are correct.

    (1) and (2) are incorrect because by contract hashCode() and equals() can't be overridden unless both are overridden.


    More questions

    • 1. Which constructs an anonymous inner class instance?

    • Options
    • A. Runnable r = new Runnable() { };
    • B. Runnable r = new Runnable(public void run() { });
    • C. Runnable r = new Runnable { public void run(){}};
    • D. System.out.println(new Runnable() {public void run() { }});
    • Discuss
    • 2. What is the name of the method used to start a thread execution?

    • Options
    • A. init();
    • B. start();
    • C. run();
    • D. resume();
    • Discuss
    • 3. What will be the output of the program?
      public class CommandArgsTwo 
      {
          public static void main(String [] argh) 
          {
              int x;
              x = argh.length;
              for (int y = 1; y <= x; y++) 
              {
                  System.out.print(" " + argh[y]);
              }
          }
      }
      
      and the command-line invocation is

      > java CommandArgsTwo 1 2 3


    • Options
    • A. 0 1 2
    • B. 1 2 3
    • C. 0 0 0
    • D. An exception is thrown at runtime
    • Discuss
    • 4. What will be the output of the program?
      int i = l, j = -1; 
      switch (i) 
      {
          case 0, 1: j = 1; /* Line 4 */
          case 2: j = 2; 
          default: j = 0; 
      } 
      System.out.println("j = " + j); 
      

    • Options
    • A. j = -1
    • B. j = 0
    • C. j = 1
    • D. Compilation fails.
    • Discuss
    • 5. What will be the output of the program?
      public class BoolTest 
      {
          public static void main(String [] args) 
          {
              int result = 0;
      
              Boolean b1 = new Boolean("TRUE");
              Boolean b2 = new Boolean("true");
              Boolean b3 = new Boolean("tRuE");
              Boolean b4 = new Boolean("false");
      
              if (b1 == b2)  /* Line 10 */
                  result = 1;
              if (b1.equals(b2) ) /* Line 12 */
                  result = result + 10;
              if (b2 == b4)  /* Line 14 */
                  result = result + 100;
              if (b2.equals(b4) ) /* Line 16 */
                  result = result + 1000;
              if (b2.equals(b3) ) /* Line 18 */
                  result = result + 10000;
      
              System.out.println("result = " + result);
          }
      }
      

    • Options
    • A. 0
    • B. 1
    • C. 10
    • D. 10010
    • Discuss
    • 6. What will be the output of the program?
      int i = 0, j = 5; 
      tp: for (;;) 
          {
              i++;  
              for (;;) 
              {
                  if(i > --j) 
                  {
                      break tp; 
                  } 
              } 
              System.out.println("i =" + i + ", j = " + j);
      

    • Options
    • A. i = 1, j = 0
    • B. i = 1, j = 4
    • C. i = 3, j = 4
    • D. Compilation fails.
    • Discuss
    • 7. Which two statements are equivalent?

      1. 3/2
      2. 3<2
      3. 3*4
      4. 3<<2

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. 1 and 4
    • Discuss
    • 8. Which three guarantee that a thread will leave the running state?

      1. yield()
      2. wait()
      3. notify()
      4. notifyAll()
      5. sleep(1000)
      6. aLiveThread.join()
      7. Thread.killThread()

    • Options
    • A. 1, 2 and 4
    • B. 2, 5 and 6
    • C. 3, 4 and 7
    • D. 4, 5 and 7
    • Discuss
    • 9. 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
    • Discuss
    • 10. What will be the output of the program?
      public class Q126 implements Runnable 
      { 
          private int x; 
          private int y; 
      
          public static void main(String [] args) 
          { 
              Q126 that = new Q126(); 
              (new Thread(that)).start( ); /* Line 8 */
              (new Thread(that)).start( ); /* Line 9 */
          } 
          public synchronized void run( ) /* Line 11 */
          { 
              for (;;) /* Line 13 */
              { 
                  x++; 
                  y++; 
                  System.out.println("x = " + x + "y = " + y); 
              } 
          } 
      }
      

    • Options
    • A. An error at line 11 causes compilation to fail
    • B. Errors at lines 8 and 9 cause compilation to fail.
    • C. The program prints pairs of values for x and y that might not always be the same on the same line (for example, "x=2, y=1")
    • D. The program prints pairs of values for x and y that are always the same on the same line (for example, "x=1, y=1". In addition, each value appears once (for example, "x=1, y=1" followed by "x=2, y=2")
    • Discuss


    Comments

    There are no comments.

Enter a new Comment