title: Why System.out.println("hey s1==s2:"+s1==s2); prints "false" as the output instead of printing "hey s1==s2:false"
body: <p>I have written the following java code:</p>
  
  <pre><code>String s1 = new String("shan");
  String s2 = new String("shan");
  String s3="shan";
  String s4="shan";
  System.out.println("hey s1==s2:"+s1==s2);
  System.out.println("s3==s4:"+s3==s4);
  System.out.println("s1.equals(s2): "+s1.equals(s2));
  System.out.println("s3.equals(s4): "+s3.equals(s4));
  System.out.println("s1==s3: "+s1==s3);
  System.out.println("s1.equals(s3): "+s1.equals(s3));
  System.out.println("hey s1==s2:"+true);
  </code></pre>
  
  <p>The output:</p>
  
  <pre><code>false
  false
  s1.equals(s2): true
  s3.equals(s4): true
  false
  s1.equals(s3): true
  hey s1==s2:true
  </code></pre>
  
  <p>Why does line #5 result in just "false" as the output instead of "hey s1==s2:false"?</p>