title: operator == differet behaviour on wrapper class object
body: <p>can Any body explain me what is happeing in the output. 
  If == is use to compare two ref. variable it simply check its reference if they are same then it enter in if body, then why the hell 
  aa==bb is  equal if creting static method valueOf()  and ee==ff is not equal (which is ok) if creating its object using new keyword ? </p>
  
  <pre><code>static void main(String args[])
  {
      Integer aa = Integer.valueOf("12");
      Integer bb = Integer.valueOf("12");
      if(aa==bb)System.out.println("aa==bb");
      if(aa!=bb)System.out.println("aa!=bb");
      Integer ee = new Integer("12");
      Integer ff = new Integer("12");
  
  
      if(ee==ff)System.out.println("ee==ff");
      if(ee!=ff)System.out.println("ee!=ff");
  }
  </code></pre>
  
  <p>Output :</p>
  
  <p>aa==bb</p>
  
  <p>ee!=ff</p>