【309天】我爱刷题系列068(2017.12.11)

叨叨两句

  1. 对于如今的我,早睡的关键是把每一件事提早1小时完成。

牛客网——java专项练习047

1

有以下一段代码,请选择其运行结果()java

public class StringDemo{
  private static final String MESSAGE="taobao";
  public static void main(String [] args) {
    String a ="tao"+"bao";
    String b="tao";
    String c="bao";
    System.out.println(a==MESSAGE);
    System.out.println((b+c)==MESSAGE);
  }
}

正确答案: Ccode

  1. true true
  2. false false
  3. true false
  4. false true
要注意两个问题:
1,字符串在java中存储在字符串常量区中
2,==判断的是对象引用是不是同一个引用,判断字符串相等要用equals方法
首先判断a==MESSAGE 同一份字符串常量在内存中只有一份,所以是同一地址,返回true
再次比较(b+c)==MESSAGE 这至关于 new String(b+c)==MESSAGE 这里new了一个String对象,因此返回false