javaString类三点注意--学习笔记

  • String是不可变字符串对象,改变String的值只会创建一个新对象,不会改变原来指向的对象,若原来指向的对象没有其它变量引用,则会被系统回收
  • 只要是以"字符串"创建的字符串对象,会存储到字符串常量池中,且相同内容的字符串只会存储一份
    例如
    String a = "abc";
    String b = "abc";

    以上代码中,a和b实际上都是指向同一个字符串,又因字符串不可变,所以这种存储方式可以节省很多内存

  • 但以new方式创建的字符串对象,每new一次都会产生一个新对象存放在堆内存中
    例如
     

    char[] chs = {'a','b'.'c'};
    String a = new String(chs);
    String b = new String(chs);
    

    上面代码中,a与b指向的是不同的字符串对象

你可能感兴趣的:(学习笔记,学习,笔记,java)