问答详情
源自:4-4 Java条件语句之嵌套 if

为什么要用equal?不用equal也可以实现啊?

public class HelloWorld {

    public static void main(String[] args) {

int score = 94;

String sex = "女";

        if(score>80){

            System.out.println("进入决赛");

            if(sex=="女"){

                System.out.println("您在女子组");

            } else{

                System.out.println("您在男子组");

            }

        }


提问者:慕UI7108245 2015-02-08 18:14

个回答

  • 困兽
    2015-02-27 23:25:29

    感觉好难学啊

  • 诗雨若枫
    2015-02-08 19:17:23

    ==是用来判断字符串对象的引用是否指向同一个对象的,你这里的String sex = "女",是创建了一个字符串直接量对象,然后用sex引用该对象,判断条件里的"女"也是字符串直接量的对象,在Java中相同的字符串直接量对象只创建一次,也就是说sex引用指向的"女",与判断条件中创建的"女"是同一个对象,所以返回true,你如果把sex的创建改成:String sex = new String("女");,那么sex == "女"返回的就是false了,就必须用equal方法了