Java 字符串answer1=";“是”;;如果(回答1==“是”,则给出false。为什么?

Java 字符串answer1=";“是”;;如果(回答1==“是”,则给出false。为什么?,java,Java,它输出说谎者即使我键入了yes,这样answer1就等于yes。为什么?因为使用=测试的是引用相等,而不是值相等 相反,answer1==“yes”doanswer1.equals(“yes”)啊,我明白了。谢谢你。@user2864545没问题,欢迎来到SO。您可以单击左侧的勾号,将此答案标记为已接受。 import java.util.Scanner; public class NewClass { public static void main(String[] args){

它输出<代码>说谎者即使我键入了
yes
,这样
answer1
就等于
yes
。为什么?

因为使用
=
测试的是引用相等,而不是值相等


相反,
answer1==“yes”
do
answer1.equals(“yes”)

啊,我明白了。谢谢你。@user2864545没问题,欢迎来到SO。您可以单击左侧的勾号,将此答案标记为已接受。
import java.util.Scanner;

public class NewClass {
    public static void main(String[] args){

        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter your name");
        String name = scanner.nextLine();
        System.out.println("Is "+ name + " really your name?");
        String answer1 = scanner.nextLine();
        if (answer1 == "yes"){
        System.out.println("Alright ");
        }else  {System.out.println("Liar!");
    }
    }
}