Java数组和普通对象的引用变量有什么区

                    

      

java数组和普通对象的引用变量有什么区别

      

1、数组和普通对象的引用变量有什么区别

了解什么是数组看这里:java中的数组是什么

对于Java的数组来说,只有类型兼容(即属于同一数据类型体系且遵守优先级由低到高原则),才能将数组引用传递给另一数组引用,但仍然不能改变数组长度(仅仅只是调整数组引用指针的指向)。

了解数组传递看这里:数组如何传递

publicclassTestArrayLength{

publicstaticvoidmain(String[]args){

int[]numbers={3,5,12};

int[]digits=newint[4];

System.out.println(digits数组长度:+digits.length);//4

for(intnumber:numbers){

System.out.print(number+,);//3,5,12,

}

System.out.println();

for(intdigit:digits){

System.out.print(digit+,);//0,0,0,0,

}

System.out.println();

digits=numbers;

System.out.println(digits数组长度:+digits.length);//3

}

}

执行结果如下:

digits数组长度:4

3,5,12,

0,0,0,0,

digits数组长度:3

    

    

数组初始化之后在内存中的存储如下图,在堆中有2个新的数组对象,栈中有2个分别指向这两个数组对象的引用变量:

      

在执行digits=numbers赋值后,虽然看似digits的数组长度看似由4变成3,其实只是numbers和digits指向同一个数组对象而已。

而digits本身失去引用而变成垃圾,等待垃圾回收来回收(但其长度仍然为4)。如图:

了解java垃圾回收看这里:java垃圾回收机制是什么    

    

JAVA语言编程







































治疗白癜风什么外用药好
治白癜风的外用药



转载请注明:http://www.jiaju1314.com/zyyd/772.html