字符串String类详解

52 阅读1分钟

String类是最常见的类,要掌握String类常见的方法,它的底层实现也要掌握好

  • String类又称作不可变字符序列
  • String类位于java.lang包中,Java默认导入java.lang包下所有的类
  • java字符串就是Unicode序列,假如字符串”Java“则是由4个Unicode字符组成‘J’,'a', 'v', 'a'组成。
  • Java没有内置的字符串类型,而是在标准java库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的实例;
// 测试字符串
public class TestString {
    public static void main(String[] args) {
        String s0 = null;
        String s1 = ""; // 空字符创, length为0
        String s2 = "Java"; // length长度为4
        String s3 = new String("Java"); // length长度为4
        System.out.println(s0.length()); // 报错, NullPointerException 空指针异常
        System.out.println(s1.length()); // 0
        System.out.println(s2.length()); // 4
        System.out.println(s3.length()); // 4
    }
}

String类的简单使用

String e = ""; // 空字符串
String greeting = "欢迎欢迎";

使用+连接符:

int age = 18;
String str = "我的年龄是" + age;
// 这种特性往往被输出
System.out.println(str);

String类和常量池

Java内存分析中,我们经常听到”常量池“描述,实际上常量池也分为了以下三种:全局字符串常量池、class文件常量池、运行时常量池。我们只关注运行时常量池即可。

// 测试字符串
public class TestString {
    public static void main(String[] args) {
        String s1 = "我是小学生";
        String s2 = "我是小学生";
        String s3 = new String("我是小学生");
        System.out.println(s1 == s2); // true
        System.out.println(s1 == s3); // false
        System.out.println(s1.equals(s3)); // true
    }
}

所以,以后判断字符串是否相等,通常用equals方法;