final关键词和可变,不可变数据类型的总结

可变性:

可变性可以分为两种,引用可变性以及对象可变性。引用可变性指的是在改变一个对象的值得时候可以新引用一个地址来储存新的值, 用final修饰的对象 引用无法改变。
对象可变指的是 一个对象可以在不更改引用内存的情况下直接更改值,比如StringBuilder。下文中会进行详细介绍。

不可变数据类型

当该数据类型的对应变量的值发生了改变**,那么它对应的内存地址也会发生改变**,对于这种数据类型,就称不可变数据类型。其中基本数据类型都是不可变数据类型。(可以理解为不可变数据类型拥有引用可变性但是没有对象可变性)
举例说明: int是一个不可变数据类型, int x = 1; 如果想要改变int对象的数据的话,那么它就需要指向一个内存中新的地址。

可变数据类型

当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型,当可变数据类型改变时它实际上是更改了内存中的内容(可以理解为可变数据类型同时拥有引用可变性和对象可变性,但是在更改可变数据类型的内容时,使用对象可变性,即直接更改内存中的内容而不改变地址。

final关键词的修饰

final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖和类不可被继承
1.final 用来修饰数据类型的时候,表示这个数据类型 引用不可变,用final 修饰得数据类型在更改赋值的时候无法将引用的地址指向新对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值