三、装箱与拆箱

科技资讯
应对乐视近期层出不迭的负面新闻,贾跃亭于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]

你可能感兴趣的:(三、装箱与拆箱)