5

在这个问题中,什么被认为是对象?数组中有 7 个双精度数加上数组本身。

以下代码片段执行后将出现多少个对象?

double[] ann = new double[ 7 ];
double[] bob;
bob = ann;

2 7 14 1

4

5 回答 5

7

只有一个对象new double[ 7 ];

双[]鲍勃;还引用在上述步骤中创建的相同对象。

于 2012-08-27T16:09:57.857 回答
2

只会有一个对象。您使用new double[7]. bob并且ann只是对该对象的引用,而 7 个双精度数是原语。

于 2012-08-27T16:09:59.807 回答
2

有一个对象:double[7], 有 2 个对它的引用(annbob)。由于数组包含原语,因此这些不是Object实例,因此您无需计算它们

于 2012-08-27T16:11:45.077 回答
2

double[] ann = new double[ 7 ];

您已经创建了一个Array Object现在由 Array Object Reference Variable 引用的对象ann

double[] bob;
bob = ann;

在上面的行中,您正在创建一个数组对象引用变量bob。并将引用分配给Array Object也被引用的ann

于 2012-08-27T16:11:58.647 回答
0

谢谢。我用一些代码测试了它。

 public class TestCode {

        /**
         * @param args
         */
        public static void main(String[] args) {
            double[] ann = new double[ 7 ];
            double[] bob;
            bob = ann;
            System.out.println(bob.getClass().getSimpleName());
            System.out.println(bob[6]);

            //there are 7 double references initialized to 0.0
        //array refs point to same object
        //1 object of type double[]
    }

}
于 2012-08-27T20:26:31.237 回答