习题
设 a[] 和 b[] 均为长数百万的整型数组。以下代码的作用是什么?有效吗?
int[] t = a; a = b; b = t;
要点分析
数组变量是存放在栈内存中的,数组对象是存放在堆内存中的。数组变量只是一个引用变量,他能够指向实际的数组对象。
所谓的数组初始化并非对数组变量初始化,而是对数组对象进行初始化。[1]
参考答案
这段代码将数组a和数组b交换。它的效率不可能再高了,因为它复制的是引用而不需要复制数百万个元素。
参考资料
[1] 脚本之家:java数组基础详解
请登录之后再进行评论