是不是10个字节,还是10个对象?或者...
还有new ArrayList<String>(10)中的10又是什么意思?表示分配10个字符串空间吗?(每个字符串空间默认?)  而new ArrayList<MyData>()是默认分配10个MyData对象的空间吗(MyData自定义类).

解决方案 »

  1.   

    ArrayList内部使用一个Object[] 来保存数据的;
    new ArrayList<String>(10) 就是要求这个Object[]的初始大小设为10
    看源码:    public ArrayList(int initialCapacity) {
    super();
            if (initialCapacity < 0)
                throw new IllegalArgumentException("Illegal Capacity: "+
                                                   initialCapacity);
    this.elementData = new Object[initialCapacity];//这里
        }
      

  2.   

    我的理解是,arraylist里面存放的本不是对象什么的本身而是对这些对象的引用,在调用这些对象时,通过arraylist里面的值可以找到具体的对象而泛型仅仅是规定的它里面存放的内容
    仅仅是个人理解
      

  3.   

    谢谢,那么new Object[10] 分配多大内存呢?
      

  4.   

    这个数组是空的, 每一个位置都是null,
    内存大约 4*10+8 字节左右
    内存空间不重要,  你只要知道这个可以放10个对象到里面取(初始的时候一个都没放)
      

  5.   

    10个停车位
    至于停了多少车 就是size()
      

  6.   

    new ArrayList<String>(10)
    10是指ArrayList数组的大小,存放10个String对象的内存空间。而<String>这里表示的是泛型。说明这个数组只能用来存放String类型的对象