创建了多少个对象

时间:2015-03-02 09:40:47

标签: java object

    3. class Dozens {
    4. int[] dz = {1,2,3,4,5,6,7,8,9,10,11,12};
    5. }
    6. public class Eggs {
    7. public static void main(String[] args) {
    8. Dozens [] da = new Dozens[3];
    9. da[0] = new Dozens();
    10. Dozens d = new Dozens();
    11. da[1] = d;
    12. d = null;
    13. da[1] = null;
    14. // do stuff
    15. }
    16. }

I  have this code from scjp book,which asks how many objects are created and answer was 5 objects ,but i was only able to figure out 4 objects 
1st object -line 4 
2nd object-line 8
3rd object -line 9
4th object -line 10
,can any one explain where and how 5th object is being created?

任何人都可以解释第五个对象的创建地点和方式吗?任何人都可以解释第五个对象的创建地点和方式吗?任何人都可以解释第五个对象的创建地点和方式吗?任何人都可以解释第五个对象的位置和方式正在创建对象?任何人都可以解释第5个对象的创建位置和方式吗?

1 个答案:

答案 0 :(得分:2)

对于每个Dozen类,您创建两个对象:

  • dz array

您可以创建2个Dozen个对象和一个数组da

所以最后,我们有:

2*Dozen+ 3*Array = 5 Objects.

如果dz是静态的,那么所有十几个实例都会共享相同的对象引用,但在这里他们不会。

更新: 对象在以下位置创建:

  • 第8行= 1个数组 - 具有空值
  • 第9行= 2个对象(1个推土机,Dozer内部1个dz阵列)
  • 第10行= 2个物体(1个推土机,Dozer内部1个dz阵列)

我希望它有所帮助:)