什么是可变对象和不可变对象

什么是可变对象?

可变对象:	属性值变化时不创建新的对象。简单来说:就是一个对象创建之后,可以对其对象进行修改,修改之后,
依旧指向同一个对象,

除了八大基本类型和包装类型以及String类外。其他的都属于可变基本类型。

例题:

     List list = new ArrayList();
        list.add("上河图");
        list.add("青木瓜上河图");
        list.add("清明上河图");
        System.out.println(list);
         List arrayList = new ArrayList();
        arrayList = list;
        arrayList.add("夕阳西下");
        System.out.println(arrayList==list);

输出结果

list就属于可变对象,改变了属性值,但是没有重新创建一个新的对象,就说明指向的还是同一个对象。

什么是不可变对象?

不可变对象和可变对象恰好相反。不可变对象:属性值变化之后会创建一个新的对象。简单来说就是一个对象创建之后不能对其对象进行修改

不可变对象:八大基本类型,包装类型和string类

例题:

  		int a = 123;
        int b = a;
        b = 134;
        System.out.println(a == b);  //输出false

因为“int”属于八大基本类型,是不可变对象,就是不能对其对象进行修改,如果对其对象进行修改的话,就需要创建一个新的对象。
上面的例题中,对象b对其对象a进行了修改,所以不属于同一个对象了。

如有不对,欢迎指正,谢谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值