可能重复:
Java String.equals 与 ==
为什么当我们在Java中声明字符串时,我们不能使用==来比较这个字符串,它总是会变成假,但是如果我们从头开始初始化字符串,它会是真的?
例如 :
import java.util.Scanner;
public class MyString {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String s = input.nextLine();
if(s=="Hello")
System.out.println("Hello");
String d = "Hello";
if(d=="Hello")
System.out.println("Hello");
}
}
这种行为的解释是什么?