String

发布时间 2023-10-17 23:09:29作者: sellingpear

2023.10.17

1.

public class Demo {
    public static void main(String args[]) {
        String str1 = new String("hello");
        String str2 = new String("hello");
        String str3 = "hello";
        String str4 = "hello";
        String str5 = "he"+"llo";
        String str6 = "he";
        String str7 = "llo";
        System.out.println(str1==str2);
        System.out.println(str1==str3);
        System.out.println(str3==str4);
        System.out.println(str3=="hello");
        System.out.println(str4==(str6+str7));
    }
}

  上面代码的输出结果是: 

    false

    false

    true

    true

    false

String str1 = new String("hello"); 
这种方式创建的字符串,和正常创建对象一样,保存在堆区。
String str3 = "hello";
这种方式创建的字符串,保存在字符串常量区。
最后一个str6拼接上str7相当于在方法区内又重新创建了一个hello常量与之前str4地址不相等所以会是false,此题中==比较的是放在栈中局部变量存储的地址

 

2.String split 这个方法默认返回一个数组,  * 如果没有找到分隔符,  * 会把整个字符串当成一个长度为1的字符串数组  * 返回到结果