DESKTOP-P665UA2_20200827-石家雨

1、问题

1、今天弄明白了一个重要的概念:

string对象是不可变的,所以是可以共享的。

String str1=“hello";
    
String str2=new String("hello");

str1 中的 “ hello “ 是放在字符串池中,而 str2 中的 ” hello “ 放在堆中的。

​ 就是在堆中如果一个字符串已经被名称所引用,则以后再有相同的字符串声明时就不会再重新开辟空间,后面定义的可以继续使用之前的已开辟好的堆内存空间

在这个对象池中保存多个对象,新实例化的对象如果已经在池中定义了,就不需要再重新定义,而从池中直取出继续使用。

2、已知字符串的内容不可改变

public class StringDemo01{
    public static void main(  String[] args  ){
        String str = " hello ";
        str = str + " world ";
        System.out.println(  " str = "+ str );
    }
}

但是运行结果是:str = hello world,

看起来 str 改变了,因为string的对象不可变,实际上这两个对象没有关系

2、吐槽

今天一整天没有犯困,希望以后继续保持。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1