logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Objects and Collections See What Others Are Saying!
  • Question
  • Which two statements are true about comparing two instances of the same class, given that the equals() and hashCode() methods have been properly overridden?

    1. If the equals() method returns true, the hashCode() comparison == must return true.
    2. If the equals() method returns false, the hashCode() comparison != must return true.
    3. If the hashCode() comparison == returns true, the equals() method must return true.
    4. If the hashCode() comparison == returns true, the equals() method might return true.


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

  • Correct Answer
  • 1 and 4 

    Explanation
    (1) is a restatement of the equals() and hashCode() contract. (4) is true because if the hashCode() comparison returns ==, the two objects might or might not be equal.

    (2) and (3) are incorrect because the hashCode() method is very flexible in its return values, and often two dissimilar objects can return the same hash code value.


    More questions

    • 1. What will be the output of the program?
      boolean bool = true; 
      if(bool = false) /* Line 2 */
      {
          System.out.println("a"); 
      } 
      else if(bool) /* Line 6 */
      {
          System.out.println("b"); 
      } 
      else if(!bool) /* Line 10 */
      {
          System.out.println("c"); /* Line 12 */
      } 
      else 
      {
          System.out.println("d"); 
      }
      

    • Options
    • A. a
    • B. b
    • C. c
    • D. d
    • Discuss
    • 2. What will be the output of the program?
      class s1 extends Thread
      { 
          public void run() 
          { 
              for(int i = 0; i < 3; i++) 
              { 
                  System.out.println("A"); 
                  System.out.println("B"); 
              } 
          } 
      } 
      class Test120 extends Thread 
      { 
          public void run() 
          { 
              for(int i = 0; i < 3; i++) 
              { 
                  System.out.println("C"); 
                  System.out.println("D"); 
              } 
          } 
          public static void main(String args[]) 
              { 
              s1 t1 = new s1(); 
              Test120 t2 = new Test120(); 
              t1.start(); 
              t2.start(); 
          } 
      }
      

    • Options
    • A. Compile time Error There is no start() method
    • B. Will print in this order AB CD AB...
    • C. Will print but not be able to predict the Order
    • D. Will print in this order ABCD...ABCD...
    • Discuss
    • 3. What will be the output of the program?
      class Exc0 extends Exception { } 
      class Exc1 extends Exc0 { } /* Line 2 */
      public class Test 
      {  
          public static void main(String args[]) 
          { 
              try 
              {  
                  throw new Exc1(); /* Line 9 */
              } 
              catch (Exc0 e0) /* Line 11 */
              {
                  System.out.println("Ex0 caught"); 
              } 
              catch (Exception e) 
              {
                  System.out.println("exception caught");  
              } 
          } 
      }
      

    • Options
    • A. Ex0 caught
    • B. exception caught
    • C. Compilation fails because of an error at line 2.
    • D. Compilation fails because of an error at line 9.
    • Discuss
    • 4. What will be the output of the program?
      class Test 
      {
          public static void main(String [] args) 
          {
              int x= 0;
              int y= 0;
              for (int z = 0; z < 5; z++) 
              {
                  if (( ++x > 2 ) && (++y > 2)) 
                  {
                      x++;
                  }
              }
              System.out.println(x + " " + y);
          }
      }
      

    • Options
    • A. 5 2
    • B. 5 3
    • C. 6 3
    • D. 6 4
    • Discuss
    • 5. Which of the following are true statements?

      1. The Iterator interface declares only three methods: hasNext, next and remove.
      2. The ListIterator interface extends both the List and Iterator interfaces.
      3. The ListIterator interface provides forward and backward iteration capabilities.
      4. The ListIterator interface provides the ability to modify the List during iteration.
      5. The ListIterator interface provides the ability to determine its position in the List.

    • Options
    • A. 2, 3, 4 and 5
    • B. 1, 3, 4 and 5
    • C. 3, 4 and 5
    • D. 1, 2 and 3
    • Discuss
    • 6. 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
    • Discuss
    • 7. Which cannot directly cause a thread to stop executing?

    • Options
    • A. Calling the SetPriority() method on a Thread object.
    • B. Calling the wait() method on an object.
    • C. Calling notify() method on an object.
    • D. Calling read() method on an InputStream object.
    • Discuss
    • 8. What will be the output of the program?
      public class Foo 
      {  
          public static void main(String[] args) 
          {
              try 
              { 
                  return; 
              } 
              finally 
              {
                  System.out.println( "Finally" ); 
              } 
          } 
      }
      

    • Options
    • A. Finally
    • B. Compilation fails.
    • C. The code runs with no output.
    • D. An exception is thrown at runtime.
    • Discuss
    • 9. What will be the output of the program?
      public class Test138 
      { 
          public static void stringReplace (String text) 
          {
              text = text.replace ('j' , 'c'); /* Line 5 */
          } 
          public static void bufferReplace (StringBuffer text) 
          { 
              text = text.append ("c");  /* Line 9 */
          } 
          public static void main (String args[]) 
          { 
              String textString = new String ("java"); 
              StringBuffer textBuffer = new StringBuffer ("java"); /* Line 14 */
              stringReplace(textString); 
              bufferReplace(textBuffer); 
              System.out.println (textString + textBuffer); 
          } 
      }
      

    • Options
    • A. java
    • B. javac
    • C. javajavac
    • D. Compile error
    • Discuss
    • 10. What will be the output of the program?
      public class WrapTest 
      {
          public static void main(String [] args) 
          {
              int result = 0;
              short s = 42;
              Long x = new Long("42");
              Long y = new Long(42);
              Short z = new Short("42");
              Short x2 = new Short(s);
              Integer y2 = new Integer("42");
              Integer z2 = new Integer(42);
      
              if (x == y) /* Line 13 */
                  result = 1;
              if (x.equals(y) ) /* Line 15 */
                  result = result + 10;
              if (x.equals(z) ) /* Line 17 */
                  result = result + 100;
              if (x.equals(x2) ) /* Line 19 */
                  result = result + 1000;
              if (x.equals(z2) ) /* Line 21 */
                  result = result + 10000;
      
              System.out.println("result = " + result);
          }
      }
      

    • Options
    • A. result = 1
    • B. result = 10
    • C. result = 11
    • D. result = 11010
    • Discuss


    Comments

    There are no comments.

Enter a new Comment