基础7 String重新赋值与类中String赋值的差别理解

  • Post author:
  • Post category:其他


代码1:

    public static void main(String[] args) {
        String str1="123";
        String str2=str1;
        str2="456";
        System.out.println(str1);
    }
输出结果:123

代码2:

    class Person{
    String temp;
    }
    public class StringBufferDemo1 {
        public static void main(String[] args) {
            Person p1=new Person();
            p1.temp="123";
            System.out.println(p1.temp);
            Person p2=p1;
            p1.temp="456";
            System.out.println(p2.temp);
        }
    }
    输出结果:
123
456

“`

理解:

同为引用类型,不同的是,一个是给对象重新赋值,一个是给对象的某个属性赋值。

代码1:给String对象赋值,需要断开原来引用,新建其他堆空间的引用。

代码2:给对象p2属性赋值,不会断开原有对空间引用。



版权声明:本文为weixin_43125869原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。