public class EqualsCheck {
/**
* @param args
*/
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Scanner sc1= new Scanner(System.in);
String s1 = sc.next();
String s2 = sc1.next();
equalCheck(s1,s2);
}
private static void equalCheck(String s1, String s2) {
//Using Assignment
System.out.println(s1 == s2);
//Using equals
System.out.println(s1.equals(s2));
//Printing HashCode
System.out.println("s1 :"+s1.hashCode()+" s2: "+s2.hashCode());
}
}
传递的字符串是:
s1 = "abc";
s2 = "abc";
如果我执行s1==s2
,则会返回false
。为什么字符串池在这里不起作用。
答案 0 :(得分:1)
字符串池在这里不起作用,因为你没有在字符串池中放置字符串。
对于在运行时构造的字符串,这不会自动发生。您需要致电String.intern()
来执行此操作。