三、装箱与拆箱

科技资讯
应对乐视近期层出不迭的负面新闻,贾跃亭于7月6日在其个人公众号和微博上回应称:“会尽责到底”。

装箱是将值类型转换为引用类型,拆箱是将引用类型转换为值类型。为了能更好的理解装箱与拆箱的概念,下面我们展示一段Java中装箱与拆箱的代码吧。

int a = 1;//基本类型a
Integer b= 1;//装箱类型b
b=a;//自动装箱
a=b;//自动拆箱

在Java中,通过装箱和拆箱在基本数据类型和包装类型之间相互转换。而Kotlin中,所有变量的成员方法和属性都是对象,当需要一个可为 null 的引用时, 就会触发装箱操作, 装箱操作不保持对象的同一性。

val a: Int? = 1000//装箱
val b: Int = 1000
val c: Int=1000
println(a === b)//结果为false
println(b === c)//结果为true

Kotlin 中也有专门的类来表达基本数据类型的数组: ByteArray, ShortArray, IntArray 等等, 这些数组可以避免对象装箱时带来的性能损耗. 这些类与 Array 类之间不存在继承关系, 但它们的方法和属性是一致的. 各个基本数据类型的数组类都有对应的工厂函数:

val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容