自己琢磨出的更变态的面试题

s1 == s2 ? true
s1 == s3 ? false
 通常面试的朋友可能会遇到这样的面试题:
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
if(s1 == s2)
{
    System.out.println("s1 == s2");
}
if(s1 == s3)
{
    System.out.println("s1 == s3");
}

 输出当然是:

s1==s2

 

我回家换了个方法(自以为换了个方法)写上面的程序,程序是:

String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");

System.out.println("s1 == s2 ? " + s1==s2);
System.out.println("s1 == s3 ? " + s1==s3); 

 

自以为结果是:

s1 == s2 ? true
s1 == s3 ? false

结果出来的结果吓了我自己一跳,原来是另有蹊跷,输出是什么,考考各位的眼力了。

 

写程序真是,差之毫厘,冒之千里

你可能感兴趣的:(面试题)