Java -- String

package test;

public class StringEquals {
    public static void main(String[] args) {
      String str1 = "str";                // --直接赋值
          String str2 = "str";            
      String str3 = str2;                     // --引用传递
          String str4 = new String("str");     // --构造方法赋值
          System.out.println(str1 == str2);     //true              
          System.out.println(str1 == str3);     //true               
          System.out.println(str1 == str4);     //false
          System.out.println(str1.equals(str4)); //true 
    }
}

手工入池

String str5 = new String("str").intern();   //手工入池
System.out.println(str1 == str5);      //true

== : 两个对象的堆内存地址的比较

equals() : 内容的比较

compareTo() : 比较的是字符串的内容[比较是根据字母顺序,严格来讲是根据字符的ASCII码值进行比较的,返回结果是第一个不同字符ASCII码的差值]

字符串常量是String类的匿名对象

--判断用户输入的字符串内容是否等于指定的字符串内容

扫描二维码关注公众号,回复: 2461163 查看本文章
package test;

public class StrNotNull {
    public static void main(String[] args) {
        String str = null;
        /*if (str.equals("hello")) {            //报错: java.lang.NullPointerException
            System.out.println("no");
        }*/
        if ("hello".equals(str)) {
            System.out.println("no--");            //不会报错
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/wuyuwuyueping/p/9390414.html