常用API的注意事项


判断定义为String类型的s1和s2是否相等

  • • String s1 = "abc";
  • • String s2 = "abc"; //常量池中没有这个字符串对象,就创建一个,如果有直接用即可
  • • System.out.println(s1 == s2); //true
  • • System.out.println(s1.equals(s2)); //true

下面这句话在内存中创建了几个对象?

  • • String s1 = new String("abc"); //创建两个对象,一个在常量池中,一个在堆内存中 3.判断定义为String类型的s1和s2是否相等
  • • String s1 = new String("abc"); //记录的是堆内存对象的地址值
  • • String s2 = "abc"; //记录的是常量池中的地址值
  • • System.out.println(s1 == s2); //false
  • • System.out.println(s1.equals(s2)); //true

判断定义为String类型的s1和s2是否相等

  • • String s1 = "a" + "b" + "c";
  • • String s2 = "abc";
  • • System.out.println(s1 == s2); //true,java中有常量优化机制
  • • System.out.println(s1.equals(s2)); //false

判断定义为String类型的s1和s2是否相等

  • • String s1 = "ab";
  • • String s2 = "abc";
  • • String s3 = s1 + "c";
  • • System.out.println(s3 == s2); //false
    • • System.out.println(s3.equals(s2)); //ture

""和null的区别

* ""是字符串常量,同时也是一个String类的对象,既然是对象当然可以调用String类中的方法

* null是空常量,不能调用任何的方法,否则会出现空指针异常,null常量可以给任意的引用数据类型赋值

StringIndexOutOfBoundsException字符串索引越界异常

原文地址:https://www.cnblogs.com/loaderman/p/6407281.html