logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Objects and Collections See What Others Are Saying!
  • Question
  • 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)

  • Correct Answer
  • x3.hashCode() == x4.hashCode() 

    Explanation
    By contract, if two objects are equivalent according to the equals() method, then the hashCode() method must evaluate them to be ==.

    Option A is incorrect because if the hashCode() values are not equal, the two objects must not be equal.

    Option C is incorrect because if equals() is not true there is no guarantee of any result from hashCode().

    Option D is incorrect because hashCode() will often return == even if the two objects do not evaluate to equals() being true.


  • More questions

    • 1. Which two statements are equivalent?

      1. 16*4
      2. 16>>2
      3. 16/2^2
      4. 16>>>2

    • Options
    • A. 1 and 2
    • B. 2 and 4
    • C. 3 and 4
    • D. 1 and 3
    • Discuss
    • 2. 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
    • Discuss
    • 3. Which is a valid keyword in java?

    • Options
    • A. interface
    • B. string
    • C. Float
    • D. unsigned
    • Discuss
    • 4. What will be the output of the program?
      int i = 1, j = 10; 
      do 
      {
          if(i++ > --j) /* Line 4 */
          {
              continue; 
          } 
      } while (i < 5); 
      System.out.println("i = " + i + "and j = " + j); /* Line 9 */
      

    • Options
    • A. i = 6 and j = 5
    • B. i = 5 and j = 5
    • C. i = 6 and j = 6
    • D. i = 5 and j = 6
    • Discuss
    • 5. What will be the output of the program?
      int i = 0; 
      while(1) 
      {
          if(i == 4) 
          {
              break;
          } 
          ++i; 
      } 
      System.out.println("i = " + i);
      

    • Options
    • A. i = 0
    • B. i = 3
    • C. i = 4
    • D. Compilation fails.
    • Discuss
    • 6. What will be the output of the program?
      public class Test 
      {
          public int aMethod()
          {
              static int i = 0;
              i++;
              return i;
          }
          public static void main(String args[])
          {
              Test test = new Test();
              test.aMethod();
              int j = test.aMethod();
              System.out.println(j);
          }
      }
      

    • Options
    • A. 0
    • B. 1
    • C. 2
    • D. Compilation fails.
    • Discuss
    • 7. What will be the output of the program?
      int x = l, y = 6; 
      while (y--) 
      {
          x++; 
      } 
      System.out.println("x = " + x +" y = " + y);
      

    • Options
    • A. x = 6 y = 0
    • B. x = 7 y = 0
    • C. x = 6 y = -1
    • D. Compilation fails.
    • Discuss
    • 8. What will be the output of the program?
      class MyThread extends Thread 
      { 
          MyThread() {} 
          MyThread(Runnable r) {super(r); } 
          public void run() 
          { 
              System.out.print("Inside Thread ");
          } 
      } 
      class MyRunnable implements Runnable 
      { 
          public void run() 
          { 
              System.out.print(" Inside Runnable"); 
          } 
      } 
      class Test 
      {  
          public static void main(String[] args) 
          { 
              new MyThread().start(); 
              new MyThread(new MyRunnable()).start(); 
          } 
      }
      

    • Options
    • A. Prints "Inside Thread Inside Thread"
    • B. Prints "Inside Thread Inside Runnable"
    • C. Does not compile
    • D. Throws exception at runtime
    • Discuss
    • 9. Which statement is true?

    • Options
    • A. Assertions can be enabled or disabled on a class-by-class basis.
    • B. Conditional compilation is used to allow tested classes to run at full speed.
    • C. Assertions are appropriate for checking the validity of arguments in a method.
    • D. The programmer can choose to execute a return statement or to throw an exception if an assertion fails.
    • Discuss
    • 10. What will be the output of the program?
      class Two 
      {
          byte x;
      }
      
      class PassO 
      {
          public static void main(String [] args) 
          {
              PassO p = new PassO();
              p.start();
          }
      
          void start() 
          {
              Two t = new Two();
              System.out.print(t.x + " ");
              Two t2 = fix(t);
              System.out.println(t.x + " " + t2.x);
          }
      
          Two fix(Two tt) 
          {
              tt.x = 42;
              return tt;
          }
      }
      

    • Options
    • A. null null 42
    • B. 0 0 42
    • C. 0 42 42
    • D. 0 0 0
    • Discuss


    Comments

    There are no comments.

Enter a new Comment