String

字符串是常量,创建之后不能改变。(不可变性)

例:

public class Demo01 {
    public static void main(String[] args) {
        String name="hello";//"hello" 常量存储在字符串池中,
        name="zhangsan"; //"zhangsan"赋值给name变量,给字符串赋值时,并没有修改数据,而重新开辟了一个空间
    }
}

字符串字面值存储在字符串池中,可以共享。

字符串的创建:

1.String s="hello";产生一个对象,字符串中存储。

2.String s=new String(”hello“);//产生两个对象,堆、字符串池中各储存一个。

public class Demo01 {
public static void main(String[] args) {
String name="hello";//"hello" 常量存储在字符串池中,
name="zhangsan"; //"zhangsan"赋值给name变量,给字符串赋值时,并没有修改数据,而重新开辟了一个空间
String name2="zhangsan";//和name指向字符串池里面的同一个字符串,实现了字符串常量的共享

    //字符串的另一种创建方式
    String str=new String("JAVA是最好的语言!");
    String str2=new String("JAVA是最好的语言!");
    System.out.println(str);
    //用==比较的是栈空间中的地址
    System.out.println(str==str2);
    //用equals方法对比的是两个数据
    System.out.println(str.equals(str2));

}

}