如下语句什么意思????是在数组中创建新元素么???可是数组大小没有规定呢啊啊????
int [] abc = {new xxx};

解决方案 »

  1.   

    这种初始化方式为聚集初始化(aggregate initializaion),它隐式地使用new在堆中创建,避免不必要的堆空间分配造成的浪费。。
    但这种初始化一般只是针对对象数组的,对基本类型它是不适用的。
      

  2.   

    对于基本类型数组,int[] arr = {1,2,3};其实就是一种聚集初始化
      

  3.   


    一旦int[] abc就在内存中开辟了一块名叫abc的内存地址。
    你每次在这个数组里存数据都是通过名称abc找到占用的这块内存,然后把这个值放进去。
    int[]是指定一个int类型的数组,那么它只能存放int类型的数据,而int是基本类型,
    不是对象,所以不能new。你应该直接放int值进去。如:
    int[] abc = {1,2,3,4,5,6};
    长度就是你存放的这几个int数的长度,只要这样定义了,长度就不能变了。死的了。
    如果再要改变的化只能,先清理掉,在重新保存新值。如:
    // 原来是:int[] abc = {1,2,3,4,5,6};
    // 这时候,觉得abc远不能满足我的需求,又有一组新的都是int类型的数据。然后,就想了,
    // 原来定义过一个叫做abc的int[]的数组,没用了。就要直接把这块内存地址存放现在
    // 要保存的数据。这样就可以“废物利用”了。然后就可以这样写: 
    // abc = new int[]{20, 100,12, 44}这就是替换掉原来的内容。
    // 这时,就abc前不用定义int[]了,因为已经存在abc了。
    哈哈。这一点不如集合,集合长度不必确定。
      

  4.   


    楼主逗我们玩,把xxxx修改后使int [] abc = {new xxx}; 
    变成合法的Java语句还很麻烦